The Frontier

Every family so far runs on a lattice chosen in advance — a string, a plane — with a growth rule written by hand. This module is four ways that stops being true: growth that conserves mass instead of creating it, particles that leave the grid entirely, a population selected rather than authored, and a rule trained rather than written: the Distill authors published two-dimensional weights only, this project found none for one dimension to port, and trained its own instead.

part of The Automata Atlas →

Flow Lenia — growth becomes flow

Plantec, Hamon, Etcheverry, Oudeyer, Moulin-Frier & Chan's Flow Lenia (arXiv:2212.07906, 2022) rewrites Lenia's update from the ground up. Classic Lenia adds a growth increment to each cell in place; Flow Lenia instead treats every cell's mass as a parcel that moves along a locally computed flow field to a new position and is deposited there. Nothing is created and nothing is destroyed — growth becomes a redistribution of mass that was already on the board.

That conservation isn't a hoped-for property; it follows from how mass is deposited. A bilinear splat spreads a source cell's entire mass across the four grid cells nearest its computed target, using weights that always sum to exactly 1 — whatever leaves one cell exactly arrives somewhere else, for every cell, on every step. This project's tests check the sum directly: total mass drifts by less than 1e-9 from its starting value, sampled every 10 steps across a 300-step run — floating-point rounding, not decay or growth. By step 300 the field has reorganized into a persistent, concentrated structure: no cell's value exceeds 4, and between 5% and 25% of the board sits above a small occupancy threshold — the tested shape of the field at that step, not a claim that it has stopped changing. Unlike classic Lenia, values here are never clipped back to [0,1]: mass is free to concentrate, so a single cell can climb well past 1 once flow has piled several source cells' worth onto it.

The mass readout beside the field above is the point of this exhibit: watch it hold steady while the pattern itself keeps reorganizing. The paper's own second half goes further than this — parameters that vary by location, multiple interacting species sharing one board, building toward open-ended ecosystems of these creatures. This project implements the conservation law that whole idea rests on, not that extension; it is mentioned here only as a pointer to where the source paper goes next.

Particle Lenia — rolling downhill

Mordvintsev, Randazzo & Niklasson's "Particle Lenia and the energy-based formulation" (2022, google-research/self-organising-systems) throws out the grid entirely. Around 200 particles live at continuous positions in the plane; instead of a growth rule sampling a neighborhood, each particle descends the gradient of a scalar energy field built from its neighbors — an attraction kernel drawing particles together, a growth-shaped well tuned to a preferred local density, and a short-range repulsion keeping them from collapsing onto each other.

Each particle moves by following the slope of the energy field it sees around itself, its neighbors held momentarily fixed — the reference algorithm's own local-field descent, not the gradient of the whole system's energy at once. This project estimates that slope by central finite differences (nudging a particle's position slightly in each direction and comparing the resulting energy), its own implementation choice rather than an analytic derivative; every particle's estimate is computed independently, from the same pre-step positions.

What this project's tests check is the field's own total energy: sampled every 50 steps across a 400-step run, it never increases beyond the test's own 1e-6 floating-point tolerance, dropping from roughly −43 to −132 as the swarm settles from a loose disk into clustered groups. That descent is an empirical, tested property of this configuration and seed — not a theorem the energy-based formulation proves in general — and the same seed reproduces the identical run every time. A second measurement tracks the swarm's own spacing: the mean distance from each particle to its nearest neighbor lands between 0.4 and 0.9 by step 400, the repulsion term's floor keeping the clusters from collapsing into single points even as the energy keeps falling.

Watching the E readout above fall, step after step, is this exhibit's whole claim: a swarm with no grid, no growth rule, and no update table beyond a slope it's already standing on.

Selecting for persistence, live

Lehman & Stanley's "Abandoning objectives: evolution through the search for novelty alone" (Evolutionary Computation 19(2), 2011) argues that rewarding novelty, not only a fitness target, can find solutions a pure fitness search misses. This exhibit runs a small tournament-selection loop over Lenia genomes — pairs of the growth parameters μ and σ from the Lenia family on Life on a Plane — scored by fitness plus a novelty bonus against an archive of behavior already seen.

Generation 0 does not start from genomes drawn uniformly at random: it starts as mutated copies of this project's own Lenia creature. An earlier version of this exhibit did draw generation 0 uniformly, and every seed tried collapsed the whole population to zero fitness within three to five generations — genomes whose mass explodes produce a behavior descriptor so far from everything else's that their novelty score swamps the bounded [0,1] fitness signal entirely. Seeding near a genome already known to persist is what keeps selection pressure meaningful from the first generation on; that collapse, and the fix for it, is part of this exhibit's own story.

Fitness is a persistence score — 1.0 if a genome's mass is unchanged after its run, falling toward 0 as it explodes or collapses. Selection combines that fitness with 0.3 times a novelty score (mean distance to the 5 nearest archived behaviors); one elite survives each generation unchanged, and every other slot is filled by tournament selection and mutation.

For the documented seed, mean fitness rises from 0.2138 at generation 0 to 0.2903 at generation 5 — the only improvement claim this exhibit makes, and it is endpoints only: that same run's per-generation means genuinely dip as low as 0.06 partway through before recovering. Whether a loop like this one is open-ended — whether it could keep generating genuine novelty indefinitely — is the field's own open question (Bedau et al., "Open Problems in Artificial Life," Artificial Life 6(4), 2000); nothing here claims an answer.

String neurons — a learned rule, one dimension

Mordvintsev, Randazzo, Niklasson & Levin's "Growing Neural Cellular Automata" (Distill 2020, doi:10.23915/distill.00023) trained and published weights for a two-dimensional lattice only; this project found no published weights for a one-dimensional version anywhere else either. This exhibit is one: the same update-rule structure — perception, a small dense network, a residual delta — transplanted onto a 48-cell line on a torus, with its own weights trained by this project's own build script (packages/engine/scripts, mulberry32 seed 42, 6000 iterations, about two minutes), not adapted from anyone else's checkpoint.

Two departures from the 2D model are deliberate, not bugs. Every cell updates every step here — fire rate 1.0, no stochastic per-cell gate — so the rule is fully deterministic, unlike the 2D model's 0.5 fire rate. And no cell is ever zeroed by an alive-neighborhood mask; a cell only goes quiet because the trained rule itself drives it there.

The training script's own gates, checked directly against the vendored weights: growing from a single seeded cell to within a mean-squared error of 0.01 of the trained three-band target by step 48 (measured 0.00044); holding that pattern within MSE 0.015 at step 96 (measured 0.00143); and, after an 8-cell wound, recovering to within MSE 0.02 within 48 more steps (measured 0.0044).

Click the line above to wound it, then watch the rows below the click show the rule closing the gap. The spacetime diagram draws every one of those steps as its own row, so a wound's healing is written into the picture as history rather than erased. This atlas's very first module asked whether von Neumann's universal constructor really needed the whole plane, or whether it could be flattened onto a single dimension instead (Chapter 4) — the automaton there was flattened but still hand-written. This exhibit keeps the single dimension and swaps the hand-written table for a rule this project trained instead: the same question, answered a second way.

None of these four exhibits changes what the earlier modules already proved; each swaps out one more thing this project used to write by hand — a growth rule, a lattice, a set of parameters, an update rule itself — for something the system now conserves, descends, selects, or learns instead.

Explore the rest of the taxonomy on the Atlas map, or run any of this module’s widgets in the Lab. The fidelity of every claim on this page — what’s measured, what’s tested, and what’s an open question rather than a result — is accounted for on the About page.