Emergence from local rules: Conway's Life and the elementary automata
A cellular automaton is a grid of cells, each alive or dead, updated in steps. Every cell's next state depends only on its immediate neighbours. No cell sees the whole grid and nothing coordinates them, yet patterns appear that the rule never mentions: shapes that travel, machines that fire, triangles that repeat at every scale. That is what emergence means here: behaviour that can only be described at a larger scale than the rule that produces it.
Both families below run in your browser on the interactive page. You can draw cells, load the patterns in the tables, and flip a rule's cases one at a time.
Conway's Life
Life runs on a square grid with one rule, written B3/S23: a dead cell with exactly three live neighbours is born, a live cell with two or three survives, and every other cell is dead in the next generation. These patterns were run on an unbounded plane:
| pattern | cells | what it does |
|---|---|---|
| glider | 5 | returns to its shape one cell along the diagonal every 4 generations |
| lightweight spaceship | 9 | returns to its shape 2 cells along every 4 generations |
| pulsar | 48 | returns to its shape every 3 generations |
| Gosper glider gun | 36 | adds one new 5-cell glider every 30 generations, without end |
| R-pentomino | 5 | settles at generation 1,103 with 116 cells |
| acorn | 7 | settles at generation 5,206 with 633 cells |
The last two rows are the point. Five cells take 1,103 generations to stop changing, and seven take 5,206; nothing in the starting shape hints at either number. Life can carry out any computation a computer can (Berlekamp, Conway and Guy, 1982), and a consequence is that no general shortcut exists for deciding whether a pattern will ever settle: in general, the only way to find out is to run it.
The elementary automata
These use a single row of cells. Each cell looks at itself and its two neighbours, which gives eight possible neighbourhoods, and a rule assigns an output to each one. Eight yes-or-no answers make 256 rules, numbered by reading the answers as a binary number. Mirroring a rule, or swapping live and dead, gives a rule that draws the mirrored or inverted picture, so the 256 rules reduce to 88 genuinely different behaviours, a published count our code reproduces.
| rule | from a single live cell |
|---|---|
| 90 | the Sierpiński triangle: row n has 2 to the power of (the number of 1s in n written in binary) live cells, checked for the first 1,024 rows |
| 30 | chaos: the centre column looks random, with 5,032 of its first 10,000 cells alive and no run of equal values longer than 13 |
| 110 | can carry out any computation, given the right starting row (Matthew Cook, Complex Systems 15, 2004) |
| 184 | a traffic model: live cells are cars that move right when the space ahead is free, so their number never changes (checked over 1,000 generations on a 500-cell ring) |
Rules 30 and 110 differ in three of their eight answers, yet one produces noise and the other structured particles that can be arranged into a computer. Small rule changes do not map to small changes in behaviour, which is why these automata have been studied for decades.
What this does not show
- The page's Life grid is not the unbounded plane. It is 160 × 100 and wraps round at the edges, so long-running patterns meet their own debris. Measured against the plane, the gun's run departs at generation 1,203, the R-pentomino's at 513 and the acorn's at 517. The table above is for the plane.
- The two universality results are cited, not reproduced here. They are published proofs; the code here checks the behaviours in the tables, not the proofs.
- One statistic does not make Rule 30 random. A centre column that is 50.3% alive passes only the simplest check of randomness.
Get it
The page is tools/automata.html, and its logic is one file, tools/automata-core.js, readable in the browser. The tests (14, run with node --test), the measurement script and its output are in automata-1.0.tar.gz. They are free to use in teaching and learning, as is everything here.
Measured on a Dell 15 laptop (Intel Core 3 100U, no GPU), 2026-10-17, with Node 22. The Life facts were measured on the unbounded plane, and the elementary facts on rows wide enough that the edges never matter.
← Back to the library