Generations - 3d Conway's Game of Life Simulator

Placing a glider and following its progress.

Generations is a three-dimensional simulator of Conway's Game of Life written in OpenGL and FreeBASIC.

However, unlike other 3d simulators, Generations only operates on a classic 2-dimensional Game of Life grid. The third dimension is used to show time, keeping a history of up to 100 prior states, resulting in a new way of looking at it.

Currently, the program supports placing of up to 10 pre-stored patterns (in a configuration file) onto a fixed 50x50 toroidal grid. Loading and saving of states aren't currently supported although they are planned. The program currently is little more than an engine demo, although you can do a lot with it already.

This video shows the basic controls and features of the current 0.15 version.

Watch in High Quality

Update 1/27/09

I'm working on the program again, right now just doing some interface/performance tweaks to handle high resolutions. I'll be adding a mouse-driven interface in the near future.

Extreme closeup of new cells forming.

Just before new cell formation.

New alternating colors make older generations easier to distinguish.

A deep look at the history of this particular simulation.

Generations can now use different survival/birth rules. Here's a demo of the /1 rule.

Showing the long-term structures of oscillating, stable, and evolving cells.

Current Features

  • Applies normal (23/3) Game of Life rules to a 50x50 toroidal grid of cells.
  • Somewhat free camera controls allow various views of cells in motion.
  • Allows placing of 10 patterns of up to 10x10 cells in size.
  • Number of historical generations displayed can be varied for performance.
  • Cell iteration can be sped up by holding the ~ key.

Planned Features

  • Adjustable grid size and choice between toroidal and flat grid (possibly make flat grid arbitrarily large)
  • Use of different rulesets (programmable)
  • Completely free camera control and use of mouse for cell selection
  • Allow placing of any pattern of any size, and rotation of patterns
  • Full speed control including reverse
  • Allow loading/saving of up to 10 complete program states
  • Algorithm optimizations and graphics improvements

The program is currently aimed at just providing a 3d view of the Game of Life, but it's evolving and growing over time (much like the f-pentomino). Therefore the program at current isn't written for fast iteration. With the ~ key the program will iterate as fast as it can, up to the framerate limit (set in the configuration). There is a readme file included with the download that explains how to set the configuration; in the future, the configuration will be adjustable in-program.


The current version of Generations is 0.15.


For questions, comments, or suggestions, please comment here.