A venture-backed startup was building a platform for AI-powered interactive fiction — stories where characters remember previous conversations, improvise within author-defined boundaries, and respond to the player in natural language. The core engine was being built by the CTO. But there was nothing to show investors. No demo. No video. No visual representation of what the experience would look and feel like.
The company needed someone who could take the concept and turn it into two things: a working interactive demo that proved the idea, and a production pipeline that could generate investor-quality video assets from AI tools alone — no film crew, no stock footage, no traditional production budget.
Bill Moore was the sole creative technologist on the engagement. He designed and built the interactive demo end-to-end — narrative structure, character prompting, voice pipeline, UI — and separately designed and built the full production pipeline for investor video assets: image generation, voice synthesis, audio mixing, editorial handoff, and visual composition.
The engagement ran through BCG, but the work was effectively a one-person production studio. Bill owned creative direction, technical architecture, and execution. The CTO built the platform engine. Bill built everything else the outside world would see.
The demo is a voice-driven interactive fiction experience set in a spy thriller. The player enters a world through text and voice, interacting with AI characters who maintain persistent memory, personality, and narrative awareness across conversations.
A narrator describes scenes, tracks the player's location within a map of interconnected spaces, and adjusts tone and detail based on what has happened. The narrator is not decorative — it manages game state, controls pacing, and decides when to surface new story beats.
Each character has deep backstory, distinct voice, and behavioral constraints defined by the author. Characters improvise dialogue within boundaries — they can be charming, evasive, or confrontational, but they cannot reveal plot information before the narrative structure allows it. This is bounded improvisation: the AI doesn't drive the story, the story drives the AI.
The narrative runs on a deterministic plotgraph — a directed graph of beats, triggers, and conditions. AI generates the prose and dialogue, but progression through the story is controlled by authored logic. The AI translates at the boundaries between game state and player experience, not at the center of the system.
"The AI doesn't run the game. The game runs the AI."
— Core architecture principleAlongside the demo, Bill designed and built a complete production pipeline that turns a storyboard into an investor-ready video — with no traditional production resources. Every tool was purpose-built for this project.
AI-generated frames at 2.35:1 ultrawide cinematic aspect ratio, styled to match a consistent B&W film aesthetic (Ilford HP5 grain, 1970s production design). Each frame is generated from a detailed prompt specifying composition type, subject, lighting, and mood. A vocabulary of 13 shot types — extreme close-ups, wide architectural shots, document photography, multi-subject compositions — ensures visual variety follows cinematic grammar rather than random generation.
Multiple character voices generated through ElevenLabs, each with distinct vocal identity. The narrator voice carries the trailer. Character voices appear in scene — each calibrated for the character's age, temperament, and emotional register.
A Python mixing tool reads a JSON configuration file that specifies every element in the mix: voiceover segments with precise timestamps, music bed with fade curves, character voice clips with crossfades, and silence gaps for pacing. The mix is fully reproducible — change the config, regenerate the audio. No manual mixing required.
The pipeline generates FCP7 XML that maps every frame to its corresponding audio segment, with timing pulled from the storyboard. This drops directly into Premiere Pro as an assembled timeline — rough cut ready for human editorial refinement.
The demo's characters use LLMs for dialogue generation, but they operate within hard constraints defined by the story author. A character can improvise how they say something, but not what they reveal or when. This solves the fundamental trade-off between scripted control and freeform AI chaos — the experience feels alive without breaking the narrative.
The game engine is pure functions — no AI in the state machine. AI only appears at the translation layer: turning game state into prose, and player input into game actions. This means the narrative is debuggable, testable, and predictable. The AI adds texture, not uncertainty.
Rather than generating random images, Bill developed a shot composition vocabulary based on documentary filmmaking — each frame type has a name, a purpose, and rules about when to use it. The visual grammar ensures that 60+ generated frames feel like they came from the same production, not from 60 separate prompts.
Creative corrections flow through a strict chain: director's notes document first, then the script, then the storyboard, then the build tools. This was learned the hard way — without an enforced correction chain, notes given in one working session would evaporate by the next. The production document is the source of truth, not the conversation that produced it.
A working SwiftUI prototype that demonstrates the full experience loop: enter a location, read a narrator description, speak to a character, make choices that update game state, trigger new story beats. Playable on device.
A two-minute cinematic trailer assembled entirely from AI-generated assets — generated frames, synthesized voices, composed music, automated mix. No stock footage, no film crew, no traditional production budget.
An HTML storyboard that shows every beat of the trailer with its corresponding frame, audio, and timing. Used as a living production document — each beat links to its generated assets and tracks revision history.
Purpose-built Python and JavaScript tools for frame generation, audio mixing, animatic assembly, text card generation, compositing, shot QA (using vision AI to check generated frames against prompts), and editorial handoff. Each tool is config-driven and reproducible.
AI-generated production is real production. The pipeline produces broadcast-quality frames and broadcast-quality audio. The constraint is consistency, not quality — getting 60 frames that look like the same production is harder than getting one beautiful image. Visual grammar and prompt architecture solve this.
The correction chain is the product. In AI-assisted production, corrections are the highest-value input. A system that loses corrections between sessions is a system that wastes the most expensive resource: creative direction. The source of truth must be a file on disk, not a conversation.
Config-driven tools outlast clever tools. Every tool in the pipeline reads a config file and produces deterministic output. No magic, no hidden state. When the creative direction changes — and it always changes — the tool doesn't need to be rewritten. Just change the config.
Bounded improvisation is the design pattern for narrative AI. Full autonomy produces chaos. Full scripting produces dead dialogue. The middle ground — authored constraints with AI-generated expression — makes the characters feel alive without making them unreliable. The game runs the AI, not the other way around.