Try the free demo (no photo needed) · Fitter desk · Evidence · For retailers · Code (MIT)

Choose your wig while you still have your hair

About two in three people on chemotherapy lose their hair (JAAD), usually two to three weeks after the first cycle (ACS, CRUK). Cancer charities say to choose a wig before that, while a fitter can still see your colour and style. But a worn wig can rarely be returned, so many people end up buying at the worst moment, matching from memory.

Anjali at week 4: drag the mirror and YouCam's Hairstyle Try-On puts her own hair back, from the photo she kept

Hairloom moves the choosing earlier, and puts it on your own face:

  1. Keep a hair passport. Three photos while your hair is still yours, read by YouCam (curl, frizz, length, face shape and brows), plus your head size for the cap and a hair colour measured on the device and matched to a wig shade code.
  2. Try wigs before and after. At week four, YouCam's Hairstyle Try-On puts your own hair back, using the kept photo as the reference. Then every wig in the boutique, on your face, ranked by how close it is to the hair you kept, and recoloured to your shade.
  3. Brows and headwear. Brows often thin weeks later, so Makeup Try-On rebuilds them in the shape you kept. Headwear is tried on with the face kept exactly as it is.
  4. One sealed link to your fitter. Encrypted in the browser, with the key only in the link, so our server can't read it. The fitter sees the passport, the shortlist on your face, and a pull list in your shade with the right cap.

The fitter's brief, decrypted in the fitter's browser: passport, cap size, and what to pull from stock in her shade

It also covers alopecia areata (a monthly photo record and a topper-or-wig plan), pattern thinning (volume and clip-in previews on a photo of thinning hair), men, and how wigs are paid for in India, the UK and the US.

The 11 YouCam APIs, and what each does here

Run counts are from the evidence page, which lists every task we kept: 246 runs, 235 succeeded.

YouCam API Job in Hairloom Runs
AI Hairstyle Virtual Try-On Every wig on your week-4 photo; your own hair back, from the kept photo 95/95 (18/18 of them on real photos)
AI Hair Color Virtual Try-On The wig in your measured shade code 12/12
AI Hair Type Detection Curl pattern for the passport (three photos) 5/5
AI Hair Frizziness Detection Frizz, from the same three photos 5/6
AI Hair Length Detection Length, which ranks wigs 5/5 generated, 2/5 real
AI Face Attribute & Ratio Analyzer Face shape and brow shape and colour 0/5 real at default strictness, 5/5 at "flexible"
AI Makeup Virtual Try-On Rebuilt brows in the kept shape and shade 9/9
AI Image Generator (image to image) Headwear that keeps the face; the demo's week-4 photos 45/45
AI Hair Volume Virtual Try-On Fuller hair on a photo of thinning hair 9/9
AI Hair Extension Virtual Try-On Clip-in length 8/8
AI Skin Analysis An optional cosmetic skin check once a treatment cycle 3/3

For a wig fitter's AI assistant: an MCP server

https://hairloom-studio.vercel.app/api/mcp (Streamable HTTP) has six tools. match_wigs ranks a boutique's own stock against a client's passport and returns a pull list in their shade; the others give shade codes, the demo stock, a demo try-on, dates around treatment and the unit cost of a fitting. It never sees client photos.

What we measured, including what failed

  • Wig try-on on real photographs: 18 of 18 succeeded, including 8 of 8 on shaved heads. We publish the results, not the pictures, out of respect for the people photographed (nine Unsplash portraits, credited in NOTICE).
  • Face reading: 0 of 5 everyday portraits read at the default angle strictness, and 5 of 5 at face_angle_strictness_level: "flexible".
  • Hair length: 2 of 5 on slightly turned portraits.
  • Beyond the hair: on one bearded man, both wig try-ons removed the beard. On a black-and-white portrait, the try-ons came back in colour.
  • Colour: measured from product photos, 5 of 16 wigs came back as their listed shade code, and the measurement reads darker. So stock shows the listed code, measurement only ranks closeness, and the fitter confirms against swatches.
  • Volume: the volume templates fill out the lengths and sides, but not a thin crown. The studio says so, and sends the client to a fitter for a topper.

What we learned about the YouCam API, and what we'd ask for

  • Hair type and frizz need three same-size photos in one order (front, face to the right of the image, then to the left). We order the side photos from face landmarks, so a swapped upload still reads. Ask: name the photo that failed, or accept any order.
  • Hairstyle try-on works on a bald head. The docs list error_hair_too_short, but every bald and shaved source succeeded. Ask: document it; it opens a medical market.
  • Hair colour comes back as a category label, not a measurement, so we measure the hair pixels ourselves. Ask: a measured hair colour with a confidence, as eyebrow colour already is.
  • Hat and scarf try-on restyle the whole person, so headwear uses image-to-image with an instruction to keep the face. Ask: a keep-identity flag.
  • The volume and extension templates are all in the "Female" category. Ask: men's templates and a crown topper template.

Who pays

The boutique ROI model on /business, every assumption labelled

  • Patients: never.
  • Wig boutiques: a draft ₹399 + GST per fitter brief. A full fitting is 41 YouCam units ($1.97–2.26). At the labelled defaults, one extra wig sold a month covers the briefs.
  • Wig brands: embed a free-per-view widget, and pay ₹99 per shop session, capped at 10 units.
  • Hospitals, wig banks and CSR sponsors: ₹150 per sponsored passport, so 500 patients cost ₹75,000. Health care is an eligible CSR activity under section 135 of India's Companies Act.
  • Pilot: eight weeks with one oncology wig bank in India. It succeeds if 60% of patients keep a passport before hair loss, fitting visits fall by 25%, and 80% of wigs are still worn at four weeks.

How we built it

Architecture: photos stored only on the client's device; the YouCam key, whitelist and unit guard on the server; sealed links in storage; an MCP server for fitters

Next.js 15 on Vercel. The YouCam key stays on the server, a whitelist builds every request body, and task handles are HMAC-signed. Units are reserved before a task and refunded on failure, and a daily cap, a judge allowance and a call limiter protect the shared balance. Every task is deleted at YouCam once the result is fetched, on tab close too, with a daily sweep for anything left over. Photos and the passport stay in IndexedDB, hair colour is measured on the device (MediaPipe hair segmentation, CIEDE2000), and fitter links are sealed with AES-GCM in the browser. 39 tests, green CI.

Built during the submission period (Oct 2026). The code is MIT.

Built With

Share this project:

Updates

Submission history