Game of Life

cellular automaton
Side project · 2026

Conway's Game of Life, running at up to 60 generations a second on a wrap-around canvas you can paint into and watch evolve.

Game of Life screenshot
Demo · a glider gun spraying across the grid

Conway's Game of Life is four lines of rules that produce endless behavior, and the appeal is almost entirely in watching it move. A lot of versions I tried slowed down past a small grid, or didn't expose the controls that make it worth poking at: pausing mid-pattern, stepping one generation at a time, or dropping in a glider gun to see where it goes.

I wanted one that stayed smooth at a full screen of cells and let me drive it like an instrument. So the simulation runs on a flat typed array with a second buffer it swaps each tick, the canvas redraws every frame, and everything (speed, grid size, patterns, painting) is wired to controls and keyboard shortcuts so you can stay in the loop while it runs.

How it works

Stack

Vite · React · TypeScript · Tailwind, rendering to a raw Canvas. The simulation is plain typed-array logic kept out of React's render path, so the component tree only handles controls while the grid steps and draws on its own loop.

← all projects