DOCUMENTATION / ARTIFICIAL LIFE
Anthrobot Lenia.
Continuous creatures with cilia, and whether their motility falls into classes.
Open the experimentWhat the page shows
Soft, continuous creatures on a grid, made of two kinds of mass: body (blue) and cilia (magenta). Local rules decide where mass flows and where the cilia gather; wherever cilia sit on a creature’s rim, they push along it. Nobody programmed how these creatures move: their motion comes from their shape and where their cilia end up.
- Readout
- The creature's number, the motility group the search assigned it, and a live measurement of how it is moving now.
- Gallery
- Every creature the search kept, grouped as linear, circler, wiggler, spinner or drifter by their measured motion.
- Are there motility classes?
- A scatter plot of every creature by speed and spin, colored by cluster, testing whether the groups are real.
How to use it
- Click
- Drop new mass where you click.
- Drag across a creature
- Cut it, and watch whether it heals, splits or dies.
- Gallery
- Load any creature the search found.
- Cilia thrust
- How hard the cilia push.
- Growth center / width
- The rule's sweet spot: the neighborhood density at which mass grows, and how forgiving it is.
- Kernel size
- How far each point looks when sensing its neighborhood.
- Speed
- Steps per second.
- Grid
- 48 × 48 as searched, or larger dishes.
- Show cilia thrust
- Draw the direction the cilia push.
- Mutate / Reset / Restart
- Nudge every parameter, go back to the creature as found, or restart it.
- Scatter plot
- Click a point to watch that creature; Table view lists the same data.
Try this: load a circler and raise the cilia thrust, then cut it in half. Small parameter changes often turn one motility style into another.
Background and theory
Lenia and Flow-Lenia
Lenia (Bert Chan, 2019) is a continuous cellular automaton. Each grid point holds an amount of mass instead of on/off, and every step it measures its neighborhood through a smooth, ring-shaped kernel; a growth function then says whether mass there should increase or decrease. Lenia is known for lifelike “creatures” that glide and pulse. Flow-Lenia makes mass move instead of appearing and vanishing, so it is conserved and creatures keep their substance as they travel.
Adding cilia
Anthrobots, built from adult human airway cells, swim using cilia, the beating hairs on their surface. Here a second kind of mass plays that role: where it sits on a creature’s edge, it pushes along the edge. The pushes add up to a motion for the whole creature that depends on how the cilia are distributed around it.
The search and the test
A diversity search tried 1,280 parameter settings and kept 59 creatures that survived and differed in how they moved. Each was measured on five motion features (speed, straightness, curvature, wiggle and spin). Then k-means clustering asked whether creatures fall into distinct groups, and the silhouette score measured how well separated those groups are (1 is perfectly separate, 0 is no structure).
Methods
The model
The state is a mass field A with two channels, body and cilia, on a periodic N × N grid (N = 48 in the search). Six kernels each read a source channel and write to a target channel. Each step has three parts:
- Each kernel Ki is a sum of three Gaussian rings, b exp(−(d − a)² / w), in the normalized distance d = distance / (10 r) and cut off at d = 1, so its radius is at most 10 cells. It is normalized to sum 1. Convolutions are computed directly, not by FFT.
- Mass flows up its channel’s affinity gradient and away from crowding (AΣ is the total mass).
- The last line is our addition: cilia mass pushes along the body’s rim, perpendicular to the body-mass gradient.
- Reintegration moves each cell’s mass by dt · F (dt 0.2, clipped to reach − σ cells) and spreads it over a square of half-width σ = 0.65 around its destination. Mass is conserved to rounding.
Searched parameters, per kernel, with their sampling ranges: source and target channels; r ∈ [0.2, 1]; a ∈ [0, 1]³; b ∈ [0.001, 1]³; w ∈ [0.01, 0.5]³; m ∈ [0.05, 0.5]; s ∈ [0.001, 0.18]; h ∈ [0.01, 1]. One global thrust ∈ [0, 5]. The ranges follow the Flow-Lenia paper’s, plus thrust.
Measuring a creature
- Every candidate starts from the same random 16 × 16 patch of mass, settles for 150 steps, and is then measured 16 times, 20 steps apart (a 320-step window). The move limit (reach) is 3 cells in the search.
- At each sample: the center of mass (torus-aware, from circular means), and the spin, estimated from the flow itself as Σ m (r × u) / Σ m r². This stays reliable for round bodies, whose shape-based orientation is noise.
- Five features from the trajectory:
- speed: net displacement per step;
- straightness: net displacement over path length;
- curvature: the mean turn of the heading per step;
- wiggle: the spread of those turns;
- spin.
- A creature persists only if three things hold, for the total mass and for the body channel on its own: it ends compact (effective area (Σm)² / Σm² under 600 cells, and a peak above 0.25), it did not spread by more than 1.5× during measurement, and all its values are finite. Checking the body channel separately excludes “creatures” that are only a ball of cilia whose body has dissolved.
The search
MAP-Elites over speed × spin rate, 12 × 12 cells, keeping the most compact persistent creature per cell. A mutation moves each parameter by Gaussian noise of 0.1 × its range. In total: 20 iterations of 64, or 1,280 evaluations, which kept 59 creatures. Path curvature was the planned second axis, but most creatures barely travel, so their paths have no curvature to measure.
The classification test
- The five features (absolute curvature and spin) are standardized, and clustered with k-means for k = 2 to 6 (10 restarts each). k is chosen by the silhouette score. A silhouette above 0.5 counts as distinct, 0.25–0.5 as weakly separated, and below that as not separated.
- Separately, each creature gets its own label by fixed rules, applied in order: linear (speed ≥ 0.004 cells/step and straightness > 0.85); circler (curvature ≥ 0.005 and at least the wiggle); wiggler (wiggle ≥ 0.004); spinner (spin ≥ 0.002 rad/step); otherwise drifter. The rules say which behaviors exist. The clustering asks whether they form separate groups.
Checks
The page runs an independent implementation of the same update, which agrees with the reference within 3 × 10⁻⁷ per cell after 40 steps on a 64 × 64 grid. Tests cover mass conservation, fixed points, translation equivariance, and that thrust needs cilia. Replaying creatures from their snapshots, in both implementations, showed that their behavior is not stationary: some speed up, slow down or change style. A label describes one 320-step window.
Results and what they mean
The question was whether the motility classes reported for real anthrobots (circlers, straight-line movers and wigglers) would appear on their own as distinct kinds.
- The behaviors appear. The search found creatures that circle, go straight, wiggle, spin and drift.
- The classes don’t. The best clustering found only 2 loose groups (mostly drifters, mostly circlers) with a silhouette score of 0.45, and the score barely changed from 2 to 6 groups. The behaviors shade into each other rather than forming separate kinds.
What it means: shape and cilia placement are enough to produce each of the reported behaviors, but they don’t on their own sort creatures into classes. If real anthrobots fall into distinct classes, something else is likely doing the sorting, such as how they develop.
Limits and open questions
- Lenia is an abstract field: “body” and “cilia” are two kinds of mass, not tissues.
- Cilia thrust is a single rule (push along the rim), not real ciliary beating in fluid.
- The comparison with real anthrobots is qualitative; nothing is fitted to measured data.
- Creatures change style over time, so a label from the search can differ from what you see live.