Show HN: Building Table Canon, an AI Campaign Memory Engine for TTRPGs
Table Canon is an AI campaign memory engine for TTRPGs that transcribes, diarizes, and tracks long-running story state across sessions.
Table Canon, an AI-powered campaign memory engine for tabletop role-playing games, launched publicly this week via a Show HN post by developer schillingderek, with 6 hours of free audio upload available to try without login.
The tool is built to solve a problem specific to long-running TTRPG campaigns: multi-hour session recordings that standard transcription tools handle poorly, stripping out fantasy proper nouns, ignoring speaker identity, and treating each session in isolation. Per the Show HN post, Table Canon ingests session audio and outputs structured state updates — NPC dossiers, open quest hooks, character promises, new locations — into a database rather than re-processing raw transcripts each time. The result is a running campaign record that remains tractable even past 30 sessions.
The pipeline, as described by the developer on Hacker News, combines whisper-large-v3-turbo for transcription, pyannote for speaker diarization and voice profile matching, and the OpenAI API with Structured Outputs for entity extraction and memory updates enforced via JSON Schema. Session summaries can also be rendered as text-to-speech audio recaps using Kokoro or Chatterbox Turbo, and the system includes ACE-Step-v1.5-XL-Turbo for generating musical ballads from session content.
Several non-trivial engineering problems shaped the architecture, according to the Show HN. Feeding 20-plus prior session transcripts into a single context window proved cost-prohibitive, leading to the atomic state-delta approach instead. General speech-to-text models mangled homebrew fantasy names until the developer injected a custom pre-pass fantasy term dictionary into prompt context. And passing a full four-hour audio file directly to Whisper or pyannote caused memory leaks and timeouts, requiring Voice Activity Detection and deterministic chunking as a pre-processing step.
Two problems remain unsolved or only partially addressed, the developer notes in the Hacker News thread. Entity alias resolution — matching "The Red Bishop," "Arthur," and "that cult leader guy" to the same NPC without incorrectly merging distinct characters — is handled in part by letting users manually edit aliases and merge or split entities after the fact. Quest resolution logic, specifically getting the LLM to reliably distinguish a resolved promise from one that is merely abandoned or drifted, is still being refined.
The Show HN post invites feedback from others working on similar long-context or entity-tracking problems, and the tool is live at tablecanon.app with no account required for initial use.
No comments yet — start the thread.