MML ONE
Making AI output behave like footage.
Film production is a discipline of control. Generative AI isn’t. MML ONE is the tool I took from zero to public alpha to resolve that fight — and I wrote the front-end code that ships it.
Live at mmlone.com
Context
Multimodal Media Lab (MML) is a Vancouver creative-technology studio working at the intersection of AI and cinema, and a partner of NextG Fund. MML ONE is its transmedia storytelling engine — script, characters, world, and cut in one project graph — currently in public alpha at mmlone.com. The platform is supported by the ElevenLabs Grants program, Convex for Startups, and the Google for Startups Cloud Program.
By the numbers
Zero to public alpha
Shipped as head of product on the founding team.
The problem
Film is control, generative AI isn’t
Film production is a discipline of control. Directors decide how a character looks, how a scene is framed, and which take survives the edit. Generative AI works the other way: the same prompt produces a different result every run, and most AI creative tools treat that as a feature.
I know that discipline from the inside: in 2024 I produced 北方满城大雾 (Misty Northern City), a Toronto short that won at the Niagara Canada International Film Festival. I build production tools as someone who has carried a production.
At Multimodal Media Lab I set out to build MML ONE on that unstable foundation — a transmedia storytelling engine covering Character Studio, the World and 3D Stage, and the Storyboard → Shots → Cut pipeline. As head of product I own the framing of the problem as well as its execution, working alongside the MML founding team and, every week, with 5–10 creators.
The question that shaped everything
How do you make AI output behave like footage — something a filmmaker can review, version, and assemble?
The interaction model
Generation as a pipeline
I modeled every generation step — text, image, or video — as a pipeline stage with explicit inputs, a review state, and scoped re-rolls:
-
Scoped re-rolls carry most of the weight.
The Generative Canvas lets a creator circle what’s wrong on a frame and regenerate just that, while every upstream decision stays locked. This is the mechanism behind the −30% iteration-rework number above.
-
Character Studio locks identity.
Once a character is approved, that identity — bone structure, gait, voice — carries across every scene, costume change, and generation model, so nothing drifts between shots.
-
Review states do the quiet work.
Each artifact is explicitly in review or approved, so a project reads as a record of decisions rather than a pile of generations — the difference between a toy and a production tool.
Building it
Design to code, same person
I design in Figma and build the production front end in TypeScript, React, Next.js, and Tailwind CSS. The same person who designs a review state or a scoped re-roll ships the code for it, so the idea never gets quietly simplified on its way from mockup to API.
For an AI product this matters more than usual. Latency, streaming, and half-finished generations are the real material of the interface, and I only understood them properly once I had to implement them against the model providers MML ONE routes through. The design accounts for what a model actually returns, not what a static mock wishes it returned. The platform’s public front door, themml.ca, and the rest of my web work at MML are their own smaller case study →
The weekly loop
Build, test, learn — every week
Every week I run a build-test-learn loop with 5 to 10 creators from the MML ONE community, alongside the MML founding team. They work in the current build while I watch where the pipeline model holds and where it fights them.
Findings go straight into roadmap and release decisions. Because I run the research and write the code, the distance from observed friction to shipped fix is short — a to-do list, not a planning cycle.
Results
A pattern I now trust
MML ONE is in public alpha and live at mmlone.com. Creators move through Story Room, Character Studio, the World and 3D Stage, and Shot Builder in one place, and the Generative Canvas’s scoped re-rolls cut iteration rework by roughly 30% along the way, tracked across weekly sessions with 5–10 creators.
The larger result is a pattern I now trust: treat every generative step as a stage with explicit inputs, a review state, and a scoped re-roll. It turns a nondeterministic model into something a discipline of control can actually use.
The honest part
Multimodal Media Lab