PLife Home Page

What is this?

PLife is a lightweight implementation of Conway's Game of Life and related cellular automata.
Those who are new to the Game of Life can refer to Life Page for an introduction into the subject.

Project links

PLife project page on
PLife download page (the latest release is 0.4.1).


The package includes two separate tools for viewing and creating Life patterns:


Although reasonably fast, the algorithm used in PLife is too straightforward to beat the speed of Life1.06 or Life32 (see the software section of Alan Hensel's Life Page).

As for highly non-straightforward algorithms, one can get intrigued with the smart "HashLife" approach to evolving Life patterns, which relies on regularity in pattern behaviour to achieve faster-than-linear speed (so that finding N-th generation takes less than O(N) time!). Simply speaking, it recognizes parts of the universe it has seen before and does not handle them twice. Also a nice thing about HashLife is that its universe representation allows for universes of almost unlimited size. HashLife is very efficient on huge and fairly regular patterns like metacatacryst, but in some sense it complements traditional "honest" ways of running Life, as even a small pattern without regularity can be fatal for it.
HashLife implementations include hashlife-1.5 by David Ingalls Bell and a thoroughly documented hlife by Tom Rokicki.


You may want to explore the afind spaceship-searching program: (last modified 23 Mar 2004).
It is somewhat similar to gfind by David Eppstein (gfind.c, see detailed discussion in his article), but, unlike gfind, it features
(optionally enabled) floating rows, ability to search for knightships and exhaustive checking during double look-ahead.
An overview of many Life Search programs can be found here.

One of afind's results is this incomplete period 6 knightship, which is probably of no use, however:

partial-knightship.lif screenshot

There is also another near-knightship, which has a distinct leading edge and whose 6-th generation
differs only in 3 cells (all in 2 trailing rows) from its translated copy (3-cells-away.lif):

#C This pattern is only "3 cells away" from being a knightship.
#C Its 6-th generation differs in 3 cells from the translated initial generation.
#C Tue Mar 23 00:10:07 MSK 2004
x = 14, y = 19, rule = b3/s23

Slightly offtopic

Here is a small script for processing e-mail messages with included Life patterns (inclusions in RLE are the ones it understands best).

Ever heard of the D programming language, conceived as a successor to C and C++?


Achim Flammenkamp's page
Homepage of David Ingalls Bell
Alan Hensel's Life page
Jason Summers' Life page
Hlife by Tomas Rokicki
Gliders in "Life"-Like Cellular Automata, by David Eppstein
Nicolay Beluchenko's Homepage (in Russian)

Check the above pages for many more links! Logo

Valid HTML 4.0!

[Last modified: 29 May 2004]