Palindrome Decider
A decider that erases matching ends and sweeps inward — halting in Accept or Reject.
A genuine decider — a machine that halts with a yes/no answer. Over the alphabet { a, b } it remembers the first symbol in its control state, erases it, walks to the opposite end, and checks the symbol there matches what it remembered; if so it erases that too and turns back. The input shrinks from both ends until either the tape is empty (Accept) or a mismatch is found (Reject). The seeded input abba is a palindrome, so the head finishes in the Accept halt state.
The counterpoint to the non-halting examples: a machine that terminates with a decision. It exercises both halt states, the remember-in-state trick that lets a finite control compare two distant symbols, and the full two-directional sweep over a bounded tape — a compact, fully observable test of accept/reject reasoning.
Linked tables with guaranteed referential integrity.
Generated REST endpoints. Also exposed as MCP tools.
OSI-compatible definition, emitted with the dataset.
# palindrome.osi.yaml — emitted automatically semantic_model: name: "palindrome" source: "duckdb://palindrome.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.
Game of Life
Conway's automaton as a perfectly observable, deterministic grid world.
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.