Check a foundation

Fixture mode: this demo runs on recorded study data, not a live photo of you. No API call is made and no units are spent. Every face, shade and number on this page is labelled demo data, and the receipt below says so again.

Pick one of the six study faces, choose how the photo is framed, and optionally list a foundation bottle you already own. The engine then checks the framing, checks your shelf first, ranks the fixture catalog by colour distance, and prints a receipt: BUY, SHADE-RISK, NO, or CAN'T TELL, with its working shown.

1. Pick a study face (fixture data)
2. Choose the photo framing

Face fills 68% of the photo width (680 of 1000 px).

Capture gate: no framing problems found. The receipt will show the gate's own line for this photo.

3. A bottle you already own (optional)

The owned-bottle check runs first and costs nothing. If a bottle on your shelf already matches the measured tone, the answer is Don't buy.

Live check

Judges with the event passcode can run the same check on a real photo below. It makes one live Skin Tone call, spends real units under server-side caps, and prints a receipt labelled LIVE from the same engine, ranked against the licensed shade catalog (The Pudding foundation shades dataset, 2018 swatches, MIT License). A BUY receipt also renders a labelled try-on preview of the winning shade for 1 extra unit; the preview never affects the verdict.

Live check, for judges

With the event passcode, this panel runs ONE real Skin Tone reading on a photo you upload, through the same engine as fixture mode, and spends real API units. On a BUY it also renders a labelled try-on preview of the winning shade for 1 extra unit; the preview is a picture only and never affects the verdict. Spend is capped on the server per session and in total; a reading that times out is collected later, never restarted, so it can never charge twice. Without the passcode, this panel does not start and fixture mode above is the whole demo.

Live mode is locked until the judge passcode is entered. It unlocks as you type, there is no separate unlock step.