About

What is read, and what is invented.

Every project of this kind mixes a real dataset with a model and a metaphor, and the honest ones say which is which. This page is the accounting, and it errs toward admitting more than it has to.

The rule

Nothing moves it but its own circuit — or we do not draw the movement. The animal’s position is the integral of forces; the forces come from muscles; the muscles from motor neurons; the motor neurons from the circuit. There is no animation anywhere in the page. Sever the circuit and the body must go still.

It is enforced by a type. The token that marks a claim as tested is a unique symbol that is never exported, so the only way to obtain one is to run the severing; the other branch has no numeric field, so a component that lands there has nothing to print.

Why a lamprey, and why after FLYSPECK

The sibling before this ran every synapse of C. elegans and proved causation — cut AVB and forward drive falls to 38.8%. It could not produce motion: its own body page is titled a posture, not a gait, because the worm’s wiring alone gives a shape, and the project refused to animate a wave it did not have. So the successor took the one thing it could not: an animal whose swimming rhythm is generated by its circuit, and a body that swims because of it.

The lamprey’s spinal circuit is the best-understood locomotor circuit in any vertebrate (Grillner, Nat Rev Neurosci 4:573, 2003). Its cell classes were identified physiologically — Buchanan, J Neurophysiol 47:961 (1982); Buchanan & Grillner, Science 236:312 (1987) — and the alternation depends on the crossed inhibition in the living cord: strychnine abolishes it (Cohen & Harris-Warrick, Brain Res 293:164, 1984).

The largest admission

This wiring is a published model, not a reconstruction. Ekeberg 1993 (Biol Cybern 69:363) puts eight population units in each of a hundred segments with thirteen connection rules. FLYSPECK’s wiring was a file of 7,379 real synapses. This is a table. Each unit here stands for a population of similar cells, and its output is a mean firing rate between 0 and 1, not a spike.

Read from the thesis, not recalled

Ekeberg’s paper is paywalled. Ijspeert’s 1999 PhD thesis (Edinburgh, ERA 1842/34726, 37,770,673 bytes, fetched 2026-09-13) reproduces it as its Tables 3.1–3.3, and every number below was transcribed from the thesis text. The transcription caught a memory error before it became a model: two weights, CIN→CIN and CIN→LIN, had been recalled as −1.0 and −2.0. The table says −2.0 and −1.0. Swapped, the model would have run and looked plausible.

the thirteen rules · weight [rostral, caudal] segments reached

EINEIN · same side+0.4 [2, 2]
EINCIN · same side+3.0 [2, 2]
EINLIN · same side+13.0 [5, 5]
EINMN · same side+1.0 [5, 5]
CINEIN · other side-2.0 [1, 10]
CINCIN · other side-2.0 [1, 10]
CINLIN · other side-1.0 [1, 10]
CINMN · other side-2.0 [5, 5]
LINCIN · same side-1.0 [5, 5]
brainstem → each classEIN 2.0 · CIN 7.0 · LIN 5.0 · MN 5.0

each class · Θ threshold · Γ gain · τD · μ · τA

EIN-0.2 · 1.8 · 30 ms · 0.3 · 400 ms
CIN0.5 · 1 · 20 ms · 0.3 · 200 ms
LIN8 · 0.5 · 50 ms · 0
MN0.1 · 0.3 · 20 ms · 0

Ekeberg, Biol Cybern 69:363 (1993), as reproduced in Tables 3.1–3.2 of Ijspeert, PhD thesis, Edinburgh 1999 (ERA 1842/34726). Read from the thesis text, not recalled.

A unit in segment i reaches segments i−r to i+c, and the weight into a unit is divided by the number of segments it actually receives that connection from, so the ends of the cord are not starved. Integrated by Euler at 2 ms.

The body — Table 3.3, and one substitution

10 links of 30 mm · mass g · λ⊥ · λ∥ (N·s²/m²)

link 114.1 g · 0.45 · 0.3
link 214.1 g · 0.45 · 0.2
link 314.1 g · 0.45 · 0.1
link 414.1 g · 0.45 · 0
link 512.2 g · 0.45 · 0
link 610.6 g · 0.45 · 0
link 78.3 g · 0.45 · 0
link 85.9 g · 0.45 · 0
link 93.5 g · 0.45 · 0
link 101.2 g · 0.45 · 0

Nine joints, driven by the motor neurons of segments 5, 15 … 95, with torque T = α(Ml − Mr) − β(Ml + Mr + γ)Δφ − δΔφ′, α = 9.4 N·mm, β = 0.94 N·mm, γ = 10, δ = 94 N·mm·ms (Ijspeert’s values). Water is still; each link feels a drag proportional to the square of its speed, different along the link and across it. That difference is the entire reason a travelling wave produces thrust.

Ours: Ekeberg keeps the links attached by solving the joint constraint forces exactly. This keeps them attached by projecting the eleven particles back to their link lengths after every step. Same masses, same drag, same torques, a cheaper way of keeping the animal in one piece. The skin drawn around the links uses Table 3.3’s widths and is never seen by the physics.

The two numbers that are ours

The brainstem drive (0.3) and the extra to the five head segments (0.3). Uniform drive alone makes every segment fire together — no wave — and this body then drifts backward at 0.24 BL/s; that drift was checked against a body with no parallel drag at all (−0.33 BL/s), so it is the synchronous flap, not the head-only drag. The pair was chosen from a 36-point grid (scripts/probe-drive.mjs) for a lag near 1% of a cycle per segment, which is one wave per body length, as in the animal: 3.50 Hz, 0.95%/segment, 1.19 BL/s, each measured over 6 s after 4 s of settling.

Two facts of the model are printed rather than hidden. With no drive at all the motor neurons hum at 0.07 because EIN’s threshold is −0.2; the body does not travel (0.011 BL/s). And in this model severing every LIN stops the rhythm — they end each burst — while the literature is divided on how necessary LIN are in the animal, so that is measured on the page and not claimed.

The market — real price, and it moves the water

The price is real: the WETH / NVDA pool on Robinhood Chain, read through slot0() every 4 s — the number the contract would swap at, not a quote. The browser cannot reach the chain from here (the ISP filter intercepts it), so the server reads it through a relay and the page asks the server.

What the price may do is move the water, and nothing else. The rule forbids it touching the circuit, so it becomes a current: a rise flows the way the animal swims, a fall flows against it, and the current fades between trades rather than being invented. Drag acts on the body’s velocity relative to the water. The animal’s swimming and the market’s carrying therefore add over the ground and are printed apart — two odometers — and the closed experiment behind every verdict runs in still water, so a severing is judged on the circuit alone. Measured over 6 s: a severed animal in a 0.36 m/s current covers 1.12 body lengths a second over the ground and −0.08 through the water (the standing flap’s drift) — carried, not swimming; an intact one against an equal current covers −0.02 over the ground while swimming 1.17 through the water — holding station — with its rhythm and alternation exactly unchanged.

The mapping is ours and comes from a sample, not a guess: on 2026-09-13, 24 reads 4 s apart gave 11 of 23 intervals moving, |move| from 0.0000164% to 0.0263888%, median 0.0006551%. The median makes a full current of 0.36 m/s — 1.2 body lengths a second, the animal’s own speed, so a median fall exactly holds it in place; the deadband sits below the smallest move seen. FLYSPECK’s sample of the same pool two days earlier had a median three times larger, which is why it was re-read.

One thing the water is not allowed to do abruptly. The body is Galilean-invariant — a current of 0.36 m/s with the body already moving at 0.36 reproduces still water to the millimetre, measured — but a current that appears in a single step turns a resting body several degrees, and this animal has no steering: the heading it is kicked to is the heading it keeps. Stepped, a 0.36 m/s current drifted it 112 cm sideways in 12 s; eased in over about two seconds, 10.5 cm. So the water’s speed follows the market with a time constant of 1.5 s, the camera follows the animal in both axes, and whatever heading it settles on is the one you see.

Neither

There is no wallet and no order here. There is a token, $SPONTE on Robinhood Chain — named on the front page with what the chain says about it, read at block 61,348,047: no owner, no mint, every admin selector reverts, and the factory’s launch record names the deployer as the fee recipient. The water still reads the pool its sibling feels, until this one has a pool of its own. The animal’s motor has never heard a price and never will, or the name is a lie.

Credit

The “real / ours” split is borrowed from jaragentss.com, copied because it is correct. The severing-as-proof is FLYSPECK’s. The circuit is Ekeberg’s and the thesis that let it be read is Ijspeert’s.

← the animal