Tuning Hall
A piano tuner's dawn in an empty concert hall, and a verb this lab had never built: LISTEN. Strike a string and it sounds against a reference a few cents off; the two waves beat together at exactly the frequency difference, and you lean on the tuning lever until the pulse stills. The beating is genuine interference between two sampled piano notes played at once — nothing simulates a wobble, and the needle on the dial swings at precisely the measured beat rate, its throw falling as the string comes true. Six strings, then the hall answers with a recital. AI agents authored the piece end to end: the concept painting, seven code-modelled Blender units — the grand, its exposed harp, the tools, the bench, the seat row, the brass floor lamp and the arched windows — the Unity 6 scene, and an A-aeolian score for piano, celesta, oboe, bassoon, french horn and tubular bells, every sound a real sampled note.
Play it now
SPACE strikes · HOLD LEFT/RIGHT to lean the lever · TAB picks the next string · P pauses, R restarts · 36 MB of code-modelled hall
▶ Play
The concept is the contract
The piece was concepted first — an AI key-art painting — and every element in it was then code-modelled in headless Blender and audited against that painting before a line of gameplay was written. The pair below is the contract and the live build.

Concept key art — the contract the piece is audited against

The same hall, live in the engine
Code-modeled in Blender
Six asset kits, written as Blender Python against the platform sculpt kit — no downloaded models anywhere — and audited render by render before entering the engine. Fifteen judged unit rounds in total; the defects each round fixed are named in the captions.

U1 · The grand — case, raised lid, keybed and 36 naturals with sharps in the real 5-per-octave pattern (a uniform run of black keys is the giveaway of a fake keyboard)

U2 · The harp — plate, strings as real cylinders, felt strips over the dampers; the strings the lever actually reads

U3 · The tools — lever, mutes and fork on the case rim, seated on the measured casting (not the raised lid)

U4 · The bench, with the tuner's coat thrown over it

U5 · The seat row — the empty audience the dawn falls across

U6 · The brass floor lamp — swan neck, downward shade, the scene's one warm light; re-aimed at the piano in the 2026-08-27 operator pass (it shipped facing the seats)

U7 · The arched window — jambs, voussoir arch, and the muntin grid now SANDWICHED on both faces of the pane, because the emissive glass hid a single-sided grid from the room (operator finding)
Measured, honestly
| Measure | Value | Conditions |
| The beat is real | two samples, one detuned | the reference and the string are the same recorded piano note sounded together, one shifted by the string's cents error — the audible wobble is what physics does with them |
| Needle | swings at the measured beat rate | throw clamps at 34° and falls with the beat, so "nearly true" reads as a slow small sway; the felt dampers over an out-of-tune string tremble with it |
| The lever is analog | held, not clicked | a tuning lever is leaned on; since the 2026-08-27 pass leaning also SOUNDS a soft note pair every half second and visibly sweeps the lever, so the pin answers ear and eye while you turn |
| Strings | 6 — A3 C4 E4 A4 C5 E5 | each strike also dips the matching piano key on the keyboard |
| Unity build | ≈36 MB WebGL | Unity 6, scene built entirely in code, URP |
| Operator retrofit 2026-08-27 | 5 findings fixed by hand | ambient noise beds removed (the score carries the hall alone); lever/key feedback added; the lamp re-aimed at the piano; the window muntins made two-sided; a goal line added to the menu |
Made by AI, compiled by the real Unity 6 engine
The piece reads its own sound: the self-test strikes each string and asserts the measured beat frequency against the closed form |Δf| computed from the cents error, so the tuning puzzle is verified physics, not vibes. The 2026-08-27 operator audit then fixed what only a human ear and eye catch: holding the lever changed a number but nothing you could hear until the next strike (now it sounds and sweeps as you lean), the recorded night-ambience bed violated the composed-score decree (removed — the A-aeolian score carries the hall), the one warm lamp faced the seats instead of the instrument, and the window's wood grid vanished behind its own glowing pane.
What this piece earned
Sound as the puzzleThe game state you are reading is a beat frequency. The needle and the trembling dampers visualise it, but the ear solves it — the piece is playable with your eyes closed.
Interference, not simulationTwo real samples of the same note, one detuned by the string's error, played together. The wobble you hear is physics; the self-test asserts its rate against the closed form.
Every control answersStrike dips the key; leaning the lever sweeps it on the pin and sounds the pair; TAB walks the untuned strings. Feedback on every verb — the operator lesson this piece paid for.
The score IS the atmosphereNo recorded noise beds. Piano, celesta, oboe, bassoon, french horn and tubular bells in A aeolian carry the dawn — and the recital that answers a finished tuning is the reward.
A stage lit like the conceptCold dawn through two arched windows with real muntin grids, one warm brass lamp aimed at the work — the hall's light tells you where to look.
Camera serves the verbIt sits low over the strings while you work and eases back into the hall as the job comes right, so progress is something the room shows you.
beat = |Δf|6 stringsA aeolian @ 72piano 16 notescelesta 7oboe 7bassoon 4french horn 5tubular bells 4needle throw ≤34°lever ±80 centsno noise beds