Game (Conway’s Game of Life)
A niche game about the conditions that keep a cell alive.
Why a niche game belongs on this site
The Game of Life is a niche game in the precise sense: no score, no opponent, no ending. Its audience is small, its rules fit on one line, and its rewards are observational — you watch a rule system unfold and learn to recognize the structures it permits. It is less a game of play than a game of conditions. The same five-cell seed can vanish, oscillate or travel forever, and which one happens depends entirely on the local configuration of neighbors around each cell.
Plasma cells obey the same logic. A long-lived plasma cell is not immortal in itself; it persists because it occupies a niche — a specific address in the bone marrow where stromal cells, chemokines and survival factors hold it alive. Take the same cell out of that address and it is gone within days. In the Game of Life a cell’s fate is decided the same way, by how many neighbors surround it: two or three and it survives, zero or one and it dies of isolation, four or more and it dies of crowding. Conway’s B3/S23 is, literally, a niche definition — a narrow band of local conditions that permits persistence and nothing more.
That is why the page is here. Every preset in the menu is a different niche: the same starting pattern, placed under different survival conditions, will thrive, freeze or collapse. Switching presets is the cheapest experiment we know for the question our laboratory actually asks — how much of a cell’s lifespan is written into the cell, and how much is written into where it lives.
Custom rules
Resizing: the existing pattern is kept from the top-left corner; new area starts empty.
Counters: the bottom-left of the canvas shows the generation, the live cell count and the starting cell count.
Full guide: every control is explained below the panel.
No score, no opponent, no ending — only rules and the local neighborhood of each cell.
How to use this page
There is nothing to win here. The canvas is a grid of cells, some alive and some dead; each step recomputes every cell from the state of its eight neighbors, and nothing else. What you control is the rule that decides the outcome, and the starting pattern that the rule acts on.
| Control | What it does |
|---|---|
| Start / Pause | Runs the simulation, advancing one generation every Speed milliseconds. The button label switches to Pause while it runs. Changing a rule does not affect a running simulation until you apply it — see Apply below. |
| Step | Pauses the simulation, then advances exactly one generation. Use it to watch a single pattern move or oscillate frame by frame. |
| Clicking the canvas | Switches one cell between alive and dead. Manual edits do not reset the generation counter and do not change the stored starting pattern, so an edited cell will be overwritten if you later use Jump. |
| Random | Fills the whole grid at the density chosen in the menu to its left (5%, 15% or 30%). The new grid becomes generation 0, and the starting cell count is reset to whatever it now holds. |
| Clear | Empties the grid, resets the generation to 0 and sets the starting cell count to 0. This is the cleanest way to start drawing a pattern by hand. |
| Speed | Delay between generations, from 5 ms to 500 ms. Lower is faster. Dragging it while the simulation runs restarts the loop but does not reset the generation counter. |
| Cell size | Changes the size of a cell, which in practice changes the grid resolution: the canvas is fixed at 800 × 600 pixels, so a cell size of 10 gives 80 × 60 cells and a size of 20 gives 40 × 30. Existing content is kept in the top-left corner, new area is left empty, and the generation resets to 0 with the resized grid taken as the new starting point. |
| Control | What it does |
|---|---|
| Survive (S) checkboxes | Select the neighbor counts at which a living cell survives. With 2 and 3 ticked, a living cell with two or three neighbors stays alive and dies at any other count. |
| Born (B) checkboxes | Select the neighbor counts at which a dead cell becomes alive. With only 3 ticked, a dead cell is born when exactly three of its neighbors are alive. |
| Apply | Takes the current state of all eighteen checkboxes and writes it into the rule the simulation uses, then redraws. It does not clear the canvas, does not reset the generation counter and does not change the stored starting pattern — the picture looks identical until the next step, because rules decide the next generation, not the current one. Ticked boxes have no effect until you press Apply; if you tick a box and press Start, the simulation still uses the previous rule. |
| Rule preset menu | Applies a named rule immediately on selection — no Apply needed. It rewrites the checkboxes to match, so you can see exactly which counts the preset uses, then adjust them from there. |
| Control | What it does |
|---|---|
| Place | Drops the selected pattern at the center of the canvas; there is no drag-and-drop and no click-to-position in this build. It pauses the simulation first, clears the rectangular area the pattern will occupy (erasing any cells already there), writes the pattern, then treats the result as a new generation 0 and resets the counter. To place a pattern somewhere else, clear the canvas and draw it by hand, or edit the saved JSON file. |
| Save settings | Downloads a JSON file containing the grid size, the speed, the full S and B rule sets and the entire cell grid, named with a timestamp. Nothing is stored on a server; the file is the only copy. |
| Load settings | Reads such a file back, checking that the required fields exist and that the grid dimensions match the declared size, and rejects the file with a message if they do not. The loaded grid becomes generation 0, the counter resets and the speed slider follows the file. |
| Jump | Recomputes the requested generation from the stored starting pattern, without animating the intermediate steps, and stops the simulation. The value must be a whole number of zero or greater. There is no upper limit, so a very large number will genuinely compute that many generations and the page will freeze for a moment. |
Rules and presets
Six rules are provided. Each is written as Bcounts/Scounts: the neighbor counts that create a cell, followed by the counts that keep one alive. Changing the rule is the whole experiment — the same starting pattern will thrive, freeze or vanish depending on which numbers appear here.
| Preset | What happens | When to choose it |
|---|---|---|
| Conway’s Game of Life (B3/S23) | The original rule from 1970. A living cell survives with two or three neighbors and dies of isolation or crowding otherwise; a dead cell is born with exactly three. It is balanced enough to sustain motion: gliders travel, blinkers oscillate, guns emit. | Start here. Every pattern in the menu is meant to be seen under this rule first, and it is the only rule in which the classic figures behave as their names suggest. |
| Low threshold (B2/S3) | Birth needs only two neighbors instead of three, so growth starts far more easily. Populations expand quickly and then stall into large empty regions separated by thin walls. | When you want to see how a lower birth threshold changes the character of growth: faster ignition, earlier saturation. |
| Life without Death (B3/S012345678) | Every living cell survives at any neighbor count from 0 to 8, so nothing ever dies; cells are only ever added, and only where exactly three neighbors meet. Patterns crystallize permanently and grow outward in a fixed texture. | To demonstrate growth without decay. It makes the point that “survival” is a rule, not a property of the cell. |
| HighLife (B36/S23) | Conway’s rule plus birth at six neighbors. The extra condition admits a replicator, a small figure that copies itself indefinitely. | To show that one extra number in the rule can create an entirely new class of behavior. |
| Dense (B35/S23) | Birth at five neighbors as well as three. Patterns grow thicker and blockier, with compact masses replacing the delicate structures of B3/S23. | To compare a permissive but not explosive rule against the classic one. |
| Fast spread (B2/S23) | Birth at two neighbors while survival still requires two or three. Growth is faster than Conway’s and tends to form bands and streaks rather than isolated figures. | To watch the effect of lowering the birth threshold alone, keeping survival unchanged. Compare it directly with B2/S3 above to see what the survival rule contributes. |