DOCUMENTATION / ARTIFICIAL LIFE
Growing Anthrobots.
A neural cellular automaton that grows, heals and rolls, and its hidden prepattern.
Open the experimentWhat the page shows
A 3D body growing from a single cell into a stylized anthrobot: first a cluster, then a skin layer, then an outer coat of cilia. Every cell runs the same small neural network, which was trained so the body grows to a target shape, holds it and regrows it when cut. Once the cilia are out, they roll the body around the dish.
- Colors
- Interior (orange), skin (cream) and cilia (blue).
- Status
- The current step, how many cells are alive and the body's radius.
- Prepattern chart
- Lower on the page: how well each cell's future tissue can be predicted from its current state, from hidden versus visible channels.
How to use it
- Restart from one cell
- Grow a new body from scratch.
- Cut in half
- Remove half the body and watch it regrow.
- Orbit / Knife
- Orbit: drag to turn the view, scroll or pinch to zoom. Knife: drag across the body to cut, click to wound.
- Speed
- Growth steps per second.
- Body shape
- Presets (round, elongated, irregular) and two sliders. These are the condition inputs every cell sees; values in between blend the shapes. Restart or cut to see a change.
- View: Tissue / Hidden channel
- Show the visible tissue, or one of the 12 hidden channels (orange positive, blue negative, gray near zero).
- Cross-section
- Slice through the body at a chosen depth to see inside.
- Rolling / Follow the body
- Switch cilia-driven rolling on, and keep the camera on the body.
- Floor grip
- How much the body grips the dish floor, which changes whether it rolls or spins.
- Beat channel / Along contours / Down gradient
- Which hidden channel sets the direction the cilia push, and whether they push along its contour lines or down its slope.
Try this: switch the view to a hidden channel and restart. Some channels light up in the shape of tissues before those tissues appear. Then cut the body in half and watch the hidden channels change at the wound before the skin does.
Background and theory
Anthrobots
Anthrobots assemble themselves from adult human airway cells. Grown in a gel, the clusters keep their cilia (the beating hairs that normally sweep mucus) on the inside; moved to a thinner medium, they turn inside out, cilia facing outward, and start to swim. Some circle, some go straight, some wander.
Neural cellular automata
A neural cellular automaton (NCA) is a cellular automaton whose rule is a small neural network. Here the grid is 24 × 24 × 24 and every cell holds 16 numbers: four visible (alive, skin, cilia, interior) and twelve hidden, free for the network to use however it likes. Each step, every cell looks at its neighbors and updates itself with the same network. Cells update at random moments rather than in lockstep, as real cells do.
The network was trained by gradient descent, the method used to train most neural networks: it was run from a single cell, compared with the target shapes, and adjusted to reduce the error, including after damage. Two extra inputs that every cell sees pick which of three target shapes to grow. This follows the “Growing Neural Cellular Automata” work of Mordvintsev and colleagues (2020), extended to 3D tissue layers.
Rolling
Rolling is a separate, simple physics model. Each cilia cell pushes along the body’s surface in a direction set by one hidden channel; the pushes add up to a force and a twist that move the body through thick fluid with no momentum (Stokes drag, the low Reynolds number regime of cells). In this model the shape decides the path: elongated and lumpy bodies circle, while round ones spin in place or roll straight, depending on how much they grip the floor.
The prepattern test
Do the hidden channels know what a cell will become before the body shows it? 128 bodies were grown under random shape settings and 128 more were cut. Simple decoders (linear, and small neural networks) were trained to predict each cell’s final tissue from its state at each moment, once from its 12 hidden channels and once from its 4 visible ones. A third decoder got only 4 numbers from the hidden channels, to match the visible one. Every score is R² on bodies the decoders never saw.
Methods
The growth rule
The state is a 24 × 24 × 24 grid of cells with 16 channels: alpha (alive), skin, cilia and interior, and 12 hidden channels. Outside the grid is zero. Each step:
- Perception. For every channel, its value, its Sobel gradients along x, y and z, and a 27-point Laplacian, as 3 × 3 × 3 depthwise convolutions. The two shape-condition inputs, the same in every cell, are appended.
- Update. Δs = W₂ · relu(W₁ p + b₁): a network with one hidden layer of 96 units, shared by every cell.
- Asynchrony. Each cell applies its update with probability 0.5. The draw is a hash of (seed, step, cell), so a run replays exactly. The state is then clamped.
- Alive mask. A cell survives only if some cell in its 3 × 3 × 3 neighborhood had alpha above 0.1 both before and after the update; otherwise all its channels are cleared.
Targets
Three stylized bodies, each with layers set by depth below the surface so they keep their thickness on every shape: a 1.5-cell cilia layer outermost, a 1.5-cell skin layer, interior, and a 1.5-cell hollow center. Round is a sphere of radius 7; elongated an ellipsoid 1.4× longer along one axis; irregular a sphere with two lobes. Their condition inputs are (0, 0), (1, 0) and (0, 1). An early-stage target, a 3.5-cell interior cluster with no cilia, is scored at step 16, so the rule learns the order anthrobots show: grow first, then turn cilia-out.
Training
- Pool training (after Mordvintsev et al. 2020): a pool of 96 states, each belonging to one shape, is reused across batches. Each batch of 4 replaces its worst sample with a fresh single cell and cuts its best one (a ball, or a slice off one side), so the rule learns to reach, hold and heal its shape.
- Each rollout’s length is drawn from 48–72 steps. The loss is the mean squared error of the four visible channels at the end, plus 0.5 × the early-stage error for samples that pass step 16.
- Adam with per-parameter gradient normalization, learning rate 2 × 10⁻³, dropped tenfold for the last 30% of 3,000 iterations. The loss fell from 0.137 to 0.0005.
Checks of the trained rule
- Grown from one cell for 120 steps, the error against the target is 0.00028–0.00037 per shape, and 500 more steps leave it at 0.00030–0.00040: the shape holds.
- Four random cuts per shape all healed to within 0.01.
- Condition settings between the trained ones blend the shapes smoothly. (1, 1) is outside the trained triangle and overgrows the grid, so the page’s controls stay inside it.
- The page runs an independent implementation of the rule, which matches the reference within 3.6 × 10⁻⁷ after 24 steps of a random-weights run with conditions.
Rolling
- Each cilia cell pushes tangentially to the surface (normal from the alpha gradient). The beat direction is the gradient of hidden channel 13, projected onto the surface and turned by a beat angle: 0 beats down the gradient, π/2 (the default) along its contour lines. Thrust is softened where the channel is flat.
- The summed force F and torque τ move the body as a rigid object with sphere Stokes drag and no inertia: v = F / 6πμR and ω = τ / 8πμR³.
- A floor-grip parameter (0.1 by default) couples spin about a horizontal axis to rolling, from free spinning (0) to rolling without slipping (1). Gravity (0.05 per unit alpha) holds the body on its lowest point, taken from an ellipsoid fit, so a long body lies on its side. The dish wall stops it.
- Geometric checks on a sphere with even cilia: beating down a gradient gives no torque (it swims straight); beating along contours gives no force (it spins in place).
The prepattern test
- Bodies: 128 grown from one cell under random conditions inside the trained triangle. Another 128 were grown for 160 steps, cut by a random plane offset −2 to +3 cells from the center of mass (44% removed on average), and left to heal (back to 92% of their volume). The final tissue map is taken 240 steps after the start, or after the cut.
- Decoders: for each living cell at time t, predict its final skin, cilia and interior from one of:
- its 12 hidden channels;
- the top 4 principal components of those, so the input count matches the visible decoder;
- its 4 visible channels.
- Split and score: decoders are fit on 96 bodies and scored by R² on the other 32, at 17 times from step 6 to 120 for growth and 17 times from 0 to 120 after a cut. Steps before 6 are left out: the body is a handful of cells and every decoder scores trivially high.
- Summaries: the first step at which R² reaches 0.8 and stays there; the mean R² over early growth (steps 6–16); and, after a cut, the mean R² over steps 2–32 for the cells whose tissue must change, those where some tissue’s coverage moves by more than 0.3 before the end.
Results and what they mean
- The trained rule works. It grows all three shapes from one cell with very small error, holds them, and regrows most cuts.
- During growth, the hidden state leads. It predicts each cell’s fate about 8 steps before the visible state does (R² 0.8 at step 20, against step 28 for the visible channels). With only 4 hidden inputs, most of that lead goes: the hidden channels hold more information, not one early signal.
- After a cut, the lead is clear. Cells that must change, such as interior cells left on the wound surface that must become skin and cilia, carry their new fate in their hidden state well before they show it (R² 0.68 against 0.44), and the lead holds with only 4 hidden inputs.
What it means: nothing in training asked the rule to plan ahead, yet it developed an internal map of future tissue, because that was a useful way to grow, hold and heal. Researchers at Tufts have reported something similar in frog embryos: patterns of voltage across the embryo’s surface that mark out the face before it forms. The model doesn’t show that real tissue works this way, but it shows that a prepattern is a natural thing for a growth rule to invent.
Limits and open questions
- The target bodies are hand-drawn layers, not measured from microscopy, and the grid is only 24 cells across.
- Rolling uses a rigid body with sphere-like drag and an assumed beat direction, not real ciliary beating.
- The prepattern test uses one trained rule, and decoders that see only one cell at a time, not its neighbors.