Video generated by code

Video generated by code

Year
2025-2026
Role
Founder, Product & Engineering
Contributions
Product direction, Full-stack build, Agent tooling

Story by Numbers is a video platform I have been building since early 2025. It renders video from code: every film is a React component, assembled from data and rendered frame by frame in the cloud. The fastest way to explain it is one job.

A jazz night with no photographs

The Wolfhound is a pub in Haarlem that runs a jazz underground night. For the announcement there was no photography and no footage. The materials were a sound clip from the trio and the event data: the date, the time, and who plays what.

That is the finished reel, sound on. The illustrations were generated in a riso print style in the pub's own green and red. The type, the lineup, and the date come straight from the event data into a layout's slots. The captions are timed to the sound clip word by word, so the announcement plays like the night sounds.

The point is not this one video. An event program is a data stream, and this pipeline reads one. The same run that made this reel can make the whole month: each night with its own lineup and date, and small variations in color and illustration from event to event so the feed stays fun rather than templated.

The studio

Generation gets a film most of the way. The last part is taste, and that happens in the studio, a timeline editor over the same data the agents write. Scenes stretch to match the audio, transcript and playhead highlight each other in both directions, and every color, headline, and duration a layout exposes can be adjusted by hand. When a generation step proposes variants, they sit side by side and a person picks the one that looks true.

The studio also sets the frame: 9:16 for reels like the one above, square or 4:5 for feeds, 16:9 for anything wider. One project renders to any of them.

The platform underneath

The whole workflow is exposed to AI agents as tools: create a project, browse the layout library, assign content to a slot, write the headline, queue a render. Every tool call is validated against the same schemas the renderer uses, so an agent either produces a film that plays or a clear error that tells it what to fix.

Scenes come from a library of reusable layouts, React components with named slots and a handful of exposed settings. New layouts scaffold from a single command, so a client's visual language becomes a working template in an afternoon. Voiceover, illustration, and image-to-video models sit inside the pipeline, each with a known price before it runs, which means an agent can be trusted with a budget.

Rendering is deterministic: assets are resolved before the render starts, components are pure functions of the frame, and the same project produces the same file every time. Video that behaves like software can be versioned, reviewed, and re-rendered a year later without surprises.

Where this is going

The platform is in private development while I build it out with client work, like the Instagram assets for a custom jeweler. I write about the build, the rendering techniques, and the agent tooling at /writing. If your organisation has material that could become film, email me: jason@storybynumbers.com.