Conwayâ€™s Game of Life has fascinated computer scientists for decades. Even though its rules are ridiculously simple, Conwayâ€™s universe gives rise to a variety of gliders, spaceships, oscillators, glider guns, and other forms of â€œlifeâ€. Self-printing programs are similarly curious, and – rather surprisingly – have an important place in the theory of computation.

What happens when you combine the two? You are about to find out, but one thing is for sure: the geekiness factor should be pretty high.

I wrote a little C# program that contains a Game-of-Life grid. The program advances the game grid to the next generation and prints out a copy of itself, with the grid updated. You can take the output, compile it with a C# compiler, run it, and youâ€™ll get the next generation of the game. You can iterate the process, or change the initial grid state manually

When I first saw the title of this post I thought this might be a 3D printing thing that someone did with our Game of Life kit before I saw the C# part, but it’s just as cool!