Live ยท AI storytelling

The Pulse

A live interactive-fiction platform where an AI narrator runs a story for a group in real time — text, voice, images, and atmosphere. The part I care about most is underneath: an automated harness that plays the game with simulated groups so I can tell whether the narration is any good, and what it costs.

Live · public repo AI narrator + multiplayer Evaluation harness

Problem

Most AI storytelling stops at a prompt and a chat box. A real product needs curated worlds, player flow, multiplayer coordination, a narrator with constraints, and generated media — but the hard, unglamorous problem is quality. "Is this narrator any good?" is not a vibe; it needs to be measured across models, prompts, and stories, or every change is a guess.

What I Built

The Pulse started from the Vercel AI chatbot template and grew into a story-game platform: a curated world selector, solo and multiplayer sessions with invite rooms and a spokesperson flow, an AI narrator with story guides and agency-preserving constraints, model/provider routing, and multimodal output — voice narration, image generation, and ambient audio tied to the story. It is live and the repo is public.

Product World selector, solo/multiplayer, invite rooms, lobby, spokesperson flow.
Narrator system Story guides, agency constraints, model routing, voice, images, ambience.
Evaluation Simulated player groups, quality metrics, per-role cost, model comparison.

The story, playing

This is a real session, played live on the site. The narrator sets the scene, you type what you do in plain language, and it responds to that specific choice — then keeps the world consistent across turns. Below is one full turn of Shadow Over Innsmouth: the opening, my action, and the narrator answering it.

A live in-game turn of The Pulse: the narrator's opening about a letter and a cipher, the player's typed action 'I approach the hunched figure, keeping the letter hidden,' and the narrator's response introducing a hunched figure who rasps 'You're the one. The one with the letter.'
One turn, captured live in a real session. It shows the loop that matters: the narrator sets a scene, the player types a free-form action, and the narrator answers that exact choice — a figure rasps "You're the one… the one with the letter." Not a menu of canned options.
"The February fog rolls thick over the Massachusetts coastline as your bus groans to a halt at the edge of a world that seems to have forgotten the twentieth century exists. The driver — a gaunt man with darting eyes — doesn't look at you when he mutters, 'End of the line.'… The letter you carry feels heavier in your coat pocket. Its message remains legible: 'Come to Innsmouth. The sea remembers what the land forgets.'"
The narrator's actual prose, verbatim from the session above — the AI writing, not a scripted line.
Hear the narrator

This is the actual narration audio, pulled straight from a live session — the game generating the voice as it plays. Each world is cast with its own voice through ElevenLabs, tuned for theatricality and compared across TTS providers; the voice is a design choice per story, not a default read-aloud.

A generated Innsmouth scene: a foggy cobblestone street at dusk, gas-lamp light, sagging clapboard houses, a fishing boat at the misty dock, cloaked figures in the street.
The kind of scene art the game generates to accompany a turn — a decaying seaport at dusk. This shows the atmosphere the story renders around the narration, not decoration bolted on afterward.

The Product

The Pulse live homepage: a serif THE PULSE wordmark over curated interactive-fiction worlds, Shadow Over Innsmouth and The Hollow Choir, each with a premise and an epigraph.
The live homepage at the-pulse.games. It shows the product as curated interactive fiction — each world has a premise and an epigraph, and you begin in one tap — not a raw chat prompt.
The Pulse multiplayer lobby: a traveler list, host and voice controls, a summon-others action, and room-ready state.
The multiplayer lobby. It shows the room state, traveler list, host controls, and summon flow — the coordination layer that makes a shared AI-narrated session work.

The Playtest Harness

This is the piece that makes The Pulse an engineering project and not a demo. The harness spins up a whole session with no humans: it simulates a group of AI players, runs the narrator against them turn by turn, saves checkpoints, and produces a report. It measures narration quality with real signals — did players go off on tangents, did private character moments pay off, how did the session end — and it accounts for cost per role (narrator vs. players vs. classification tokens). Swap the narrator model or prompt style and the harness tells you whether it got better, worse, or cheaper.

A Test Harness Session Report: session ID, story Shadow Over Innsmouth, outcome timeout, 92s duration, key metrics (final turn, tangents, private moments paid off), and a cost breakdown of narrator, player, and classification tokens totalling $0.0175.
A real session report from the harness. It records the story, outcome, and turn count; scores narrative-quality signals (tangents, private moments paid off); and breaks token cost down by role — here 27,692 tokens for $0.0175. This run hit the configured turn limit (timeout).
Public-safe evaluation loop: story guides feed simulated players and a narrator model, a comparison runner records sessions to checkpoints, and reports aggregate turn and quality metrics.
This diagram shows how the evaluation loop fits together: a story and a narrator model/prompt drive a simulated group, each session is captured to checkpoints, and reports aggregate the results so narrators can be compared head to head.

One world, three ways in

Shadow Over Innsmouth shows up across my interactive-fiction work: here in The Pulse as a live multiplayer AI narration, in Anima as a hand-drawn graphic adventure, and authored underneath both in StoryScript. The same story, taken three different ways, is how I pressure-test what "AI storytelling" can actually be.

Technical Decisions

  • Treat the narrator as a product surface with rules, tone, pacing, and agency constraints — not a freeform chatbot.
  • Separate story guides from prompt styles so a world can be run against several narrator models.
  • Build a harness that simulates player groups, so quality is measured instead of vibed — with cost accounted per role.
  • Tie voice, images, and ambience to the story beat rather than bolting media on as decoration.
  • Coordinate multiplayer through rooms and a spokesperson action, so a group shares one coherent narration.

What This Proves

The Pulse is product taste and AI-system rigor in one project: a live, multimodal, multiplayer story game, and the evaluation discipline to know whether the AI at its center is actually good. The harness is the tell — I treat narrative quality as something to measure, not assert.