The Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970, and made public through an article by Gardner [1] in Scientific American. As noted by Rendell, his book, “… presents a proof of universal computation in the Game of Life cellular automaton by using a Turing machine construction. It provides an introduction including background information and an extended review of the literature for Turing Machines, Counter Machines and the relevant patterns in Conway’s Game of Life so that the subject matter is accessible to non specialists.”

A cellular automaton is one of the simplest mathematical models that has properties of space and time; and—they’re loads of fun. Anybody who has tinkered with cellular automata in general, and with the Game of Life in particular (moi, for example) will attest to the fascination one beholds, and the smiles that appear as you watch those wondrous orchestrated movements on the screen (try it: http://pmav.eu/stuff/javascript-game-of-life-v3.1.1/ or just Google “Game of Life online”).

After a brief introduction, Rendell jumps without much ado into an explanation of the basic workings of the Game of Life cellular automaton, with examples of several basic patterns clearly demonstrated diagrammatically (see an example in Fig. 1). I must tip my hat to the author—he did not skimp on illustrations, of which the book contains 141. This is a major boon in my book (and, more importantly, in Rendell’s book), given how important visualization is to understanding.

Fig. 1
figure 1

Game of Life example (taken from [3]), which begins at time step 0 with two patterns: a stationary square, known as a “block”, and a “moving” creature, known as a “glider”. The latter displaces itself one square diagonally every four time steps. Upon meeting other creatures, such as the block, both are subject to this simple universe’s basic laws, which cause their mutual annihilation in this case

Turing machines and the Turing-equivalent counter machines then follow, after which the stage is set for exploring the main issue: universality of the Game of Life. But first the author takes us through an interesting tour of previous work, where we see how adders, memory, simple register (counter) machines, and other beasties were obtained through the years. Rendell then moves on to describe a Game of Life Turing machine, which is followed by the universal Turing machine, the one built by the author from Game of Life patterns. The implementation is facilitated by using Golly—an open source, cross-platform application for exploring Conway’s Game of Life (http://golly.sourceforge.net/)—which helps initialise the Game of Life board by assembling several patterns together. Rendell concludes this construction by noting that, “The universal Turing machine is close to the optimum as it does not require much tape and therefore the pattern has a relatively small area …”.

Rendell then discusses minimization of the program to multiply two unary (rather than binary) coded numbers on his Turing machine so as to minimize the size of the Game of Life pattern needed to run it. Following this, he tackles the question of inexhaustible storage required for true universal behaviour, by building a pattern that adds blank stack cells. The book ends with a short demonstration of a universal counter machine and of Stephen Wolfram’s smallest known universal Turing machine.

I would not recommend this book as light-hearted, bedtime reading. It describes in rigorous detail the design of a complex machine embedded within a simplified universe. Though experience with cellular automata is not a must for one to profit from this book, I would say it is a definite boon.

As I mentioned above, the book contains numerous detailed illustrations, suggesting to me that the book could be read in two ways. Obviously, an avid reader who is a Game of Life enthusiast to the core will cherish every word. However, less detail-oriented readers may also enjoy this manuscript, focusing more on the tale told by the illustrations and their accompanying captions. These in themselves provide much insight into the fascinating universe of cellular automata—and into the amazing feats they can accomplish.

The book is not about evolution, though one might read it with an evolutionary frame of mind. Indeed, many a work has been published on using evolution within the domain of cellular automata [2]. One might also perceive Rendell’s book as describing the building of a complex machine from basic components, in which case hardware specialists might find the work interesting. There is also a historical perspective embedded within these pages, that many a grad student could soak in with pleasure.

Perhaps it would be fitting to end with a quote from a major contributor to the field of cellular automata, the aforementioned Stephen Wolfram, who said, “It’s always seemed like a big mystery how nature, seemingly so effortlessly, manages to produce so much that seems to us so complex. Well, I think we found its secret. It’s just sampling what’s out there in the computational universe.”