No One Drew the Glider

A minimodule on cellular automata and emergence.

Four Rules

A cell is alive or dead. Count its eight live neighbors. From that one number, four rules decide what happens next.

  • Underpopulation. A live cell with fewer than two live neighbors dies.
  • Survival. A live cell with two or three live neighbors stays alive.
  • Overcrowding. A live cell with more than three live neighbors dies.
  • Birth. A dead cell with exactly three live neighbors comes to life.

Written tighter: a cell is born when its neighbor count is three, and survives when the count is two or three.

$$\text{born if } n = 3 \qquad \text{survive if } n \in \{2, 3\}$$

John Conway published this in 1970 and called it a game with no players and no winner. You place a few cells, then step back. Nothing in those four lines mentions a glider, a gun, or motion of any kind. Run it anyway and watch what walks out.


Run It Yourself

Click and drag on the grid to draw cells. Press play, or drop in one of the starters and let it go. The edges wrap around, so anything that leaves the right side comes back on the left.

Starters
Rules
Which of the four rules contains the instruction that makes a glider move across the grid?

The Starters

The blinker just blinks, three cells flipping back and forth forever. The glider is five cells that walk diagonally across the grid and never stop. The Gosper gun is stranger: a fixed contraption that manufactures gliders out of empty space, one after another, with no end.

Then there is the R-pentomino. Five cells. It thrashes for over a thousand generations, throwing off gliders and debris, before it finally settles. Nobody can look at those five cells and tell you that in advance. The only way to find out what a starting pattern does is to run it. That is the catch with emergence. The behavior is not sitting in the rules where you can read it off. It is in what the rules do once they start, and they do not announce it beforehand.


Three Other Universes

Change one number in the rules and you get a different world. HighLife adds a single birth condition to Conway: born on three neighbors, or six. That one extra clause is enough to produce a replicator, a small pattern that copies itself across the grid like a crystal that will not stop.

Seeds is harsher. Every living cell dies every single step, no exceptions, and a dead cell is born on exactly two neighbors. A handful of cells should vanish. Instead it explodes into a flickering bloom that never settles. Maze goes the other way: cells survive almost no matter how crowded they get. Drop in random noise and it freezes into long winding corridors, a maze nobody drew. Switch between all three with the Rules buttons above and watch each one take over.


Why This Matters

Four rules, and no author of the glider. The glider is real, it moves, people have built working computers out of nothing but gliders, and yet no line of the rules contains it. The rules never state it. It follows from them. This is what emergence means: behavior the parts do not carry and nobody put in by hand.

A neural network is the same bargain at a larger scale. Simple units, a simple rule for nudging weights, run a few billion times. What comes out can translate languages and write code, and nobody wrote a rule for translating or coding. The designers set the local rules and let them run, the same way you just did.

For the curious: the rule in B/S notation

Every rule on this page is written as B then S: which neighbor counts cause a birth, and which counts let a live cell survive. Conway is B3/S23. Born on 3, survives on 2 or 3.

HighLife is B36/S23, one extra birth count. Seeds is B2/S, where the empty survive list means nothing ever lives past one step. Maze is B3/S12345. Four short codes, four worlds that look nothing alike.

Source Code

This page lives here:

https://github.com/i-yam/passt/tree/main/modules/game_of_life