John Horton Conway, who sadly passed away earlier this year at the ripe old age of 82, was an English mathematician who focused his research on some of the more entertaining applications of math, such as game theory and number theory. But he’s most famous for inventing the Game of Life, which was first presented to the public by Martin Gardner in a 1970 issue of Scientific American. The Game of Life is a zero player game that is really more of a simulation of cellular automata than what a layperson pictures when they think of a game. Emily Velasco used an Arduino to build a device capable of running Conway’s Game of Life on old tube TVs — or any display with a composite video input.
The Game of Life is played on a grid board and starts with some “live” cells scattered throughout the grid. Each “move” of the game represents a generation, and cells follow a simple set of rules to continue living, die from overpopulation or underpopulation, or reproduce. Watching the Game of Life play through generation after generation is a bit like seeing a time lapse video of bacteria spreading through a petri dish, and certain patterns tend to manifest naturally. Gliders, for example, are “spaceship” patterns that travel across the board to establish new colonies. That is interesting, because the rules of the game don’t explicitly call for these kinds of patterns; they just spontaneously appear as a result of the cells following the very simple constraints they’re bound to.
Conway initially played the game with a pencil a piece of graph paper, but the straightforward rules translate extremely well to computers. In the case of Velasco’s “The Lil’ Box of Life,” that computer is an Arduino Nano board. It is running code written by Arduino Forum user PaulRB, who integrated the TVout library to output the screen through composite video. The Game of Life is deterministic, which means identical starting boards will always yield identical results. This code randomizes the starting parameters so that the game is different every time it runs. Velasco only needed to modify the Arduino code slightly to show the text you see before the game starts.
Velasco’s device is housed within a nice wood enclosure that she made herself. That is topped by a thick sheet of aluminum that she labeled using the good ol’ fashioned toner transfer method. The Arduino produces the composite video signal using a rudimentary digital-to-analog converter made using some resistors. It receives power from an 18650 battery cell through a boost converter that pushes the power to 5V, and that battery cell is recharged using a generic battery management system board. The electronics are held securely inside of the enclosure using 3D-printed mounts. No, this device doesn’t have much of a purpose — but it is the coolest way we’ve seen to play the Game of Life.