Emulating Life[draft]
In Conway’s Game of Life, you initialise a grid of cells, setting some alive and others dead. You then apply a set of update rules to each cell to decide whether it will be alive or dead in the next generation. Figure 1 shows this in action. An initial pattern known as pufferfish is set. Hit play, and you’ll see the update rules animate the pattern across the grid.
The update rules are surprisingly simple. Each cell counts how many of the eight surrounding cells are alive.1 If the cell is currently dead, then it comes alive only if exactly three of its neighbours are alive. If the cell is currently alive, it will stay alive if two or three of its neighbours are alive, and die otherwise. Figure 2 shows these rules being applied to one highlighted cell using a pattern called toad, that oscillates between two states.
This set of rules generates a surprisingly rich set of phenomena. TODO: Below is
TODO: maybe mention Dennett etc.
AND as an Emulator
Conway’s Life is a wonderful demonstration of how simple local rules can produce global patterns.
Conway’s Life suggests a simple way to construct a simple multicellular model.
In a cellular automaton like Conway’s life,
A cellular automaton is a grid of cells, where each cell can be in one of a finite number of states. TODO: Better definition, or reverse order. Conway first.
TODO: A key feature is the threshold rules. They measure and detect the surrounding cells in the more neighborhood.
The update is carried out by the small gene regulatory network below. Its three
Moore receptors report whether at least two, three, or four neighbouring cells
are alive; the memory element carries the selected cell’s present state into the
update, and φ is the state displayed in the grid. The replay and network share
one timeline, so stepping the recording updates both views together. Click any
cell to move the Moore neighbourhood and inspect that cell’s network state.
| TypeRegister | Variable | Annotation | |
|---|---|---|---|
| Stimulus | A | seed | Initial live-cell pattern |
| B | |φ|≥2 | Receptor active when at least two neighbours are alive | |
| C | |φ|≥3 | Receptor active when at least three neighbours are alive | |
| D | |φ|≥4 | Receptor active when at least four neighbours are alive | |
| Memory | E | μ | Memory of each cell's present state |
| Response | F | φ | Live-cell state sent to neighbouring cells and displayed in the grid |
A sheet of cells
simple, identical, local rules, running in parallel across a sheet, can generate order far richer than the rules appear to contain.
The rules of Life are usually handed down as a special little algorithm, purpose-built for the job. But we don’t need a special algorithm. It turns out that one of our gene networks, dropped into every cell of the grid, reproduces Conway’s Game of Life exactly. Because of the way memory threads through the network, you have to read the pattern off every second time step to get a perfect replica — but that is bookkeeping, not substance.)
Conway’s Life is one set of rules, studied for decades. Our network doesn’t merely imitate it; it contains it as a single point in a vast space of possible rules it could just as easily run. Life is one doorway.
From here on, a network is no longer the thing we watch and select. It becomes the local rule — the same network sitting inside every cell, each copy reading its neighbours and updating in step.
And this forces a change in where we point our attention. Before, we selected a network for the output it produced. Now the output of any single cell hardly matters. What we care about, what we breed for, is the pattern spread across the whole sheet. The individual network drops quietly into the machinery, doing its small local job, while both the thing we reward and the thing we stimulate move up a level, into the collective and the spatial. It is the same idea we had at the single-cell stage, lifted one rung up the ladder.
Footnotes
This eight surrounding cells are called the Moore neighbourhood of a cell. ↩︎