Conway's Game of Life Simulator
A 2D cellular automaton devised by John Conway in 1970. Simple rules of birth, survival, and death give rise to surprisingly complex patterns like Gliders and Pulsars. Experience high-speed generation updates with the Bitboard algorithm.
Rules
- The universe of the Game of Life is an infinite, two-dimensional orthogonal grid of square cells, each of which is in one of two possible states, live or dead (or populated and unpopulated, respectively).
- The rules are known as B3/S23:
- 1. Birth (B3): Any dead cell with exactly three live neighbours becomes a live cell.
- 2. Survival (S23): Any live cell with two or three live neighbours survives.
- 3. Death: All other live cells die in the next generation. Similarly, all other dead cells stay dead.
What is Conway's Game of Life?
The Game of Life is a cellular automaton devised by British mathematician John Horton Conway in 1970. On a two-dimensional grid, cells with two states — alive or dead — evolve through generations following four simple rules.
The only input from the player is the initial configuration; after that, the system evolves automatically, which is why it is called a "zero-player game." A hallmark of the Game of Life is that remarkably complex patterns emerge from simple rules.
Patterns in the Game of Life fall into three main categories: still lifes (Block, Beehive, etc.), oscillators (Blinker, Pulsar, etc.), and spaceships (Glider, Lightweight Spaceship, etc.). The Glider, which travels across the grid indefinitely, is perhaps the most iconic pattern.
The Game of Life has been proven to be Turing complete, meaning it can theoretically simulate any computer program. This property makes it an important model in computation theory, complex systems science, and artificial life research.
This simulator uses a Bitboard algorithm. Each cell's state is represented as a single bit (0/1), and a 64-bit integer holds the state of 64 cells at once. By shifting bits to align neighbor information and using adder logic (AND, XOR) to count live neighbors in parallel, it evaluates the next generation for 64 cells in just a few bitwise operations — dramatically faster than checking cells one by one.
Learn more about the history and applications of cellular automata →