§ CONTROLLER · CRITICALITY
The real evolved 660-param rule, running live in your browser: the gain knob is the one dial that moves the whole system between order and the edge of chaos. The playground only poses the criticality question — λ flips sign as you cross the edge while the state-change rate barely moves. Below it is the answer: the real MuJoCo physics, run across nine gains, where walking distance peaks exactly at the native gain and collapses the moment λ tips into chaos.
gain slides the whole system order → edge → chaos · the four presets jump to fixed points on that axis · play/pause/step run or single-step the ticks · reseed restarts from a fresh random state · reset λ clears the running average. Drag the gain past ~1.3 and watch λ cross zero while the change-rate barely moves.
Why the dials seem to lag:every gain change restarts λ's average, so it takes ~2–3 seconds of ticks to re-settle on the new value — the readouts aren't stuck, they're re-measuring from scratch. The live body below re-poses immediately, so watch it for the instant response.
Reading the dials — what each number is, and why it's here
- the channel grid
- The automaton's 4 state channels, laid out 2×2 — each an 8×8 grid of cells colored by activation (blue −, red +). Channel 0 (the amber-outlined cells) is the slice that becomes the 42 motor commands. Across regimes it looks like much the same flashing rhythm because the evolved rule is saturated, so the regime shows up in the sensitivity map and the live body below — not in the raw channels.
- λ · lyapunov exponent
- Start two identical copies of the network a hair apart; λ is the average rate the gap between them grows (+) or shrinks (−) per tick. Negative = order, positive = chaos, zero = the edge. It's the headline number because λ=0 is the gait cliff: walking distance peaks just inside the ordered side and collapses the moment λ tips positive.
- state-change rate
- RMS change of the grid per tick — how “busy” it looks. It stays pinned near its max across almost the whole gain range, so the obvious activity number can'tlocate the edge. That contrast is the lesson sitting next to λ: λ finds the edge, this can't.
- sensitivity map
- A one-cell nudge dropped into a free-running copy, each cell colored by how far that nudge has spread. Dark when order damps it out; it ignites across the grid in chaos, where small differences blow up. This is the regime made visible.
- log(d/ε) trace
- The raw per-tick divergence λ is averaged from. In the ordered regime the two copies stay locked together, so it sits flat on the zero line — the flat trace is the ordered signature, not a dead plot. Push the gain past the edge and it lifts off the line.
§ THE ANSWER · THE REAL PHYSICS
The playground's old caveat — “we haven't run the physics yet” — is now resolved. In the real engine, walking distance is single-peaked at the native gain 1.0 (86.6 mm) and collapses on both sides, and the performance cliff lands exactly where λ crosses zero (gain ~1.3–1.5): the moment the cellular automaton tips into chaos, the gait dissolves. The evolved controller parked itself at λ≈−0.26 — just inside the ordered edge. The same gain→distance curve, reframed as what fitness actually rewarded, is the Search & Objective tab.
The same axis on the body itself — three recorded MuJoCo rollouts. Low gain is over-damped and plods; the native gain sits just inside the ordered edge and gives the clean, fast walk (the 86.6 mm peak — about 29 mm/s); high gainpushes past the edge into chaos and the gait shakes itself apart. That's “edge of chaos → good gait” you can watch, not just read off a plot.
recorded rollouts (D) · not live — watch the live fly on the Body tab →
What we chose
A neural cellular automaton — one shared 660-param rule on an 8×8×4 grid, run on every cell. The gain g scales the pre-activation of each cell's tanh; it is the single criticality knob this whole tab turns.
Why
The minimal model of local-rule emergence — deliberately generic. It is a null model: if even a generic local rule, tuned to the edge of chaos, walks a real fly body, then elaborate structure isn't required for the behavior — which is the cleanest baseline against which the biological controllers are measured.
Alternatives
Explanatory only — not live-swappablehere (real CPG/MLP controllers don't exist in this build yet): a CPG of coupled oscillators (the standard for legged gaits); a plain MLP/RNN reading proprioception; a hand-built reflexcontroller (stance/swing rules). Each trades the NCA's emergence for more built-in structure.
The biological / frontier version
Replaced — and not with a leg circuit, with the brain. The real FlyWire escape wiring (LC4/LPLC2 → the Giant Fiber, DNp01) now runs as a spiking connectome in a closed loop, routing a looming threat to an embodied escape: measured structure, embodied, producing behavior. The honest version — it shows the connectome routing the cue, not a calibrated escape threshold. Walked out on the Embodied tab.
The math behind this — equations and constants — is in the appendix.