realkeep · the deep dive

how it actually works.

the front door shows you what it feels like. this page shows you the machine. everything here traces to a version tag, a decision record (an ADR), or a line of running code.

← back to the front door say hello ↓

1 · the spine: events all the way down

every world is an append-only log of events. everything you see — the town, the grudges, your dog — is a fold over that log. that one decision buys the rest:

2 · the dice are real

every game with an AI in it has to answer one question: who decides what happens? here, it is never the AI. a deterministic core resolves every fact, every roll, every outcome — first, in code — and the dice land on your screen with the math showing: 1d20+3 [15] = 18 vs AC 14 — hit. then, and only then, the narrator speaks — canon-locked to the entities and facts it's handed. the narrator cannot cheat. neither can the house.

underneath the living world is a fair little RPG. a natural 20 crits: the weapon dice double and the modifier counts once (the RAW-5e rule, straight from the engine's decision records). a natural 1 fumbles, no matter who you are. and you don't fight alone: jo (another human, the one from the letter), kestrel (an AI guildmate with a soul and opinions of her own), and barry — who doesn't fight, but holds the line anyway.

pick a world. each one keeps its own kind of trouble. these are real dice:

▮ ▮ ▮ BRAWL
pick a world above, then press ▶. flat d20s, spells, edge, taunts — and no mercy. >

the roll grammar mirrors the game's own log format. edge is the game's advantage currency — spend it, and you roll two d20s and keep the better, both shown. if you drop, that's a soft ko — the engine's actual death physics — and the foe remembers; section 4 is why. every bit of this is shipped physics. the dice are real and rolled fresh every time; the chatter is the demo's script — in the game, those voices are alive.

3 · your dog can walk into the world

point a camera at something real, and it enters the game. the dog on the front page is not concept art — he's the founder's actual dog, minted from a photo, and he walks the world as a companion: follows you room to room, sits for a portrait in every world's own paint, sees everything you see. the cat, the ugly vacuum, the houseplant with opinions — the world will have them too. this is the part you screenshot for a friend.

and the trick is a pipeline, not a filter:

receipts: this is the actual describe output for the dog on the front page, from the same model the game runs (minicpm-v4.5), with the game's own prompt:

{"kind": "animal", "species_or_type": "dog", "size": "large",
 "colors": ["black", "white"],
 "markings": ["curly fur", "white chest patch"],
 "accessories": ["red collar"],
 "notable_features": ["floppy ears", "tongue out"],
 "pose_or_energy": "standing, happy",
 "art_phrase": "a black and white curly-haired dog with a red collar"}

and the barking? pets bark meaningfully all the time — the engine knows what they mean, you don't. the tonguelet tonic opens a bounded window (until dawn, enforced by the world clock) where the meaning renders as words. it's consumable, owner-only, and the only thing in the game that produces fluency.

and the vacuum: same intake, other exit. objects mint as foes with stats drawn from the engine's real difficulty bands — declared, never improvised.

4 · the world remembers

the log is append-only and never thrown away — and that's not a storage detail, it's the personality of the whole thing. nothing here is scripted, and nothing is forgotten:

the world clock is wall-clock: it keeps moving when you log off. that's why the letter on the front page took four days.

5 · every world hires its own painter

art is part of a world's physics. each campaign pins a checkpoint (its "painter"), a style bible, and a seed discipline; renders happen in tiers — the rare permanent stuff gets the slow expensive pass, in-play scenes go faster, sketches faster still. persisted forever, like the prose.

this site runs on that same machinery: the bloomvale scene and both barrys on the front page came off the game's own render graphs — photo checkpoint in, painter checkpoint out, seeds locked, every one reproducible.

pick a world, then tap a style — or hit ⟳ random.

strata deep · the sealed return door · painterly
● placeholder
choose a world
show me this in…

and the portraits that have been greeting visitors here since day one:

Generated portrait: a red-haired princess in a sunlit meadow with a distant mushroom cloud and wrecked war-mechs
the bloomvale
Generated portrait: a deep diver in a cracked brass helm leaking light
the sunken choir
Generated operative portrait: a woman with chrome cheek-plating, lit CRT-green
strata deep
Generated portrait: a hexslinger in a road-dust duster with a hex-iron revolver
perdition flats
Generated portrait: a bronze-clad oracle-champion crowned in gold laurel
the bronze heaven

and the painter doesn't sit idle between commissions — art here is a running commentary on your own story, painted locally, while you play:

and every image is kept exactly as first painted — replay the world, get the same gallery.

6 · plays anywhere the tide takes you

the whole thing runs on one machine, and we mean it specifically: the narrator is a local model on your own GPU — sized to the card you have, not to someone's cloud — the art is a local diffusion pipeline on the same box, and the world itself is an append-only event log you can open and read. no cloud, no api meter, no phone-home — no one's servers between you and your world. the floor is measured, not marketed: 16GB of VRAM runs it — the mind and the painter take turns on the card; 24GB runs it wide open — chat model and painter resident together, no swapping; 32GB runs it with room to spare — and the room buys better: a bigger mind, a finer painter. the middle number isn't a guess: 24GB is the card this game is built and playtested on, daily. that buys three things most games can't have at once:

the code is closed for now — that choice gets made deliberately, once the path is clear. your worlds are yours regardless: one host runs many worlds, each one scoped, replayable, and portable — because a world is just its log, on your disk.

7 · where it actually is — the ledger

this is a real, running thing, and this section is its odometer. numbers below are read from the repository, not from optimism.

engine v0.739.1 · 786 release tags · 207 decision records · 44 in-repo consumers of the event log · M0–M1 shipped · M2 largely complete · M3 mostly live · M4 well underway
the summer ledger · v0.653 → v0.739 — the season in five strokes
  • companions became party members in full. AI guildmates and pets follow you room to room, take visible combat turns on their own dice, and speak when it's earned (v0.678–v0.737).
  • the world learned mail. letters between real players' characters, spending real days on the same roads the news walks (v0.701 · ADR-0202).
  • every item wears its own art and knows its worth. per-drop painting, a 162-item rarity economy, and a wall of firsts every world keeps — each entry tracing to the event that earned it (v0.717–v0.735 · ADR-0205/0206).
  • the game grew a touch language. selection chips, tap-to-play verbs, honest movement — the iPad half of the household plays full-handed, and everything still types (v0.736–v0.739 · ADR-0207).
  • two humans, one world, proven live. a desktop and an iPad in one party at one table, AI companions rolling beside both (31 jul 2026).
M0–M1 · the foundation + the first minute — shipped
  • event-sourced engine, rebuildable projections, two-plane memory, YAML worlds.
  • canon-locked dialogue, quests, movement, progression, worldgen oracle.
  • the gate that shipped it: a stranger reaches a living world in under 60 seconds.
M2 · the vertical slice — largely complete
  • combat with an effect-VM, visible dice, multi-foe fights, boss phases (ADR-0024/0025).
  • walked dungeons with fog-of-war (ADR-0030); loot, equipment, economy — and now every item wears its own art and knows its worth (ADR-0047/0205/0206).
  • death that means something: the foe that fells you remembers it (ADR-0040).
  • trust-gated reveals (ADR-0022), faction standing (ADR-0046), scene galleries.
  • open: full moderation pass, dream consolidation, portrait assembly.
M3 · the living world — mostly live
  • a wall-clock world driver — days, phases, seasons (ADR-0011/0012/0014).
  • letters that spend real days on roads — NPC and player mail alike (ADR-0072/0073/0202); news that walks (ADR-0071).
  • an NPC relations web, ambient region chatter (the engine calls these "barks" — no relation to barry), and fights the whole town hears about (ADR-0104/0121/0125).
  • AI guildmates with souls and voices of their own — fighting beside you as themselves, on their own visible dice (ADR-0116/0126 · v0.737).
  • open: the director brain, guilds.
M4 · multiplayer + the tools — well underway
  • parties, /join, shared brawls — two humans in one coherent world, proven across devices at one table (ADR-0091/0103/0109 · 31 jul 2026).
  • the keeper's console (operator surface) and the campaign editor's CLI kit, pulled forward from the roadmap because building worlds should not require the repo (ADR-0114/0119).
  • the beta gate: invite codes, an account join flow, and packaged deploy — the machinery that turns a hello into a seat.
  • open: many-worlds-at-scale, moderation hardening.
and the household arc — the reason the front page exists
  • photo pets, the voice-and-mask system, the tonguelet tonic (ADR-0132/0138).
  • the vision seam: moderate → describe → defang → mint (ADR-0131).
  • photo foes with band-honest stats; render tiers; the ambient sketch limner (ADR-0139/0140).