Cellular Automata
July 2026 · 13 min read · Computation theory · Complexity · Wolfram · Last updated: 3 July 2026

Wolfram's Rule 110 Universality

Written by MySimulator Team · Reviewed by MySimulator Editorial Review

Take a single row of black-and-white cells. Update every cell at every tick using nothing more than its own state and its two immediate neighbours — eight possible input patterns, eight output bits, a lookup table you could scribble on an index card. One particular table, numbered 110 in Stephen Wolfram's enumeration, is provably capable of computing anything any computer can compute. It is the simplest known example of a system straddling the line between trivial and universal.

1. Elementary cellular automata

An elementary cellular automaton is the simplest class of cellular automaton Stephen Wolfram studied systematically in the 1980s. The tape is one-dimensional: an infinite (or wrapped) row of cells, each holding a binary value, 0 or 1. Time advances in discrete steps. At every step, every cell's new value is computed from exactly three inputs — its own current value and the values of its left and right neighbours.

Because the neighbourhood has 3 cells, each of which is 0 or 1, there are 23 = 8 possible neighbourhood patterns. A rule is simply a function that maps each of those 8 patterns to an output bit — so a rule is fully specified by 8 bits, one per pattern. There are therefore exactly 28 = 256 distinct elementary cellular automata, and Wolfram numbered them 0 through 255 by reading the 8 output bits as a binary number.

new_state[i] = f( state[i-1], state[i], state[i+1] ) f is defined by an 8-bit table indexed by the 3-bit neighbourhood (state[i-1], state[i], state[i+1]) read as a binary number from 0 (000) to 7 (111)

To find the rule number: list the 8 neighbourhoods in descending order (111, 110, 101, 100, 011, 010, 001, 000), write the output bit for each, and read the resulting 8-bit string as a binary integer. Rule 30, Rule 90, and Rule 184 are other well-known members of this family, each producing wildly different long-term behaviour from the same three-cell neighbourhood rule structure.

Why "elementary"? Wolfram reserves "elementary" for the 1D, 2-colour, nearest-neighbour case specifically. Adding more colours, a wider neighbourhood, or an extra dimension produces vastly larger rule spaces — but the elementary automata already contain the full range of qualitative behaviour, including Rule 110's universality.

2. What Rule 110 actually does

The number 110 in binary is 01101110. Laid out against the 8 neighbourhoods in Wolfram's standard descending order, the rule table is:

Neighbourhood (L, C, R) Pattern New state of C
1 1 11110
1 1 01101
1 0 11011
1 0 01000
0 1 10111
0 1 00101
0 0 10011
0 0 00000

Read the "new state" column top to bottom: 0 1 1 0 1 1 1 0 — that is 01101110 in binary, which is 110 in decimal. This is the entire specification of the automaton. Every one of its complicated long-term behaviours, including universal computation, follows from this single 8-bit table applied uniformly and synchronously across the whole tape, forever.

A useful way to internalise the rule: a cell becomes 1 in the next step unless its neighbourhood is 111, 100, or 000 — that is, all-on runs and isolated single-on-left patterns get suppressed, while every other configuration keeps or creates activity. That slight asymmetry (Rule 110 is not symmetric under left-right mirroring the way Rule 90 is) is precisely what generates its rich diagonal structures.

Starting from a single black cell on an otherwise white infinite tape and iterating downward (each row is one time step), Rule 110 produces a triangular cascade of nested, overlapping triangles and diagonal streaks — visually reminiscent of a Sierpiński-like texture, but irregular rather than perfectly self-similar.

3. Class 4: the edge of chaos

Wolfram grouped all 256 elementary automata (and, by extension, cellular automata generally) into four qualitative classes based on long-run behaviour from generic initial conditions:

Class Long-term behaviour Example rules
Class 1 Converges to a uniform, static state Rule 0, Rule 32
Class 2 Converges to simple periodic or stable local structures Rule 4, Rule 108
Class 3 Chaotic, statistically random-looking, no persistent structures Rule 30, Rule 90
Class 4 Localised structures that move, collide, persist, and interact Rule 110, Rule 54, Conway's Game of Life

Class 4 systems sit at what is popularly called "the edge of chaos" — neither settling into dead simplicity nor dissolving into pure noise. They support long-lived localised patterns that propagate through an otherwise periodic background and interact with each other in ways that depend on their relative positions and phases. This capacity for structured, conditional interaction between mobile patterns is exactly the raw material computation is built from, and it is why every rule known to be Turing-complete is a Class 4 rule.

Not proof, just correlation: Class 4 behaviour is not itself a proof of universality — it is a qualitative, visually-assessed classification. Rule 110's Class 4 status was recognised long before Matthew Cook supplied the rigorous 1994–2004 proof of its Turing completeness. Many other Class 4 rules remain unproven either way.

4. Gliders and particle collisions

On a periodic background pattern, Rule 110 supports a repertoire of stable, localised structures — commonly called gliders or particles — that travel across the periodic background at constant velocities without dispersing. Each glider type has a fixed period, a fixed spatial width, and a fixed slope (cells travelled per time step).

Researchers cataloguing Rule 110's gliders (notably Matthew Cook and later Doug Lind, Genaro Juárez Martínez and collaborators) identified over a dozen distinct glider types, commonly labelled with names like A, B, C2, D, E, and so on, distinguished by their period and background phase. Two of the most important:

This phase-dependent collision behaviour is the computational payload of the system: a glider's presence or absence, and its exact timing, can be read as a bit of information, and a collision between two gliders can be read as a logical operation on those bits. Chaining collisions together lets a glider stream encode and propagate arbitrary binary information — the prerequisite for building logic gates out of particle physics rather than transistors.

5. Cook's proof: cyclic tag systems

Stephen Wolfram conjectured Rule 110's universality in his 1985 Physica D paper and offered a $25,000 prize (later awarded) for a rigorous proof. Matthew Cook, then a researcher at the Santa Fe Institute working with Wolfram, constructed the proof in the mid-1990s; it was formally published in 2004 after a contractual dispute over publication rights was resolved (Wolfram's A New Kind of Science had been in preparation and the material was initially withheld from independent publication).

The proof does not simulate a Turing machine directly. Instead, it proceeds through an intermediate computational model called a cyclic tag system:

  1. A cyclic tag system operates on a queue of bits and a fixed, cyclically-repeating list of "production" bit-strings. At each step, the front bit of the queue is read; if it is 1, the next production string (cycling through the list) is appended to the back of the queue; the front bit is then removed.
  2. Cyclic tag systems were already known (via earlier work reducing them from general tag systems, themselves proven universal by Cocke and Minsky) to be Turing-complete — capable of simulating any Turing machine given a suitable encoding.
  3. Cook showed how to encode any cyclic tag system's queue and production rules as a specific configuration of gliders on a Rule 110 tape, using particular glider types to represent queue bits and other glider types, emitted periodically from a fixed "clock" structure, to represent the production rules.
  4. Glider collisions on the Rule 110 tape were shown to correctly reproduce every step of the cyclic tag system's execution — bit reads, appends, and removals all emerge from the deterministic outcomes of specific glider-collision types.

Because cyclic tag systems can simulate any Turing machine, and Rule 110 can simulate any cyclic tag system, Rule 110 can simulate any Turing machine. That chain of reductions is the proof.

A caveat on initial conditions: Rule 110's universality, as proven, requires an infinite, non-repeating but non-random initial background — specifically a periodic background pattern extended infinitely in both directions, with a finite region encoding the actual "program" and "data" as a specific arrangement of gliders. A single black cell on an all-white tape, the simplest initial condition, does not by itself encode a computation — universality is a property of what the rule table permits you to build, not of every possible starting configuration.

6. Implications: the Principle of Computational Equivalence

Rule 110's proof of universality is the central supporting example for Wolfram's broader Principle of Computational Equivalence, which conjectures that almost all processes that are not obviously simple — whether generated by simple rules in nature, mathematics, or computation — are computationally equivalent in power, achieving the maximum possible level of computational sophistication.

The practical consequence Wolfram draws is a limit on predictability: if a natural process is running a computation as sophisticated as any Turing machine, then in general there is no shortcut to finding its future state other than actually running it step by step — a property called computational irreducibility. Rule 110 is frequently cited as a concrete, provable instance of this: because it can simulate arbitrary computation, some Rule 110 configurations must encode undecidable questions (e.g., variants of the Halting Problem), meaning no general shortcut algorithm can exist for predicting all of its futures.

A second implication concerns minimality. Before Cook's proof, the smallest known Turing-complete systems were considerably more intricate — universal Turing machines with multiple tape symbols and states, or Conway's Game of Life's much richer 2D, 9-neighbour, 2-colour rule space. Rule 110 demonstrated that universality does not require an elaborate rule; an 8-bit lookup table on a 1D binary tape with a 3-cell neighbourhood suffices, making Rule 110 (tied with a handful of small tag-system-derived machines) one of the simplest known universal computers in terms of rule description size.

8. JavaScript implementation

// Rule 110 — compact canvas implementation of an elementary
// 1D cellular automaton, with a swappable rule number.

const RULE_NUMBER = 110;   // try 30, 90, 184, 54, ...
const CELL_SIZE   = 3;     // pixels per cell
const WIDTH       = 400;   // cells across (wraps at edges)
const HEIGHT      = 400;   // rows of history to keep on screen

// Precompute the 8-entry lookup table from the rule number.
// Bit i of RULE_NUMBER gives the output for neighbourhood value i,
// where the neighbourhood (L, C, R) is read as a 3-bit integer.
function buildLookupTable(ruleNumber) {
  const table = new Uint8Array(8);
  for (let i = 0; i < 8; i++) {
    table[i] = (ruleNumber >> i) & 1;
  }
  return table;
}

const LOOKUP = buildLookupTable(RULE_NUMBER);

function step(row) {
  const next = new Uint8Array(row.length);
  for (let x = 0; x < row.length; x++) {
    const left  = row[(x - 1 + row.length) % row.length];
    const centre = row[x];
    const right = row[(x + 1) % row.length];
    const neighbourhood = (left << 2) | (centre << 1) | right;
    next[x] = LOOKUP[neighbourhood];
  }
  return next;
}

function setup(canvas) {
  const ctx = canvas.getContext("2d");
  canvas.width  = WIDTH * CELL_SIZE;
  canvas.height = HEIGHT * CELL_SIZE;

  // Start from a single black cell, roughly centred.
  let row = new Uint8Array(WIDTH);
  row[Math.floor(WIDTH / 2)] = 1;

  let y = 0;
  function frame() {
    if (y >= HEIGHT) return;  // stop after filling the canvas

    ctx.fillStyle = "#f59e0b";
    for (let x = 0; x < WIDTH; x++) {
      if (row[x]) ctx.fillRect(x * CELL_SIZE, y * CELL_SIZE, CELL_SIZE, CELL_SIZE);
    }

    row = step(row);
    y++;
    requestAnimationFrame(frame);
  }
  requestAnimationFrame(frame);
}
        

Reading gliders off the raster

Because each row of the canvas corresponds to one time step, the diagonal streaks visible in the rendered image are exactly the gliders described in section 4 — a persistent local pattern that shifts sideways by a fixed number of cells every fixed number of rows is, by definition, a glider with slope (Δx / Δt) equal to that shift-per-period ratio. Setting RULE_NUMBER to 30 or 90 produces visibly different regimes — Rule 30's output is statistically indistinguishable from noise (it is used as Mathematica's default pseudorandom number generator for exactly this reason), while Rule 90 produces an exact Sierpiński triangle from a single-cell seed, since its update rule is equivalent to bitwise XOR of the two neighbours.

For long-running or wide simulations, avoid re-scanning the entire canvas from software each frame — write the current row directly into an ImageData buffer at the appropriate vertical offset and only call putImageData once per frame (or batch several rows before one commit), which is substantially faster than one fillRect call per live cell once the automaton has been running for thousands of steps.

Encoding a real computation

The naive single-cell seed above only demonstrates Rule 110's qualitative Class 4 texture, not an actual computation. Building an initial tape that encodes a specific cyclic tag system (and therefore a specific Turing machine) requires constructing the periodic background plus a precisely-phased sequence of gliders — a nontrivial compiler problem in its own right. Cook's original construction, and later simplified variants by other researchers, remain the reference implementations for anyone wanting to run an actual program on Rule 110 rather than just observe its texture.

Try it: Change RULE_NUMBER to 90 for an exact fractal, or to 30 for Wolfram's chaotic pseudorandom-number rule, and compare both against Rule 110's intermediate, structured-but-unpredictable texture. The visual difference between Class 2, 3, and 4 behaviour becomes obvious within a few dozen rows.