Inspiration

Independent jewelry and apparel sellers are shut out of the two things that actually move product online: professional photography and virtual try-on. A single-day studio shoot for a small apparel brand runs \$1,000–\$5,000 just for the photographer, and a full campaign (models, styling, retouching) lands at \$14,000–\$22,000 for maybe 30–60 finished images — \$35–\$165 per photo. Meanwhile 35% of jewelry retail is still independent (down from 42% in 2020, per IBISWorld) and losing ground to brands that can afford this kind of content. We wanted to know: what if the entire content pipeline — from CAD design to a finished Reel — used the same AI infrastructure the big players use, packaged for a one-person shop?

What it does

Modelier is three studios in one dashboard:

  • Jewelry CAD Studio — real parametric 3D design (Replicad/OpenCASCADE) for rings, necklaces, earrings, bracelets, and watches, exportable as manufacturing-ready STL/STEP files
  • AI Model Studio — every YouCam capability we could integrate: apparel and jewelry virtual try-on across an inclusive cast of body types and skin tones, makeup VTO, hair/beard styling, skin and body retouching, avatar/headshot generation, and a full photo-editing suite (background removal, object removal, colorize, image extender)
  • Video Studio — a browser-based WebCodecs timeline editor with AI auto-assembly, captions, color grading, and now (new this round) video enhancement, face swap, background replace, and style transfer

We used it, live, to build a complete fictional brand campaign end-to-end: 6 real CAD jewelry pieces, ~70 real AI generations, 14 finished marketing designs, and 2 video reels — all still sitting in the dashboard, nothing staged.

How we built it

Next.js 14 + Prisma + Supabase, with fabric.js/Liveblocks for the canvas, Replicad/OpenCASCADE (WASM, in a Web Worker) for jewelry CAD, and WebCodecs for client-side video. YouCam integration is a hand-rolled TypeScript client (no SDK) against the raw S2S REST API — 52 endpoints wired up in total by the end of this session, each with its own request/response wrapper.

Challenges we faced

Almost every challenge came from PerfectCorp's own documentation not matching its live API — and the only way to catch that was to actually run every endpoint for real, not just read the docs or type-check the code. Across this project we found and fixed 12 real, previously-shipped bugs, including:

  • Two endpoints (Fitzpatrick Skin Type, Nail VTO) silently missing a required top-level field the docs never flagged as load-bearing
  • Face Swap's documented schema (file_sets/actions) turning out to belong to a different endpoint entirely — the real shape is a flat ref_file_ids array
  • Face Analyzer's entire documented request schema being wrong; we only found the real one by sending a deliberately broken request and reading what the API's own error message said it wanted
  • All four style-accessory endpoints (Shoes/Hat/Bag/Scarf) requiring a gender field the docs implied was shoes-only, and each having a completely different style-preset enum from the other three

The technical wall we hit hardest: AI-generated reference photos, however photorealistic to a human eye, sometimes carry subtle geometric asymmetry that trips PerfectCorp's stricter face-angle validators — a synthetic-face-vs-real-camera-photo gap that's invisible until you're running dozens of calls end-to-end.

Built with

Next.js 14, TypeScript, Prisma, Supabase (Postgres + Storage), NextAuth, Liveblocks, fabric.js, Replicad + OpenCASCADE.js (WASM), Three.js, WebCodecs, mediabunny, Zustand + Zundo, Tailwind CSS, Radix UI, PerfectCorp YouCam S2S API, Anthropic/OpenAI/Gemini (assistant backends)

Demo account (for judges)

A real account with a full, in-use "Blush Riot" brand workspace (Jewelry CAD designs, AI Model Studio generations, canvas Projects, Video Studio projects — see hackathon.md for the full writeup) is already seeded and ready to explore, no setup required beyond running the app:

Email [email protected]
Password L8sBzCt96XNiQSsyKrpe

Log in with these at /login after starting the app (see Setup below) to see everything already built, rather than an empty new account.

Built With

  • anthropic/openai/gemini
  • fabric.js
  • liveblocks
  • next.js-14
  • nextauth
  • perfectcorp-youcam-s2s-api
  • prisma
  • radix-ui
  • replicad-+-opencascade.js-(wasm)
  • supabase-(postgres-+-storage)
  • tailwind-css
  • three.js
  • typescript
  • webcodecs
  • zustand-+-zundo
Share this project:

Updates

Submission history