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 flatref_file_idsarray - 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
genderfield 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 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

Log in or sign up for Devpost to join the conversation.