Game of life

Authors: Alex Tee Neng Heng, David G. Green

The Game of Life, invented by the mathematician John Conway, is a simple cellular automaton that embodies elementary life-like features. Cells are either alive (red) or dead (white). Living cells die from loneliness (if they have less than 2 living neighbours) or overcrowding (4 or more living neighbours). If a dead cell has exactly 3 living neighbours, then a birth occurs and it becomes alive.

Many interesting patterns have been found; some are demonstrated here. The Game of Life exhibits many life-like behaviours. For instance, starting from a random configuration, regular patterns of fixed, and cycling elements can quickly emerge.

How to use the simulation

You need to have Java version 1.5 installed for your browser in order to run the simulation applet.

There are 3 options to start the simulation

  • Custom pattern: Click with the mouse onto the white model grid. This introduces new live cells (red). You can draw any pattern you like using the mouse in this manner.
  • Pre-set pattern: Choose an option from the drop-down menu Pattern. This will reset the grid and introduce a pre-set pattern known to demonstrate interesting behaviour. There are 6 pre-set patterns available: Cross, Sliders, Tumbler, Glider Gun, Fisher and Spinner.
  • Random pattern: Prom the drop-down menu Pattern, select the option Random. Then, set the coverage as a proportion of the model grid to be covered by live cells. When you start the simulation the the specified proportion of the grid will be randomly covered by live cells.

One you have created your initial pattern, click the Start button to begin the simulation. You can control the simulation using the following options:

  • Use the Start, Pause and Reset buttons on the top panel to control the flow of the simulation.
  • Use the Zoom-In and Zoom-Out buttons to focus on interesting areas.
  • Use the + and buttons to control the speed of the simulation or use the Step button to watch the simulation step by step.

The drop-down list “Pattern” provides a list of known initial grid configurations that lead to interesting behaviour. Selecting a configuration from the pattern list stops the running simulation and re-initialises the grid.


  • Try some of the predefined patterns and see how the simulation behaves.
  • Try drawing different types of predefined patterns with the mouse and combine them in a single simulation. How do they interact?
  • Try to device your own patterns that exhibit interesting behaviour, such as moving, growing, etc.


A very interesting aspect of the Game of Life is that is has been proven computationally universal. This means that any program that can be executed by a computer can also be executed by a Game of Life simulation. In order to do this, the input can be encoded in form of certain live cell patterns. The output can be read from the patterns that occur in the “output area” of the cell grid. Although this is probably not the most efficient method for most computations, this result shows how local interactions of simple entities (here – cells) can lead the emergence of very advanced behaviours.

Links and References

Demo screenshot