Inspiration

The average online ad gets skipped within 5 seconds; audiences have learned to tune out anything that doesn't ask them for something. Interactive ads buck that trend hard: roughly 3.6x better retention than passive video, because a viewer who has to make a choice can't zone out. The catch has always been cost, a branching ad traditionally means reshooting or re-rendering every path by hand, which is why almost no one actually ships them.

Reactor changes that math. Its models generate video in real time, so a "branch" isn't a reshoot; it's a different prompt fed to the same live session.

What it does

Agent Cola is an interactive thriller built as a branded ad experience for Coca-Cola. Pepsi operatives have infiltrated headquarters and stolen the vial containing the secret recipe; you play the agent in the red jacket racing across a neon-lit skyline to get it back. Every choice — chopper or parachute, fight or flee, hold your nerve or bail, is sent live to a real generative-video model, which renders the next scene itself, in character, in the moment you pick it. Choose wrong, and the recipe ends up Compromised.

How we built it

  • Storyboarded the guardrails first. Before writing a line of prompt code, we mapped the branching structure, thereby bounding the model.
  • Built assets to match. Character boards for Agent Cola and her Pepsi rival. Scored it. A backing track plus layered sound effects tied to specific story beats.

Challenges we ran into

  • Getting Helios and LingBot to reliably follow the story. Image-to-action prompting is fragile — the same phrasing that produces a clean action shot on one model produces a static or off-brief frame on the other. We ended up encoding a strict prompt order (subject → accumulated state → one new action → lighting → camera, always last) rather than trusting the model to infer it, which stabilized results across both.
  • Latency switching between models. LingBot and Helios don't just render differently, they cut differently — LingBot's reference image is read once at world start, so a mid-story switch means a real reboot, not an instant re-anchor. We covered that gap with transition masks, so the swap reads as a deliberate cut rather than a stall.

What's next for Periwinkle Tigers

  • A better harness layer for open-world exploration Moving past a fixed branching tree toward freer, more explorable scenes without losing the guardrails that keep the model on-story.
  • Stronger guardrails to support more branching storylines Scaling the story structure up without the prompt reliability problems we hit at this scope.

Built With

Share this project:

Updates