Game of Life Simulator

Draw with the mouse, drop in a pattern, or fill the grid at random and press play. The rule is editable, so the same grid runs Conway’s B3/S23, HighLife, Seeds or anything else you type.

20/s
38%

Drag on the grid to draw · hold Shift to erase · Space plays and pauses · → advances one generation.

Generation0
Population0
Density0.000
Grid—

The trace above plots live density against generation. The shaded band is 0.029–0.037, the range a random Conway soup settles into in a run of this experiment. Fill the grid at 12% or at 70% and both curves come down into the same band.

Patterns to drop in

Pick one, then click the grid where you want it. These are the objects people usually come looking for:

The rule string

Conway’s Life is only one member of a family. The notation B3/S23 reads: a dead cell is born when it has exactly 3 live neighbours, and a live cell survives on 2 or 3. Every other count kills it. Type any combination of digits 0–8 into the rule box and the grid switches immediately — the current cells are kept, so you can change the physics mid-run and watch a stable pattern come apart.

RuleWhat it does
B3/S23Conway’s Life. Sparse, long-lived, supports gliders and universal computation.
B36/S23HighLife. Same as Conway plus birth on 6, which is enough to produce a self-replicating object.
B2/SSeeds. Nothing ever survives a generation; the whole pattern is pure explosion.
B3678/S34678Day & Night. Symmetric under swapping live and dead, so it grows blobs with structured coastlines.
B1357/S1357Replicator. Every pattern copies itself, fractally, forever.
B3/S012345678Life without Death. Cells never die, so it fills space like a crystal or a maze.

What the density trace shows

Fill the grid at random and the population crashes almost immediately, then keeps sagging for a very long time. That second phase is the interesting one. Running Conway’s rule on a 384×384 torus from 18 different starting densities gives a result that surprises most people: starting anywhere between 12% and 70% — a six-fold range — lands in the same place, a density of 0.033 to 0.038 after 2,000 generations.

What the starting density changes is not the destination but the time taken to get there. Starting at 37.5% takes the longest to calm down — about 307 generations before the density first drops below twice its final value — while very sparse and very dense soups are decided within a generation or two. Try it: fill at 5%, then at 38%, then at 90%, and watch the trace.

“Settled” is also an approximation. Left running to 10,000 generations the density is still falling — 0.0927 at 100, 0.0431 at 1,000, 0.0366 at 2,000, 0.0291 at 10,000 — roughly a fixed decrease per tenfold increase in generation. The ash is never quite finished: a stray glider eventually crashes into a still life and knocks a bit more out of it.

The grid wraps

By default the edges are joined, so the grid is a torus and a glider that leaves the right side comes back on the left. Untick Wrap edges to treat everything outside as permanently dead, which is what you want for infinite-growth patterns you would rather not have collide with themselves.

What will you try next?

Share this tool

Part of Shake AI Lab — interactive experiments in mathematics and machine learning. · More tools · 日本語の解説記事