Inspiration

Every friend group has done this: four people chip in for a birthday gift and argue in the chat. Will this lipstick suit her? Gold or silver? Does she even need an eye cream? Nobody buying the gift sees it on her, and nobody has her skin data, so beauty and fashion group gifts are guesswork, and when four people paid, nobody wants to handle the return. I'd already built Chai Pot, a group wallet. Chai Pot Try-On adds the missing piece: her real skin data and her own face in the group decision, before anyone pays.

What it does

  1. Skin AI reads her. One selfie goes through YouCam AI Skin Analysis (8 concerns: hydration, oil, pores, texture, acne, redness, under-eyes, radiance, each with a detection mask) and the AI Facial Color Tones Analyzer (skin, lip, eye, hair colour). We convert her skin colour to CIE Lab and derive her undertone (warm/neutral/cool) and depth (light/medium/deep).
  2. Try gifts on her. Beauty and fashion in one shelf: lipsticks render through AI Makeup VTO (lip_color with shade and texture), jhumkas and hoops through AI Earrings VTO, kurtas and blouses through AI Clothes VTO. Skincare shows the YouCam detection mask for the concern it treats.
  3. Skin-aware match score. Every product gets a 0–100 score with a plain reason: lip shades by Lab contrast against her skin plus undertone agreement; metals by undertone; outfits by undertone and depth; skincare scores higher the lower her Skin AI score ("Skin AI scored under-eyes 62/100, so this targets a real concern").
  4. Vote. Each friend proposes from the shelf (proposing counts as their vote) and can switch votes. Most votes wins; ties go to the better match.
  5. Pool and buy. Closing the vote locks the winner and splits its price equally to the paisa (Chai Pot's split logic). Everyone chips in; when funded, the order is placed. Payments are demo-only in this build.

How I built it

Next.js 16 + TypeScript on Vercel, Upstash Redis. A small server-side YouCam client (lib/youcam.ts): File API upload with presigned PUT, task start, polling until success/error, friendly messages for codes like error_src_face_too_small, and wrappers for skin-analysis, skin-tone-analysis, makeup-vto, 2d-vto/earring and cloth. The key never reaches the browser. YouCam result URLs expire after ~2 hours, so every result image and mask is copied into Redis and served from /api/img/:id. lib/match.ts does the colour science; lib/pot.ts holds the gift-pot rules. 15 unit tests; tsc and next build clean. Demo mode for judges: the demo pot loads real YouCam outputs captured for the demo photo (instant, free). Tick "Call the YouCam API live" or "Re-run Skin AI live" for a fresh real call (daily cap protects free units). New pots always call the API live.

Challenges

Skin Analysis wants the face to fill >60% of the frame while earring and clothes try-ons need ears and shoulders, so the demo uses a close-up crop for Skin AI and the full selfie for try-on. The tone analyzer returns a hex, not advice: converting to Lab (hue angle for undertone, L* for depth) turns "will it show up on her?" into a number with a reason. Expiring result URLs are copied to Redis immediately.

What's next

A private link so the recipient shares her own selfie, real retailer catalogs with shade hex codes, PayPal checkout for the pooled payment, and Look VTO for full makeup looks.

What's new vs. Chai Pot

Chai Pot (Oct 2026) is a group wallet. Everything YouCam-related was built during the submission period (31 Oct – 2 Nov 2026) in a new tryon/ app: the YouCam client, Skin AI profile, match engine, try-on shelf, voting and the gift-pot flow. Reused: the paisa-exact split, the pot idea, the audit log and the look.

The demo face is AI-generated (fictional person); all products and brands are fictional with generated photos.

Built With

Share this project:

Updates

Submission history