What is Conway’s Game of Life?
Conway’s Game of Life is a zero-player cellular automaton created in 1970 by British mathematician John Horton Conway. The simulation unfolds on a two-dimensional grid of square cells, each of which is in one of two states: live or dead. Every cell interacts with its eight horizontal, vertical, and diagonal neighbours.
The Four Rules of Life (Conway's B3/S23)
At each discrete time step, the following transitions occur across the entire grid simultaneously:
- Underpopulation (< 2 live neighbours): Any live cell with fewer than two live neighbours dies, as if by underpopulation.
- Survival (2 or 3 live neighbours): Any live cell with two or three live neighbours survives to the next generation.
- Overpopulation (> 3 live neighbours): Any live cell with more than three live neighbours dies, as if by overcrowding.
- Reproduction (Exactly 3 live neighbours): Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
Mathematical Significance & Turing Completeness
Despite having only four simple rules, the Game of Life is computationally universal (Turing complete). It can simulate logic gates, binary counters, memory registers, universal Turing machines, and even a simulation of the Game of Life inside itself.
Simulation Features & Performance
This web application runs simulation ticks off the main thread inside dedicated Web Workers with flat typed arrays (Uint8Array and Uint16Array) and double-buffering. Key features include Run Length Encoded (RLE) pattern import and export, toroidal wrap border mode, preset patterns, CRT phosphor glow effects, box selection, and URL-based pattern sharing.
Keyboard & Touch Controls
- Draw / Toggle Cell (Click / Drag): Draw alive cells or toggle cell state directly on the board.
- Play / Pause (Space): Start or pause continuous automatic simulation ticks.
- Step Forward (S): Advance the grid forward by exactly one generation.
- Randomize (R): Scatter random live cells across the current grid.
- Reset / Clear (C): Clear all alive cells and reset generation count.
- Pattern Library (P): Open the preset picker (Guns, Oscillators, Spaceships) to stamp.
- Box Select Region (B): Isolate, inspect, or export a selected rectangular region.
- Export & Share (E): Open export modal to generate RLE code or shareable URLs.
- Settings & Options (G (Glow)): Toggle CRT Glow, Wrap mode, change color theme or simulation speed.
- Guide & FAQ (? / H): Open this interactive guide, rules, gestures, and FAQ dialog.
- Cancel / Close (Esc): Cancel active stamp/selection or close open modals.
Frequently Asked Questions
- What is Conway's Game of Life?
- Conway's Game of Life is a zero-player cellular automaton created by British mathematician John Horton Conway in 1970. It takes place on a two-dimensional grid of square cells, where each cell is either alive or dead. The evolution of the universe is completely determined by its starting configuration, with no further human intervention required.
- What does the 'B3/S23' rule notation mean?
- B3/S23 is the standard cellular automaton notation for Conway's Life. 'B3' (Birth 3) means a dead cell becomes alive if it has exactly 3 living neighbours. 'S23' (Survival 2, 3) means a living cell stays alive if it has 2 or 3 living neighbours. Under all other neighbour counts, live cells die and dead cells remain dead.
- Is Conway's Game of Life Turing complete?
- Yes. The Game of Life is computationally universal. By using gliders to transmit data streams and glider guns as clocks, mathematicians and computer scientists have built logic gates (AND, OR, NOT), memory registers, counters, and even a fully functional 8-bit programmable microprocessor entirely inside the Game of Life.
- What is 'Wrap' (Toroidal Grid) mode?
- When Wrap mode is enabled, the edges of the grid connect seamlessly: cells moving off the right edge reappear on the left, and cells traveling past the bottom emerge at the top. Topologically, this turns the flat rectangular grid into a torus (doughnut surface), preventing gliders and spaceships from getting lost off-screen.
- How does this simulation achieve smooth 60 FPS performance?
- All cellular generation computations run off the main browser thread inside a dedicated Web Worker. The engine uses contiguous typed arrays (Uint8Array and Uint16Array) with double-buffering, avoiding garbage collection pauses and ensuring high framerates even on large grids and mobile devices.
- What is RLE format and how do I import/export patterns?
- Run Length Encoded (RLE) is the standard file format created for cellular automaton simulators like Golly and Life32. It compactly encodes dead ('b') and alive ('o') cell runs with numeric counts. You can paste any external RLE pattern into the 'Import' tab or use the 'Export' modal to copy your own designs as RLE code.
- Can patterns grow or travel forever?
- Yes! While some patterns quickly die or stabilize into static 'Still Lifes', spaceships like the Glider travel indefinitely across toroidal space, oscillators cycle through repeating states forever, and pattern generators like the Gosper Glider Gun produce an unending stream of new cells.