Sections

  blife
  blog

Other

  email: brad@stackpointer.org
  GPG Public Key: brad-public-ascii.gpg

blife is an implementation of Conway's Game of Life written in C, and OpenGL. From the Wikipedia: "The Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is the best-known example of a cellular automaton. The "game" is actually a zero-player game, meaning that its evolution is determined by its initial state, needing no input from human players. One interacts with the Game of Life by creating an initial configuration and observing how it evolves. A variant exists where two players compete."

Features

Supported platforms

blife supports most platforms, including Win32, Linux, and OS X. If your platform is POSIX compliant, and supports OpenGL, chances are very good that you will be able to compile and run it. You'll also need to install the OpenGL Utility Library (GLUT). I plan on replacing GLUT with my own code, which will help clean up blife, since I currently have to use global variables since many GLUT functions do not allow you to pass paramaters to callback functions.

Configuration:

When you first run blife, the program will generate a configuration file for you to edit. It comes with reasonable values, but depending on what you wish to do, you'll need to reconfigure the simulator. The defaults are as follows:

Width and Height set the resolution of the window. Cell Size specifies how large in pixels each cell ought to be. Speed is the interval in milliseconds between each generation. Between 10-20ms is considered realtime, and the simulation will appear very smooth. I like to set this to 120ms if I'm expirementing with a pattern. Finally CPUs is the number of CPU's to utilize in the situation (not currently implemented).

I find it fascinating to set the resolution to your fullscreen, set cell size to 1, and set speed to 0, while I run a random seed. Groups of cells appear to churn, while other stabilize and seem to form communities. Occasionally one will grow too large and run into another, and both will begin to decay.

Downloads

The latest stable release (0.2.4):

You'll also need to install GLUT. You can download the Windows version here.

Roadmap

1 TODO Refactor code.

2 TODO Implement threading.

3 DONE Use .bliferc->UNIX, bliferc->WIndows

CLOSED: 2007-12-03 Mon 11:33

4 DONE Modify number of cells to be computed.

CLOSED: 2007-11-28 Wed 19:56

5 DONE Implement keyboard controls

CLOSED: 2007-11-28 Wed 19:54

6 DONE Implement pattern design via mouse

CLOSED: 2007-11-28 Wed 19:54

7 DONE Implement pattern load/save.

This document last modified Wednesday, 30-Jan-2008 22:32:20 EET