Five occupied squares can travel without any individual square moving.
The experiment begins with three tiny arrangements on an otherwise empty grid: a block, a blinker and a glider. Every square follows the same update rule, using only its eight neighbours. One arrangement stays still, one alternates, and one returns to its original shape in a shifted location. The variety comes from the arrangement of cells, not from giving different cells different instructions.
The rule stays local. The pattern can travel.
A neighbourhood decides the next state
Each square is either alive or dead. Its neighbourhood includes the eight surrounding squares, diagonals included. A live cell with fewer than two live neighbours dies. With two or three it survives. With more than three it dies. A dead cell with exactly three live neighbours becomes alive. All other dead cells remain dead.
These familiar birth and survival names are metaphors for binary states. The model contains no organisms, intentions or resources. Its compact rule is also written B3/S23: birth with three neighbours, survival with two or three. The labels are convenient, but the actual operation is simply a count followed by a decision.
Read the old grid before writing the new one
Every cell’s next state must be calculated from the same old generation. Updating one square and immediately letting its neighbour read that new value would change the dynamics. The script therefore collects neighbour counts from the current live-cell set, then constructs a separate set for the next generation. The whole grid advances together.
The implementation uses integer coordinates on an unbounded sparse plane. It stores live cells and inspects locations adjacent to them, where births could occur. There is no wraparound edge or fixed rectangle that kills a pattern when it reaches the picture boundary. The figures crop a viewing window; that window is not the world’s boundary.
Two small arrangements are easy to reason through
A filled two-by-two block remains unchanged after a step. Each live cell has three live neighbours, and no neighbouring dead cell has exactly three. The script checks equality of the entire cell set. Because the update is deterministic, repeating the same state gives the same next state, so this is a still life rather than a slow-moving object.
A horizontal row of three cells behaves differently. Its centre survives, its ends die, and two new cells appear above and below the centre. The resulting vertical row turns horizontal on the next step. The test confirms a period of two and verifies that the intermediate state is different. Equal population size alone would not establish an oscillator.

The glider is replaced, not transported
After four updates, the five-cell glider has the same shape shifted by one cell in x and one in y. In the figure’s coordinate convention, that is down and right. Every displayed generation contains five live cells, but they are not the same five identities moving between squares. Cells turn on and off at fixed coordinates.
The shifted set is compared exactly with a translated copy of the starting set. That is stronger evidence of this particular movement than merely noticing that the pictures look similar. It also illustrates why a pattern can be treated as an object at one level even though its constituent states are continuously replaced at another.

A demonstration has a boundary too
These three patterns establish three behaviours under one specific rule. They do not describe every starting configuration. Some arrangements disappear, some interact, and others can produce long, intricate histories. Changing the birth rule, neighbourhood or update schedule would create another automaton, even if the screen still looked like a field of squares.
The appeal is the gap between a rule that fits in a sentence and a history that can be difficult to anticipate. That gap does not require hidden randomness: this experiment uses none. Once the initial cells and rule are fixed, the future is determined. Surprise belongs to the observer who has not yet worked through the consequences.
Further reading
Golly: Life rules and Moore neighbourhood ↗Martin Gardner: the original Game of Life column ↗Original documentation and useful background.
