GtkLife project is a fast, featureful, open-source Conway's Life program for *nix.
Conway's Life is a form of artificial life (specifically, a cellular automaton)--one of the simplest there is. There are only a few rules:
1. The game is played on a rectangular grid, where each cell is either alive or dead.
2. Each generation is computed from the state of the previous generation, using rules 3 and 4:
3. A live cell with 2 or 3 live neighbors (adjacent cells, including diagonals) lives on. Otherwise it dies.
4. A dead cell with exactly 3 live neighbors comes to life.
That's all there is to it. Yet fascinating behavior arises from these simple rules. Gliders, for instance.
It turns out, if you take the little five-cell shape to the left and apply the rules of Life to it, it glides diagonally across the grid. That is, it transforms in such a way that it reproduces itself at an offset every four generations. No one invented gliders. They just happen. In fact, draw some random cells in a Life program and hit "start," and it's a good chance you'll see gliders form spontaneously. This is just the beginning: Conway's Life has a whole menagerie of recurring patterns.
You can play Conway's Life with nothing more than a pencil and a sheet of graph paper, but it's a lot faster to use a computer. That's where GtkLife comes in. It is capable of handling complex patterns with ease: the universe holds 1 million x 1 million cells, and the algorithm for computing generations is highly optimized. Speed is comparable to the venerable XLife, and in some cases faster. However, GtkLife also has a modern and friendly user interface.
To your right is a pattern known as "Max," whom I've chosen as the GtkLife mascot :-) On a similar note, the GtkLife icon is a rather pretty period-3 oscillator called a pulsar.
The Life Pattern Archive is included with the source, and after installation, you can browse through it from an optional sidebar on the main window. Each pattern has a description (some brief, some page-long) which you can read by clicking the text icon on the toolbar. Another pattern collection, JSLife, is now included and can be selected via File->Change Pattern Collection.
These collections contain all sorts of esoteric and highly engineered patterns: fleets of ships, glider guns, complex oscillators, patterns that construct other patterns, even a prime number sieve. Have fun with them, but also see what you can come up with on your own. Much of the fun of Life comes in watching what arises from simple beginnings.
Thanks are due to Alan Hensel and Jason Summers for allowing me to include their patterns with GtkLife. Thanks also to Alan for his Life applet: I got a lot of programming inspiration by studying Alan's Java code and documentation.
GtkLife is free and open-source, released under the GNU GPL. It is based on Gtk+ 1.2, but does not require Gnome.
What's New in This Release:
· A number of enhancements have been made to the GtkLife GUI, and Gtk+ 2 support has been greatly improved.
· GtkLife can now be installed using the standard ./configure, make, make install combination instead of editing the Makefile.