Inspiration

Fashion campaigns create desire through movement, styling, pacing, and storytelling, but shopping usually collapses that experience into isolated product tiles. We built MIRRA to let shoppers personally explore the campaign itself—without taking creative control away from the brand.

What it does

MIRRA turns a short fashion campaign into an interactive personal mirror.

Before publishing, the brand uploads its campaign, products, approved try-on references, and creative direction. MIRRA combines deterministic FFmpeg/FFprobe timing with a semantic-analysis pipeline and brand confirmation. It separates temporal camera shots (campaign_segments) from unique outfit identities (campaign_looks), so front, side, detail, and repeated shots of the same outfit can share one normalized look.

A shopper adds one validated photo and opens Mirror Mode: the original campaign remains on one side while real YouCam Clothes V3 results appear progressively on the other. Playback, seeking, and look selection stay synchronized. The current look is prioritized, the next look is prefetched, repeated appearances reuse the same result, and completed requests are cached.

Remix remains brand-controlled. Shoppers can only choose approved alternative products or add constrained text that maps to permitted options. Each visual result—including Remix—is generated by a real YouCam task, persisted privately, and shown with its provider provenance.

How we built it

MIRRA uses Next.js and TypeScript for the editorial brand experience and cinematic 50/50 Mirror interface; FastAPI for authenticated APIs and workflow orchestration; Supabase for authentication, PostgreSQL, private storage, and immutable campaign manifests; and an asynchronous worker for provider tasks.

FFprobe and FFmpeg handle deterministic video mechanics such as duration, frame extraction, encoding, and timing candidates. Gemini is integrated as a single schema-constrained semantic campaign-analysis path, with a resilient brand-review fallback when provider quota is unavailable. YouCam Clothes V3 is the indispensable personalization engine that produces every shopper-facing original and remixed garment result.

YouCam tasks are durable and non-blocking: MIRRA stores the provider task ID, state, attempts, and next polling time, then progressively reveals completed looks rather than freezing the whole experience.

Challenges we ran into

The hardest modeling problem was recognizing that a camera shot is not necessarily a new fashion look. Campaigns contain cuts, close-ups, recurring shots, and changing angles, so we designed separate segment and look entities with many temporal segments mapping to one normalized outfit identity.

YouCam generation is asynchronous and takes real time. Instead of hiding that limitation, we designed priority scheduling, progressive results, prefetching, caching, idempotency, and polished preparation states.

Gemini quota limits also affected live semantic-analysis verification. The production path remains integrated, but the current demo truthfully retains deterministic preprocessing and brand confirmation rather than fabricating an AI success.

Accomplishments that we're proud of

We completed a real end-to-end YouCam Clothes V3 vertical slice: approved campaign references and a shopper photo produce real provider tasks, private persisted outputs, progressive synchronized results, and a real brand-approved Remix.

We also built immutable publishing, normalized unique looks across temporal segments, current-look prioritization, repeated-look reuse, synchronized seeking, saved Mirrors, and a deliberately minimal interface that keeps the campaign and the shopper equally prominent.

What we learned

Campaign-first virtual try-on is fundamentally different from adding VTO to a product page. The difficult part is preserving time, story, brand intent, and outfit identity while personalization arrives asynchronously.

We learned that provider latency can become a product-design input: prioritization and progressive reveal make the experience feel responsive without presenting fake results. We also learned that human brand confirmation is a valuable control layer, not merely an AI fallback.

What's next for Mirra

Next we would deploy the durable web and worker services, validate more garment and reference combinations, add observability and provider-latency analytics, broaden the public campaign and collection experience, and run retailer pilots.

The long-term opportunity is a campaign distribution format in which every published fashion story can become personally explorable while the brand retains control over products, styling, Remix permissions, and visual quality.

Built With

Share this project:

Updates