Emerging Systems

Emergence from local rules: Conway's Life and the elementary automata

CODE  ·  2026-10-17   cellular-automataemergenceeducationtools

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:

patterncellswhat it does
glider5returns to its shape one cell along the diagonal every 4 generations
lightweight spaceship9returns to its shape 2 cells along every 4 generations
pulsar48returns to its shape every 3 generations
Gosper glider gun36adds one new 5-cell glider every 30 generations, without end
R-pentomino5settles at generation 1,103 with 116 cells
acorn7settles 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.

rulefrom a single live cell
90the 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
30chaos: the centre column looks random, with 5,032 of its first 10,000 cells alive and no run of equal values longer than 13
110can carry out any computation, given the right starting row (Matthew Cook, Complex Systems 15, 2004)
184a 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

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