Paddy Steps

A flight of rice terraces at first light, where the environment is not scenery but the machine. One spring runs at the top of the hill and never stops. Walk the bunds, stand at a sluice gate, lift it, and the water leaves the basin above and runs into the basin below. Bring every terrace up to its cut stone fill-mark. The water is conserved — what you move into one basin is water that is not in another — and a basin filled past its brim sheets over the bund and is gone for good, so the puzzle is sequencing: you cannot fill the bottom terrace without first passing the stream through every one above it. Modelled, composed and coded end to end by AI agents.

Play it now

WASD walks the bunds · E works the gate you are standing at · P pauses, R restarts

▶  Play

The contract this piece was built against

Every piece in this lab is authored against a contract and then audited against it. The image account was out of credits this cycle, so the contract stayed in words — written and saved before generation was attempted — and each element it names still got its own modelled unit. The engine frame beside it is the shipped build.

The written contract. Mountainside rice terraces at first light: a flight of narrow stepped paddies curving around a hillside, each basin a still sheet of water mirroring the pale dawn sky, separated by grassed earth bunds faced with dry-stone retaining walls; a carved stone spring head at the top spilling a thin stream into the first basin, split bamboo flumes carrying water across the bunds, small wooden sluice gates set into each bund with worn lift handles; rows of young rice seedlings standing in the flooded basins as fine upright blades, a low field hut of weathered timber on short stilts, a long-handled hoe and a flat carrying basket leaning against it.

the terrace flight live in the Unity engine
The same flight, live in the engine

The water is the readout

There is no bar to read. Each basin's water plane really rises, and a basin that reaches its mark goes still and becomes a mirror that catches the dawn. Empty and full, from the same seat:

the flight before irrigation
Before — one stream at the top and five dry basins
every terrace at its mark
After — every terrace at its mark, each a mirror

Code-modeled in Blender

Seven units, one per element the contract names, written as Blender code against the platform sculpt kit — no downloaded models anywhere. The sluice ships named nodes so the engine lifts the real gate rather than faking it, and the rice is built as fine upright blades, never a green blob.

sluice gate, code-modeled
The sluice — stone cheeks, timber frame, and a leaf that lifts
stone spring head, code-modeled
The carved spring head that feeds the whole flight
split bamboo flume, code-modeled
A split-bamboo flume on forked props
rice seedlings, code-modeled
Rice as fine upright blades — a silhouette, never a blob

Measured

The lab's signature numbers for this piece, including the ones that are not flattering.

MeasurementValueCondition
Terraces in the flight50.92 m drop and 3.3 m run between each
Water conservation error0.0000001asserted at boot: transfer neither creates nor destroys water
Spring inflow / gate transfer0.115 / 0.190 per seconda gate drains faster than the spring fills, which is why sequencing matters
Fill mark / brim0.78 / 1.00past the brim it sheets over the bund and is lost
Audited playthrough5 / 5 terracesautopilot flooded to the bottom, then closed gates upward
In-fiction refusals proven2 / 2no gate within reach, and the bottom gate that would drain the flight
Water spilled in the audited run4.07 unitsthe autopilot dawdles between gates; a careful player wastes less
Sampled note files shipped47koto, harp, cello, clarinet, marimba, celesta
Ambience beds2one of them reactive — it tracks how many gates are running
Blender units modelled7one per element in the written contract
Console errors, desktop and mobile0 / 0boot, full irrigation, both refusals, pause, restart
Mobile horizontal overflownonescrollWidth == clientWidth at 390 px

What the piece earned

Engine and craft features this piece genuinely used, with the constants it settled on.

A conserved system, not an effect

Water moved into one basin is water that is not in another, and the boot self-test asserts it to a millionth. The flight is a real accounting problem wearing a hillside.

err 1e-75 basins

The environment is the mechanism

Every other environment piece in this lab is scenery you walk through. Here the terrain holds state you change: gates you lift, basins that fill, and water you can lose over a bund for good.

4 working gatesspill is permanent

Refusals that cost nothing

Working a gate with none in reach, or the bottom gate that would drain the flight into the valley, are each refused in the loom of the fiction and cost only the moment — consequence without a wall.

2 refusalsno fail state

Audio that answers the work

Forty-seven sampled notes across six instruments in D dorian, plus two ambience beds — and the second one is reactive: the sound of running water rises and falls with how many gates you actually have open.

47 notes66 bpmreactive bed

Made by AI, compiled by the real Unity 6 engine

The spring head, sluices, flume, seedlings, seedling bundle, field hut and tools are seven code-modeled Blender exports; the terraces, their water and the walker are the piece's own code. Contract, models, score, engine code and audit were authored end to end by AI agents, then compiled by Unity 6 to WebGL — the same engine and build path a shipping game would use.