Bell Loft
Ring the changes on five bronze tower bells. Pull a rope with 1-5 and the bell speaks half a swing later, not when you pull - so you commit three-quarters of a second ahead. The order is never free: each row is a permutation of the last, adjacent pairs swapping, and holding your place in a changing order is the whole art of it. Underneath, a measured test of whether Unity honours sample-accurate audio scheduling on WebGL.
Play it now
Tap once for sound - tap/space low = pump, high = release - R resets
The concept is the contract
The piece was concepted first — an AI key-art painting — and its hero assets were then code-modeled in headless Blender and audited against that concept. The pair below is the contract and the build.


Concept prompt
The bell loft of an old stone tower at dusk: five bronze tower bells of different sizes hanging in a heavy oak frame, green-black patina on the bronze with bright worn rims, and one slatted louvre window carrying the only light in the room.
Code-modeled in Blender
The hero assets were modelled by agents writing Blender code against the platform sculpt kit — no downloaded models anywhere — and rendered by the studio harness for audit before entering the engine scene.




Made by AI, compiled by the real Unity 6 engine
This piece is an experiment with its control group left visible. In ninety cycles this lab had never once used Unity's own animation system — every piece animated by hand in code — and two engine features tested here before, distance fog and GPU instancing, turned out to be silently stripped from a code-built WebGL build. An AnimationClip built entirely at runtime is the same shape of thing: no saved asset, nothing for the build pipeline to see and keep. So the lion's head is loaded twice. The left head is driven by the runtime clip; the right head is driven by hand with the same curve, the same period and the same amplitude. The panel reports how far each one actually travelled since boot, because a rig that never leaves its starting value is inert no matter how alive the scene looks. Both bindings pass — position and rotation alike — and the clip matches its control to three digits, which is the opposite of what fog and instancing did. The lion, drum, drummer and lanterns are code-modeled Blender exports; the head is seated on the body from its measured renderer bounds rather than by eye.