Home · Work · MML ONE

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
RoleHead of Product (Founding Team)
CompanyMultimodal Media Lab
ProductMML ONE — mmlone.com
TimelineAug 2025 – present
StackFigma · TS · React · Next.js · Tailwind
StatusPublic alpha — live at mmlone.com
MML ONE hero screen with the tagline ‘Your story. Every world. Every screen.’ above a dark production-pipeline strip showing screenplay, character, world, and shot-board stages connected in one graph
The public alpha’s front door, and the live production pipeline underneath it: screenplay, Character Studio, World, and Shot Board, connected as one graph instead of separate tools.

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.

2,423+ creators creating Public number on mmlone.com
213+ invited to the alpha Public number on mmlone.com
16 pilot studios Public number on mmlone.com
−30% iteration rework, from scoped re-rolls Scoped re-rolls replaced full-sequence regenerations — creators recover roughly a third of iteration time, tracked across weekly 5–10-creator sessions

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:

  1. 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.

  2. 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.

  3. 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.

The 11-element shot brief covering camera parameters, camera movement, lighting and mood, color palette, audio, concept notes, and mood references, next to a comparison against LTX Studio, Higgsfield, Runway, and Kling
The 11-element shot brief, and where it sits against the competition: most tools stop at script, character, and camera — every element here, down to color palette and mood references, stays wired to the scene.
Shot Builder comparing takes across Veo 3, Seedance, and Kling for one storyboard scene, with a Generative Canvas below showing takes as connected nodes around a reference image
Shot Builder compares takes across models — Veo 3, Seedance, Kling — against one scene brief; the Generative Canvas below it treats every take as a node wired to its reference, not a chat thread.
Six-stage platform overview: Story and Script, Characters, World, 3D Space, Shot Board and Cut, and Deliver, each inheriting cast, world, and creative decisions from the stage before it
The six stages of the platform — Story & Script, Characters, World, 3D Stage, Shot Board & Cut, Deliver — each inheriting cast, world, and creative decisions from the one before it. Shot Board & Cut ends in Resolve Sync: one bundle exported straight to DaVinci Resolve.

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

What I cut, and what still fights me

Where it started The whole pipeline model exists because creators kept losing good takes to full regenerations — that complaint, heard early and often in the weekly loop, became the design brief for scoped re-rolls and the Generative Canvas.
What I cut The alternative was a free, chat-style generation loop — type a prompt, get a result, keep talking. It’s what most AI creative tools default to, and it’s faster to build. I cut it because review states are what make output behave like footage in the first place: without a stage that’s explicitly approved, there’s nothing for the next stage to lock against.
What still fights me Nondeterminism still leaks through at the shot level. Keeping a character’s identity locked across different generation models remains ongoing work, not a solved problem.