Manny's Systems Studio

live

abominationvaults

Worlds
Preview unavailable Project record remains available below. Force-directed relationship graph of the campaign with ~170 colour-coded character, faction, and location nodes.
Relationship graph

A searchable campaign-memory engine for a long-running tabletop game.

Product and tooling · 2026

A campaign-memory engine for a long-running Pathfinder campaign: it ingests session logs and exposes them as a force-directed relationship graph, a "catch-up" recap generator, a filterable timeline, a stats dashboard, an open-loop thread board, and full-text search.

Deployments: DungeonNotes

A personal, non-commercial fan tool for a published Pathfinder adventure (an independent Paizo product). The public showcase features only the tool's own interface and data; the adventure's copyrighted art and maps are kept off it. The in-app campaign Q&A stays password-gated.

Read case study brief · what i owned · key decisions · what was delivered · evidence · result · implementation

The problem

After dozens of sessions, returning players need more than chronological notes: they need to recover relationships, unresolved threads, recent context, and the source behind an answer without exposing the private capture corpus.

What I owned

  • Product design and tooling for the public campaign-memory interface, with DungeonNotes retained as its private capture artifact.

Key decisions

  • Model people, places, factions, sessions, and open threads as connected memory instead of a single recap document.
  • Keep citations and searchable session context close to generated recaps so the tool can show where an answer came from.
  • Separate the public interface and redacted data from private transcripts, table audio, player-only context, and licensed adventure art.

What was delivered

  • Force-directed relationship graph of ~170 PCs, NPCs, factions, and locations.
  • Personalised "catch-up" recaps, a per-session timeline, and an open-loop board for unresolved threads.
  • A "campaign wrapped" stats dashboard with cited, searchable session memory.

Evidence

  • The live public surface exposes the relationship graph, catch-up workflow, timeline, wrapped statistics, open-loop board, and search without requiring access to private capture material.
  • Four approved interface captures document the graph, timeline, wrapped, and unresolved-thread workflows.

Result

  • Turns a 60-plus-session campaign into a browsable memory surface while keeping the underlying capture and sensitive table context private.

Implementation

  • Python
  • Campaign Memory
  • Search
  • Data Viz