Truthbound

Reconstruct missing truth from fractured records.

Truthbound is a room-based interactive documentary built with Next.js. Players explore investigation rooms, discover source-grounded evidence through clickable hotspots, and make decisions that shape a speculative reconstruction of the Hinterkaifeck case — one of Germany's most enduring unsolved crimes from 1922.

The app does not ask players to solve the crime — it asks them to understand what silence took away.


Table of Contents


Overview

Most true-crime interactives sensationalize violence and treat unsolved cases as puzzles with hidden answers. Truthbound takes a different approach:

  • No suspect accusations — the case is officially unsolved, and the app respects that
  • No graphic content — the focus is on what was lost, not how it happened
  • No false certainty — every speculative element is clearly labeled
  • Player choices shape interpretation, not historical truth — there are no wrong answers

Players move through 7 investigation rooms, each with its own AI-generated artwork. Inside each room, they click on hotspot markers overlaid on the art to uncover evidence, truth fragments, and silence points. After discovering enough clues, a decision prompt appears — and the player's choices gradually build toward one of 5 speculative endings.


Tech Stack

Technology What It Does
Next.js 16 React framework — handles routing, server-side rendering, and API routes (uses App Router + Turbopack)
TypeScript Adds static types to JavaScript — catches bugs early and improves editor autocomplete
Tailwind CSS v4 Utility-first CSS framework — lets you style elements directly in your markup with classes like bg-gray-900
Framer Motion Animation library for React — powers all the smooth transitions, fade-ins, and interactive effects
Lucide React Icon library — provides the SVG icons used throughout the UI
React Context + useReducer Built-in React state management — tracks player progress, decisions, and discoveries globally
localStorage Browser storage — saves player progress between sessions so nothing is lost on refresh

No database needed. All game state lives in the browser's localStorage. All case data (rooms, evidence, decisions) is bundled as static TypeScript files in the lib/ folder.


How the App Works

Here's the player flow from start to finish:

Landing Page → Case File → Analysis Dashboard → Investigation Rooms → Record Room
     /              /case          /analyze              /play            /record
  1. Landing Page (/) — Introduces the project, its philosophy, and the Backboard AI pipeline
  2. Case File (/case) — Presents the documented historical facts of the Hinterkaifeck case with source grounding
  3. Analysis Dashboard (/analyze) — Runs the Backboard agent pipeline (or loads curated local data) to analyze the case
  4. Investigation Rooms (/play) — The core experience: 7 rooms with clickable artwork, evidence discovery, and decision-making
  5. Record Room (/record) — The finale: shows the player's reasoning trail, interpretation path, and a speculative ending

Core Mechanics

  • Silence Meter — A progress bar that fills as players discover missing voices and damaged evidence. Reaching 100 unlocks the Record Room.
  • Truth Board — A living document with 7 sections that update as players make discoveries.
  • Interpretation Scores — Each decision is tagged with one of 5 themes: Familiar Presence, Outside Intruder, Evidence Collapse, Ignored Warning, or Missing Voice. The dominant theme at the end determines the speculative ending.

Backboard (AI Agent Pipeline)

Backboard is the optional AI layer that powers dynamic content generation. It uses a multi-agent architecture — think of it as a team of specialized AI assistants that each handle one job.

Important: Truthbound works fully without Backboard. All rooms, evidence, and decisions are available from curated local data in the lib/ folder. Backboard enhances the experience but is never required.

The 11 Agents

Agent What It Does
Case Extraction Pulls structured facts from source material
Warning Signs Identifies documented pre-crime warning signs
Missing Voice Identifies voices that were removed from the historical record
Evidence Reliability Classifies each piece of evidence on a scale from source-backed to missing-voice
Room Builder Designs investigation rooms based on the analysis results
Clue Designer Creates the clickable hotspot interactions with truth fragments
Decision Agent Writes the decision prompts that shape the player's interpretation
Perspective Agent Generates contextual commentary to deepen understanding
Fact Guard A safety agent — validates all generated content against ethical rules (no accusations, no gore, no false certainty)
Memory Agent Tracks player progress across sessions for continuity
Final Record Generates the speculative reconstruction at the end

How It Connects

The agent pipeline is defined in lib/backboard.ts and the prompt templates live in lib/prompts.ts. API routes in app/api/ expose the pipeline to the frontend:

app/api/
├── analyze/              → Runs the analysis agents (Case Extraction, Warning Signs, etc.)
├── generate-experience/  → Runs the generation agents (Room Builder, Clue Designer, etc.)
├── save-progress/        → Persists player state via the Memory Agent
└── perspective-chat/     → Streams perspective commentary during gameplay

Enabling Backboard

To use the AI pipeline, create a .env.local file in the project root:

BACKBOARD_API_KEY=your-api-key-here
BACKBOARD_ENDPOINT=https://api.openai.com/v1/chat/completions
BACKBOARD_MODEL=gpt-4o

Without these environment variables, the app gracefully falls back to local data.


Key Features

  • 🎨 7 investigation rooms with AI-generated scenario artwork
  • 🔍 24 evidence hotspots with source-grounded reliability classifications
  • 🧭 Decision system with 5 interpretation paths and no wrong answers
  • 📊 Silence Meter tracking missing voices and damaged evidence
  • 📋 Truth Board that fills with fragments, not answers
  • 🧠 Backboard AI pipeline with 11 specialized agents (optional)
  • 💾 Local persistence via localStorage — progress saves automatically
  • Accessibility — keyboard navigation, ARIA labels, text-based indicators
  • 🛡️ Ethical safeguards — no accusations, no gore, no false certainty

Truthbound does not ask players to solve the crime. It asks them to understand what silence took away.

Built With

Share this project:

Updates