🧬 Game of Life

Conway's cellular automaton on a brass-framed lab board. Draw cells, change the rules and stack time into 3D layers.

Switch to 2D

Presets

Playback

Rule

Pick a famous rule or tick your own birth and survival digits.

Board

Draw, erase and stamp

Choose a tool, then click or drag on the board. In Orbit mode the mouse turns the camera.

Colour and time stack

Colour: newborn cyan, then green, yellow, orange, pink, violet for the oldest cells.

Camera

Layers

Quality

Model checks

The science

The rules

Life lives on a grid of cells, each alive or dead. All cells update at the same moment. Count the 8 neighbours around a cell (the Moore neighbourhood). In Conway's rule, written B3/S23:

  • Birth: a dead cell with exactly 3 live neighbours becomes alive.
  • Survival: a live cell with 2 or 3 live neighbours stays alive; otherwise it dies (lonely with fewer than 2, crowded with more than 3).

Every other Life-like rule uses the same idea with different digit lists. B36/S23 is HighLife, B2/S is Seeds. You can tick any digits above and watch a new universe appear.

What the colours and heights show

Each cell remembers its age, the number of generations it has been alive. In Age colour mode a newborn is cyan, then green, yellow, orange, pink and violet for the oldest. In Age towers mode the cell grows taller as it ages. A cell that has just died shrinks in red for a moment.

Layered Life: time as a third dimension

Switch on Space-time stack. Instead of throwing away the past, every generation is drawn as a thin layer and the layers are piled up with the newest on top. This is a space-time diagram: a still life becomes a straight column, a blinker a zig-zag column, and a glider a slanted rod, because it moves one cell in x and y every 4 layers. A glider gun looks like a fountain of slanted rods.

Statistics

Density is p = live cells / all cells. A colony is a group of live cells connected through any of their 8 neighbours. The page also remembers a fingerprint (hash) of recent boards; if the same board comes back, it reports a cycle: period 1 is a still life, period 2 a blinker-like oscillator.

The mean-field map

If live cells were scattered at random with density p, the number of live neighbours of a cell would follow the binomial law P(k) = C(8,k) pk (1-p)8-k. The expected density after one step is then

f(p) = p · Σk in S P(k) + (1 - p) · Σk in B P(k)

The yellow curve in the third graph is f(p) for the current rule; the dashed line is f(p) = p. Where they cross, a well-mixed soup would stay at the same density. This predicts the first step of a random soup very well (check 1 below tests it). After that the live cells clump together into islands, neighbours are no longer independent, and real Life settles at a much lower density (roughly 2 to 4 per cent for Conway) than the formula suggests. The pink dots show the real path.

Famous facts

  • John Conway introduced Life in 1970 (Martin Gardner described it in Scientific American).
  • The glider gun was found by Bill Gosper's group in 1970 and showed that a finite pattern can grow without bound.
  • Life is Turing complete: gliders can carry signals and build logic gates, so a big enough Life board can in principle run any computer program (this is shown with constructions, not by this page).
  • The R-pentomino stabilises after 1103 generations, the acorn after 5206, and diehard disappears after 130 on an unlimited plane.

Honest simplifications

The board here is finite: with wrap it is a torus (what leaves on the right returns on the left), without it the outside is dead, so gliders crash into the walls and the acorn or R-pentomino end differently from the infinite plane. The cycle detector only looks back about 400 generations, so a glider that needs a whole lap of a big torus to return is not reported. Age and the statistics are exact for the board you see; only the mean-field curve is an approximation.

Loading model...
Loading Blender model...
Population over time
Births and deaths per generation
Mean-field map: density now vs next
Made with 🟠 Blender · Three.js