Cellular Automata Lab

What is a cellular automaton?

A cellular automaton is a grid of cells, each either alive or dead, that evolves in discrete time steps. Every step, each cell looks only at its immediate neighbors and applies the same simple rule — yet these purely local rules can produce gliders, oscillators, chaos, and even universal computation.

2D Life-like automata (like Conway's Game of Life) use B/S rules on the 8 surrounding cells: in B3/S23, a dead cell is Born with exactly 3 live neighbors, and a live cell Survives with 2 or 3.

1D Elementary automata (studied by Stephen Wolfram) act on a single row: each cell's next state depends on itself and its two neighbors. Those 3 cells form 2³ = 8 patterns, and a rule assigns 0 or 1 to each — giving 2⁸ = 256 rules. The rule number is just those 8 output bits read as a byte (e.g. 00011110₂ = Rule 30). Each generation is drawn as a new row below the last.

Rule 30 — chaos from nothing: from a single cell it produces an aperiodic, statistically random pattern (Mathematica long used its center column as a random number generator; the same pattern appears on the Conus textile sea snail shell).

Rule 90 — perfect order: a single cell grows into the Sierpiński triangle fractal.

Rule 110 — the edge of chaos: gliders move through a periodic background and interact on collision. Matthew Cook proved these interactions can encode arbitrary computation — Rule 110 is Turing-complete, one of the simplest known universal computers. It shows best with a random initial row.

Pick a rule, tweak the parameters, and watch complexity emerge from simplicity.

Generation: 0
Population: 0
Grid: –
Click / drag on the grid to draw cells. Rulestring: B = neighbor counts that birth a cell, S = counts that let it survive.
Each row is one generation, scrolling downward. The rule number encodes the next state for all 8 neighborhood patterns.