Drag to orbit · scroll to zoom
This is Conway's Game of Life, but built in a cube instead of on a flat sheet of graph paper.
Imagine a huge 3D grid — like a Rubik's cube with 60 blocks along each edge. Every little box in that grid is a cell, and each cell is either alive or empty. Nothing here is designed or animated by hand. The whole thing runs on one tiny rule that gets applied to every cell at the same time, over and over:
That's it. Repeat a few hundred times and the cube starts doing things nobody programmed: blobs that pulse and breathe, crystals that grow in straight lines, structures that crawl across the grid and rebuild themselves, and patterns that spread until they fill everything.
The Rule box uses three parts, survive / birth / states.
For example 4/4/5 means "stay alive with exactly 4 neighbours,
be born with exactly 4 neighbours, and take 5 steps to disappear once you
start dying." The states number is why dying cells linger as grey
ghosts instead of vanishing — it gives the structures a visible history.
Try the presets; small changes to these numbers produce wildly different
worlds.
This started as a final project for CS175: Computer Graphics at Harvard, written in C++ with OpenGL. This page is that program rebuilt to run in a browser with WebGL2, with a faster simulation step, instanced rendering, and controls you can actually click.
| v space | play / pause |
| m | advance one generation |
| o | reseed randomly |
| c | clear the grid |
| f | toggle flat shading |
| s | save a PNG screenshot |
| ← → | previous / next rule preset |
| r | recenter the camera |
| h ? | open this panel |
| drag | orbit · scroll or right-drag to zoom |