Game of Life
Conway's automaton as a perfectly observable, deterministic grid world.
Conway's Game of Life rendered as a queryable data model. The board is a toroidal grid of cells, each an independent finite-state machine whose next state is a pure function of its eight neighbours. A generation runs as a two-turn protocol: living cells broadcast a message to their neighbours, then every cell counts the pings it received and applies the birth/survival rule. Because the update is synchronous, the outcome is identical no matter what order the cells are stepped in.
A clean, fully-observable testbed for spatial and temporal reasoning. The rules are trivial and deterministic, so any discrepancy between a prediction and the next board is unambiguously the predictor's — there is no hidden state to blame. Seeds include the classic still-lifes, oscillators and a glider.
A live replay of a simulation run — scrub, step and explore.
Linked tables with guaranteed referential integrity.
Generated REST endpoints. Also exposed as MCP tools.
OSI-compatible definition, emitted with the dataset.
# game-of-life.osi.yaml — emitted automatically semantic_model: name: "game-of-life" source: "duckdb://game-of-life.db" entities: - name: cell primary_key: id dimensions: - name: state type: categorical - name: t type: time measures: - name: row_count agg: count - name: active agg: sum filter: "state = 'ACTIVE'"
More worlds.
London Underground
A live tube graph — eleven lines, hundreds of trains, platforms held as a mutex.
Pac-Man
A self-playing arcade game — ghosts chase a flood-filled distance field.
Claims FNOL
First notice of loss through settlement, with capacity-capped regional adjusters.