This is the cube bench grown into a world. The bricks are the same: each living cube runs the exact ~26k-parameter neural cellular automaton lifted from the cube3D ESP32 firmware, holding a 28-channel state and gossiping with its 6 face-neighbours until every cube independently concludes what the whole body is — plane, chair, car, table, house, guitar, or boat. No cube ever sees the shape. The new part: you build the body, Minecraft-style, while it thinks out loud — and when you wake it, its identity becomes a verb.
Tap a face to snap a cube onto it (tap the pad to start). The consensus bars run live while you build: place a slab and watch Table rise; add a backrest and Chair overtakes it; stretch the slab, lose the back, add stub wheels and it flips to Car. Mirror symmetry is on by default because vehicles are symmetric and thumbs are imprecise. Every build is a permalink — the whole 15³ structure is 563 characters of URL.
When you wake a creature, three local mechanisms decide how it moves. None of them is a script with a global view:
The biome switch swaps the entire vocabulary: same engine, same 28-channel state, different 26k parameters. The Reef loads a model we trained ourselves (model card: 95% held-out majority accuracy) on procedurally grown sea creatures — a corpus curated by crowd swipes at reef.mino.mobi. The verbs go aquatic: fish school (each steers toward nearby fish — the school is emergent, no leader), the eel undulates with a genuine traveling wave — one shared Kuramoto clock plus a spatial phase lag along the body, which is exactly how biological swimming pattern generators work — rays glide banking, jellyfish pulse upward on the clock beat and sink between, turtles paddle, anemones sway, and coral grows: it uses the builder's own place() primitive to add a brick every few beats, the new cube joining blank and being recruited by gossip like any other. Swimmers own the vertical axis, so collisions become 3D — a fish passes over a turtle, but two fish at the same depth still bump.
Creatures share the world physically: footprint circles, mass-weighted shoving (mass = brick count), with a rule that matters — houses and guitars never budge. A car glances off another car, but it bounces off a house entirely; airborne planes pass over everything. And a genuine crash — closing speed above a threshold, not a graze — knocks the brick nearest the point of impact off both parties. Crash damage feeds straight back into the gossip layer: lose the wrong bricks and a car's consensus wavers, its throttle drops, and a bad enough wreck splits it outright.
Erase works on awake creatures too. Cut a car in half and the connected components become independent creatures: each keeps its cubes' beliefs (continuity of self — the states are carried over, not reset), runs its own gossip, syncs its own clock, and acts on its own verdict. One half may still believe Car and limp on; the other may decide it's a Chair now and waddle away. Fragments smaller than three cubes don't survive — they tumble off as debris.
The classifier is the real, unmodified firmware network, and it was trained on ShapeNet voxelisations — it has never seen your build. It will happily be wrong, disagree with itself, or flip classes as you edit; the bars don't lie. Locomotion, by contrast, is theatre with decentralised controls: the body moves as one rigid thing (real modular cubes would pivot or slide lattice-wise — a much harder, slower dance), but whether, how fast, and to what rhythm are all read off per-cube local state. The docs on the cube bench cover the port's fidelity: parity with the original TF graph to <5×10⁻⁶, 99.4% per-cube accuracy over the repo's full dataset.
No build step, no physics engine, no WASM — plain ES modules over Float32Arrays, one THREE.InstancedMesh for every cube of every creature. The four modules are pure and node-tested (node golem/js/golem.selftest.mjs — 37 checks): nca.js (the firmware network + place/damage/extract), body.js (connected components, vote census, principal axis), gaits.js (Kuramoto field + the seven verbs, deterministic by seed), builder.js (symmetric edits, undo, the permalink codec).