Resume

MML ONE

Making AI output behave like footage.

Film production is a discipline of control. Today’s AI filmmaking stack isn’t: stills in one tool, video in another, and no system holding the production state. MML ONE is the tool I took from zero to public alpha to fix that — built full-stack by a team of two, and I’m one of them.

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 · Convex
StatusPublic alpha — live at mmlone.com
The public alpha’s home base: an interactive quick-start, the project you left off in, and the library behind it.

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

Chapter 01 · The system

Making AI behave like footage

Film production is a discipline of control — I know it from the inside, having produced Misty Northern City, a festival-winning Toronto short, in 2024. AI filmmaking today has none of it: stills come out of Midjourney, video takes out of Seedance or Kling, references pile up by the hundred — and no system holds the production state together. MML ONE is that system: one project graph where every generation — text, image, or video — is a pipeline stage with explicit inputs, a review state, and a scoped re-roll.

The model

Three locks against randomness

  1. Scoped re-rolls carry the weight.

    Circle what’s wrong on a frame, regenerate just that — every upstream decision stays locked. This is where the −30% rework number comes from.

  2. Character Studio locks identity.

    An approved character’s bone structure, gait, and voice carry across every scene, costume, and generation model.

  3. Review states do the quiet work.

    Every artifact is in review or approved, so a project reads as a record of decisions — not a pile of generations.

Recorded from the built-in interactive tutorials — a quick jump through a few of the modules.

Deep dive 01

Version control for a story

“Behave like footage” has a logical endpoint: if generations are footage, a project needs version control. Branch center is the deepest system in MML ONE — a full branching model for a story and every asset that story drives.

  1. A checkpoint is a commit.

    Every content change lands as a checkpoint, and the system identifies what changed on its own, scoped to the module: Screenplay · 7 episodes, Storyboard · revision 15, Key Scenes · revision 7. Nobody writes a commit message — the diff writes itself.

  2. A branch is a parallel draft.

    A scriptwriter works on their own branch — three checkpoints ahead of main, eight behind — and their changes come back through a reviewable merge request. Collaboration stops being a chat thread that ends in “use this version.”

  3. There was nothing to copy.

    Version control for code is a solved discipline. For a story — where one screenplay edit ripples into boards, key scenes, and canvas — there was no prior art. What counts as a change, at what scope, is a design decision I had to invent.

Branch center: checkpoints on the project timeline, a scriptwriter branch running against main, and a system-identified diff scoped to modules.

Deep dive 02

A film set in the browser

The 3D Stage is a previsualization set inside the pipeline: walls, doors, windows, and roofs to block a set; key and fill lights; mannequins for staging; a virtual camera you can drive from a phone; a 24 fps timeline with shot tracks; Export at the end.

I’ve built 3D tooling before — the Unity work and the VR research behind my IEEE VR 2026 paper. The constraint here is inverted: the user is a filmmaker with zero 3D training who has to block a scene in minutes. So the toolset speaks a film set’s vocabulary — walls, doors, a cutaway, a floor plan — not a 3D suite’s.

The 3D Stage: set building, staging mannequins, a phone-driven virtual camera, and a 24 fps shot timeline — all in the browser.

Chapter 02 · The scope

Seventeen modules, one person

MML ONE isn’t a generator with a settings page. It’s a production house: seventeen modules across seven pipeline stages, plus the infrastructure underneath — branching, an action queue, history. Every one of these screens crossed my desk: as a problem statement, as a Figma file, and most of them as shipped code.

Writing Story · Screenplay Loglines to episodes. The screenplay is the root node everything else inherits from.
Assets Characters · Environments · Props · 3D Stage The persistent cast and world — approved once, locked everywhere.
Previsualization Storyboard · Key Scenes · Canvas Where the script becomes images, and re-rolls stay scoped.
Production Production Flow · Shot Builder Eleven-element shot briefs; takes compared across Veo, Seedance, and Kling.
Editing Clip Composer · Library Approved takes assembled into cuts, with the take library underneath.
AI AI Tools · AI Agent · Agent Home An agent that operates the same project graph a human does.
Distribution Deliver From locked cut to channels — including Resolve Sync into DaVinci.
Project infrastructure Branch center · Action queue · History Versioning and orchestration under every module above.

Stills

Around the platform

Frames from the tool itself, one per module — this strip grows as the alpha does.

Story Architect: logline, episode outline, creative spine, and a seven-scene tension curve for The Three Little Pigs
001Story Architect — logline, creative spine, and the tension curve.
Screenplay editor with character-highlighted dialogue and AI Smart Continue, seven scenes across two pages
002Screenplay — the root node every module inherits from.
Character Studio profile for Big Bad Wolf: visual prompt, locked base look, visual anchors, and recent variants
003Character Studio — identity locked across scenes and models.
Environments library: Brick House interior studio with a saved evening variant and six more locations
004Environments & Props — the persistent world.
Storyboard table view: per-shot framing and blocking text with a shot-grammar picker for framing, angle, move, lens, and length
005Storyboard — shot grammar down to framing, angle, and lens.
Generative Canvas: video takes as nodes wired to character references, with depth and normal passes and a provenance panel
006Generative Canvas — takes as nodes, re-rolls scoped.
Shot Builder: a five-shot scene with storyboard reference, tagged characters, and a timed generation prompt
007Shot Builder — storyboard to generated takes, shot by shot.
Clip Composer: the main cut on a 24 fps timeline with motion effects and Send to Resolve
008Clip Composer — the cut, motion FX, and Send to Resolve.

Chapter 03 · The job

What Head of Product means here

On a founding team the title is shorthand for everything the product needs that nobody else owns. Concretely:

Roadmap & release

Every week I run a build-test-learn loop with 5–10 creators from the MML ONE community. They work in the current build while I watch where the pipeline holds and where it fights them; findings go straight into cut-or-keep calls for the next release. Because I also write the code, the distance from observed friction to shipped fix is a to-do list, not a planning cycle.

Creator program

The testing network behind that loop — weekly creators plus 16 pilot studios — is a program I built and run, not a pool I inherited.

Design & engineering

MML ONE is built by a team of two, and I’m one of them — from Figma design to full-stack code: TypeScript, React, Next.js, and Tailwind in front, Convex behind. The same person who designs a review state ships it end to end, so nothing gets quietly simplified between mockup and API. For an AI product that matters double: latency, streaming, and half-finished generations are the real material of the interface, and the design accounts for what a model actually returns, not what a static mock wishes it returned. The rest of my web work at MML is its own case study →

The business side

The pitch is a product too

I drive the product side of MML ONE’s fundraising and business development — the narrative, the demos, and the numbers behind them.

  1. The narrative lands.

    The pitch narrative and product demos I own helped land Google for Startups, Convex for Startups, and an ElevenLabs grant — and the same story carries the fundraise conversations.

  2. Partners shape the roadmap.

    Product lead for strategic partnerships with World Labs, Tencent, and ByteDance, plus an Android XR program with XREAL — I represent the product in partner conversations and turn partner requirements into roadmap.

  3. The economy is product work.

    Every generation is metered in credits, and the pricing and consumption model behind that meter is mine. The proof the story sells: paying subscribers on zero marketing spend.

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.

The pattern I now trust

Treat every generative step as a stage with explicit inputs, a review state, and a scoped re-roll — and a nondeterministic model becomes something a discipline of control can use.