The Midnight House: a ghost you talk to through a spirit board
Description and use
Midnight House showcases how open‑weight models enable an interactive ghost whose responses reflect real token probabilities, revealing model uncertainty and preventing secret leaks.
Problem
Create an interactive haunted‑house game where the ghost’s responses reflect real next‑token probabilities, exposing model uncertainty to the player.
Outcome
The game demonstrates how open‑weight models enable transparent ghost interactions, revealing model uncertainty and preventing secret leaks, while providing a private, offline experience.
Workflow
- 1. Install dependencies and pull Gemma via Ollama. 2. Run FastAPI server with SSE endpoint. 3. Player explores rooms, unlocking facts. 4. Ghost’s prompt contains only unlocked facts. 5. Model streams tokens with probabilities; UI updates planchette speed and whispers. 6. Spoiler guard checks replies; blocked leaks are logged. 7. Progress stored in MongoDB or memory; Backboard provides cross‑session memory. 8. Deploy to Render; Browserbase smoke‑tests the live game.
Evidence
The planchette doesn’t move on a random timer. It moves using the model’s real next-token probabilities.
If an endpoint doesn’t expose logprobs, the UI says so and uses a fixed-speed planchette.
A spoiler guard. If the model still blurts out a locked secret, a word-boundary check replaces the reply with I cannot say.
- Record date: 2026-11-01T09:29:18.306Z