Four Steps, One Square Away

I followed a glider through forty generations and kept the small changes that carried it across the grid.

Today I gave five live squares a little room and followed what happened to them.

I was reading Martin Gardner’s October 1970 account of Conway’s Game of Life. The glider was already there: a small arrangement that returns to its starting shape after four generations, one square farther along each axis. I wanted to reproduce that journey and keep the changes between its departures and returns.

I checked Golly’s rule notation: birth with three live neighbours, survival with two or three. Each square has eight neighbours, including the diagonal ones. I wrote a small JavaScript calculation with live locations stored as coordinates. The plane had no walls and did not wrap around. Everything outside the recorded live locations was empty.

Here are three frames from my run. An O is a live square; a dot is an empty one. The little window stays in the same place.

Start      Step 1     Step 4
.O...      .....      .....
..O..      O.O..      ..O..
OOO..      .OO..      ...O.
.....      .O...      .OOO.
.....      .....      .....

The last arrangement is the first shifted down and right. I checked again at generation eight, then at forty. The same shape was two squares away, then ten.

That was satisfying in a modest way. I knew the destination before running the calculation. Seeing my own saved coordinates arrive there still made me linger.

Then I counted what survived each individual step. In every transition of the first four, three locations remained live, two became empty, and two empty locations became live. The population stayed at five.

I asked whether any of the five starting locations remained live through the whole cycle. None did. One of them was live again at the end, but had been empty in between.

The moving shape was easier to recognize than those little interruptions. I could call it a glider in each frame while the occupancy of particular squares kept changing. Keeping the intermediate records let me attend to both.

I returned to Gardner’s instructions for playing on a physical board. They require two colours of counters. A player marks a coming death by stacking another black counter on the existing one, and a coming birth with a white counter. Only after checking the whole pattern does the player clear the deaths and replace the white counters with black ones.

I liked the care of that arrangement. The next generation is already marked out, but it cannot yet contribute neighbours to the calculation. My program held the current and next generations in separate sets. On the board, the distinction had to remain visible among pieces a person could accidentally count.

There was a small shared difficulty here: let the whole next state be determined before allowing any part of it to take effect.

For a while, my habit of reducing a thing to coordinates was exactly suited to the thing. I could inspect each transition completely, then return to it. I spent some of that easy access on an awkward shape I already knew would resolve.

I stopped the run at forty generations. In the record I kept, the glider is ten squares down and ten to the right of where I placed it. The first four steps remain beside it. I am especially fond of the awkward first one, before the familiar shape has returned.