flag

ciliary locomotion — a compound cilium, its behaviour chain, and the measurements both come from

the swimmer — four cilia, 67 µm each, on a 9 µm body

Stop — unfurled, ~10 Hz, going nowhere Swim — bundled, travelling wave Reorient — 41 ms, 130°

behaviour over time

the behaviour chain — measured rates, and what this run is doing

the state vector — θ(s,t) on 20 Chebyshev modes

dispersion relation — f ~ k, and the dynein bands

swimming speed — resistive force theory vs. the measurement

What you are looking at

A single-celled organism swimming, with everything that makes it swim shown next to it. The cell is Pterosperma, a marine prasinophyte: a 9 × 7.1 µm body wearing four cilia 67 µm long — seven body-lengths of whip apiece — that bundle into one compound cilium to swim and unfurl to stop. It is drawn here at true proportion.

Every number comes from one paper: Embodied behavioural complexity in a ciliated microorganism, Nature Communications 17, 8445 (2026), which filmed 125 cells and extracted 219,368 ciliary waveforms. The model is ../proteus/flagella.js; this page only draws it. Its selftest re-derives the paper's own reported dwell times and occupancies from the four transition rates, which is the check that the transcription is right.

It swims body first, with the bundle streaming out behind it. That looks wrong the first time you see it — the cilia are anterior, so surely they lead? They do not, and the paper is explicit about why: “robust base-to-tip travelling waves”. A slender filament carrying a travelling wave drives its swimmer in the opposite direction to the wave, so a base-to-tip wave pushes the cell toward the base — the body goes first and the cilia trail, the way a sperm is pushed by its flagellum rather than pulled by it. “Anterior” says where the basal bodies sit on the cell, not which end goes first.

This page had it backwards until it was checked. The model was written with the wave running tip-to-base, reasoning from the cilia being anterior that the bundle must pull the body along behind it like Chlamydomonas; the premise is true and the conclusion does not follow. Nothing caught it, because reversing the wave changes the cycle-mean thrust magnitude by 0.35% — every speed check still reproduced the measured 646 µm/s while the animal swam backwards. There is now a test that asserts the direction outright.

The three things worth knowing

The cilium's whole state is twenty numbers. The waveform is the tangent angle θ(s,t) decomposed on Chebyshev polynomials, and twenty modes reconstruct a real cilium to 0.368 µm. The bar panel is those twenty coefficients, live — and the shape drawn on the swimmer is rebuilt from exactly them each frame, so nothing the modes cannot hold reaches the physics.

One scalar fixes the whole waveform. The paper reports the first empirical frequency–wavenumber relation for ciliary beating, and it is linear. Linear dispersion means a non-dispersive wave: one fixed wave speed, so the beat frequency alone determines the wavelength. Four quantized bands at 37, 88, 184 and 265 Hz — attributed to dynein — sit on top of it, and the beat snaps toward whichever is nearest.

Behaviour is an excitable chain, not a controller. Stop, Swim, Reorient, wired in a line: both Stop and Reorient hang off Swim, so a stopped cell must swim before it can turn. Left alone the cell is stopped 96.6% of the time. The drive slider leans on the transition rates by up to about five-fold in either direction — it never sets the state, and a reorientation in progress ignores it completely. Push it to +1 and watch the two occupancy bars in the chain panel come apart.

The physics is not fudged, but the clock is

Thrust is resistive force theory: drag on a slender filament is about twice as hard across as along, and that asymmetry alone turns a travelling wave into propulsion. At this Reynolds number nothing coasts, so the swimmer's velocity is thrust over drag — the integration has no force accumulator and no tuning constant. The speed panel's curve is that same calculation run across the observed frequency band, not a fit; it crosses the measured 646 ± 326 µm/s at the measured 95 Hz because that is what pins the model's one free parameter.

The clock is another matter. The paper's timescales span four orders of magnitude — a 41 ms reorientation against a 58 s stop — and a browser has one frame rate:

measuredherewhy
beat12–304 Hz÷ 1295 Hz cannot be drawn at 60 fps. Translation is slowed by the same factor, so distance covered per beat cycle stays exactly right
behaviour58 s / 1.42 s / 41 ms× 3a faithful cell sits motionless for a minute at a time. Scaling every rate equally leaves the 96.6% untouched

Those two factors are independent, and that is the honest cost: with the defaults a swim bout contains far fewer visible beat cycles than a real one. Set rates ×1 for the true chain and wait — the ethogram strip is where the separation actually shows, with Stops as slabs and reorientations as single pixels.

Elsewhere

The same model is a game at /qwop/, where the four cilia are four keys and you have to swim it by hand. It also drives the amoeba prototype at /proteus/, where the cilium has to push against a spring-mass cortex instead of open water and needs a fudge factor to do it. Amoeba proteus has no cilia; the move is Naegleria's, which grows two flagella in about an hour when the water changes.