Rule 30
A deterministic rule that produces something indistinguishable from noise
A single starting cell produces an ordered left edge and an apparently random interior. The centre column is random enough to have been used as a source of random numbers.
How it works
In plain English, before the notation
The automaton is a single row of cells. Each cell looks at itself and its two immediate neighbours, and an eight-entry table says what it becomes. The canvas shows the history: the top row is the start, and each row below is one step later. Start with a single live cell and the left edge settles into regular stripes while the middle and right never do — no repetition has been found in the centre column, despite the rule being completely deterministic.
One cell, then chaos
- Open Presets and load "Rule 30 from One Cell", or press 1-Seed in the dock.
- Press Play. Notice how different the two sides of the triangle are — the left is periodic, the right is not.
- Use the Seed Row tool to click a second cell on the top row and watch how the disturbance spreads downwards at one cell per step.
Starting configurations
Loads straight into the simulatorTry any rule
The catalogue covers a few dozen rules. Here you can run any of the 262,144 two-state grid rules, or any of the 256 one-dimensional rules, including ones nobody has written up.
The number is the eight-entry lookup table below, read as a binary number.
Lookup table (00011110) — neighbourhood above, result below
Classification: Class 3 — chaotic, with no detected long-range order
How it runs: the automaton is a single row. Each cell reads the three cells above it and looks up the answer in 00011110. The canvas is the history — each row is one step later than the one above it.
Well-known rules
Where it came from
Stephen Wolfram introduced the numbering scheme for the 256 one-dimensional rules in 1983 and singled out Rule 30 as the clearest case of complex behaviour arising from a minimal rule. He later used its centre column as the random number generator in Mathematica.
In 2019 Wolfram offered prizes for three questions about the centre column, including whether it is eventually periodic and whether 0s and 1s occur equally often. As of writing none has been claimed.
The rule, precisely
What each cell looks at
Three cells on the previous row: (x−1, x, x+1)
What a cell can be
Two states per cell on a single row
The update
x(t+1) = x(t, left) XOR (x(t, centre) OR x(t, right))
The rule number is the output column of the table read as a binary number. Rule 30 is 00011110, which assigns outputs to the eight neighbourhood patterns in the order 111, 110, 101, 100, 011, 010, 001, 000.
One rule, two very different sides
The asymmetry from a single starting cell is the rule’s most recognisable feature:
- The left side of the triangle is periodic: regular diagonal stripes.
- The centre and right side show no detected periodicity, and no shortcut for computing them is known.
- The centre column passes standard statistical tests for randomness, which is what made it usable as a generator.
- A change to one cell in the starting row eventually affects the entire pattern, spreading outwards at one cell per step.
Chaotic rather than constructive
Rule 30 is Class 3 in Wolfram’s classification: it mixes information thoroughly and does not support the localised, persistent structures that constructions are built from.
Pigmentation patterns and pseudo-randomness
The shell of the cone snail Conus textile carries a pattern that looks strikingly like Rule 30’s output, and the resemblance is often cited because the mechanism is plausible: pigment is laid down at the growing edge of the shell, one line at a time, with each line depending on the one before it. The practical use is different — the centre column was Mathematica’s source of pseudo-random numbers for years.
Things to try
- The rule number box in the Try any rule panel below lets you type any number from 0 to 255. Try 29 and 31 to see how much a single bit changes.
- Compare a single seed cell with a random starting row (press Soup). The random start hides the asymmetry that a single cell makes obvious.
- Set Cell Scale to 2px to fit more history on screen at once.
