gizmobench

Game of Life Lab

Explore Conway’s Game of Life on a grid you can paint, erase and step through one generation at a time. Start with the glider example, stamp a block or blinker, choose finite or wrapped edges, and watch the population change. Import an RLE pattern or save a project to resume your own experiment.

Generation0
Population5
Grid40 × 30

Finite edges · B3/S23 · Target 8 generations / second

Use the coordinate controls to edit cells if the canvas is not available.
Simulation settings

B3/S23: a dead cell is born with exactly three live neighbors; a live cell survives with two or three. Speed is a target and may be lower on large grids. Pause to edit.

Drawing and keyboard help

Click or drag to draw; stamps apply once per click. Keyboard: focus the canvas, move the orange cursor with arrow keys, then press Space or Enter to apply the selected tool. Coordinates below offer precise access to every cell. Scroll the frame for larger grids.

Cell 19, 14: dead.

Resize and clear grid

Resizing replaces the current grid with dead cells and resets the generation count. Export a project first to keep your work.

Import RLE or project

Import replaces the current grid and pauses simulation. RLE preserves its declared dimensions and starts at generation zero with your current boundary. Projects also restore boundary and generation. Limit: 1 MiB.

Pause to export the exact displayed generation. PNG exports cell colors without the cursor or grid lines. Editing cells starts a new generation-zero grid.

Exact cellular rules for the chosen boundary; no imported third-party pattern collection. All processing stays in this browser. Grids are not automatically saved; download a project before leaving or reloading.

Common questions

What are the Game of Life rules?
This lab uses B3/S23. A dead cell becomes alive with exactly three live neighbors. A live cell survives with two or three live neighbors and otherwise dies. All cells update simultaneously, counting eight neighboring positions.
What is the difference between finite and wrapped boundaries?
Finite mode treats positions outside the grid as dead. Wrapped mode connects opposite edges to form a torus. On grids narrower or shorter than three cells, multiple neighboring positions may map to the same cell; each position is counted separately.
How can I draw patterns without a mouse?
Focus the canvas, move the orange cursor with the arrow keys, and press Space or Enter to apply the selected paint, erase or stamp tool. You can also enter a one-based row and column and choose Apply tool at cursor. Pause the simulation before editing.
Which patterns are included?
The lab includes small, directly specified block, blinker and glider arrangements. A block remains fixed, a blinker repeats after two generations, and a glider shifts diagonally after four generations when its surroundings are empty and boundaries do not interfere. No third-party pattern collection is bundled.
What RLE files can I import?
Use a standard x/y header with optional B3/S23 or 23/3 rule, followed by b, o, dollar-sign row breaks and an exclamation-mark terminator. Runs use positive integer counts. Comment lines are ignored, including position metadata. Other rules, malformed runs and cells outside the declared dimensions are rejected. Maximum dimensions are 512 by 512 and the file limit is 1 MiB.
What do the export formats preserve?
RLE preserves the current live cells and full grid dimensions, but not boundary or generation. A JSON project preserves those settings too and can be imported here. PNG captures cell colors without grid lines or the cursor. Pause before exporting so the file matches the displayed generation.
Does the simulation save itself or run at an exact speed?
No automatic save is made. Download a project before leaving or reloading. Simulation runs in a local background worker; speed is a target and can be lower on large grids. Canvas dimensions are capped at 2,048 pixels per side, reducing cell size when necessary. Editing, resizing or changing the boundary resets the generation count.

Exact cellular rules for the chosen boundary; no imported third-party pattern collection.