Inspiration

BreakoutGate started from a simple problem. People with acne-prone or sensitive skin still need makeup for interviews, weddings, dates, presentations, and everyday life. On a bad skin day, choosing between foundations or concealers can become stressful. Most beauty tools either analyze your skin or let you try makeup virtually, but they do not help you decide which product is worth trying first.

We wanted to connect those two moments. Instead of showing another skin score, BreakoutGate turns current skin signals into an actual makeup decision.

What it does

BreakoutGate helps a user compare makeup products based on their current skin, personal preferences, and product information.

The user provides a selfie, and YouCam Skin Analysis gives us current skin signals such as redness, texture, hydration, oiliness, and acne-related signals. The user can also tell BreakoutGate things like their preferred finish, required coverage, or ingredients and properties they want to avoid.

BreakoutGate then compares real makeup products using source-backed product information. A deterministic decision engine checks hard constraints first, ranks the remaining products, handles missing information, and can refuse to recommend anything if the evidence is not strong enough.

After choosing the best candidate, BreakoutGate uses YouCam Makeup VTO so the user can actually preview the selected look.

Every decision also produces a Decision Receipt that explains what information was used, what was unknown, which rules were triggered, and why one product ranked above another.

How we built itWe built BreakoutGate as a backend-first system.

YouCam Skin Analysis acts as the real skin input layer. Its provider response is validated and converted into our own normalized SkinState format so the rest of the application does not depend directly on YouCam's raw response structure.

We built a separate product evidence layer containing real product information with source and provenance data. User preferences and sensitivities are stored separately so the system always knows what came from the user, what came from YouCam, and what came from product sources.

The decision engine itself is deterministic. It first applies hard constraints, then scores eligible products using factors such as coverage preference, finish preference, current skin context, evidence completeness, and missing information.

We also added uncertainty handling and abstention. If the system does not know enough, it can say that instead of making up an answer.

Finally, the selected product is connected to YouCam Makeup VTO for visual preview. The complete decision is stored in a versioned Decision Receipt with reason codes, evidence references, and an integrity hash.

Challenges we ran into

One of the biggest challenges was making sure BreakoutGate did not turn into a medical recommendation system. Skin analysis can easily lead to language that sounds more certain than the evidence actually supports. We had to carefully separate skin signals from diagnosis and avoid claims such as saying a product is guaranteed to be safe for acne.

Another challenge was missing product information. If we cannot confirm something like fragrance status, the easiest solution would be to assume it is fine. We deliberately avoided that. Unknown information stays unknown and lowers confidence.

Working with asynchronous YouCam API tasks also required proper upload handling, polling, timeouts, retries, and error states.

The biggest engineering challenge was keeping every part of the decision reproducible. We did not want an LLM deciding which product wins, because the same input should always produce the same result.

Accomplishments that we're proud of

We are especially proud that BreakoutGate is not simply a wrapper around one AI API.

We connected real skin analysis, real product evidence, user constraints, deterministic decision logic, uncertainty handling, and virtual makeup try-on into one complete decision pipeline.

We also built the system so an ineligible product can never win simply because it scores well somewhere else.

Missing information cannot silently become a positive signal.

The engine can abstain when the evidence is not strong enough.

Every recommendation can be inspected through a Decision Receipt.

Most importantly, YouCam is not being used just for a visual effect. Skin Analysis actually changes the product decision, and Makeup VTO then becomes the visual proof of that decision.

What we learned

We learned that responsible AI is often about knowing when not to make a claim.

A system can become much more trustworthy simply by separating facts, user preferences, measured signals, assumptions, and unknown information.

We also learned that deterministic logic can work very well alongside AI APIs. YouCam provides powerful perception and visualization, while BreakoutGate adds a transparent decision layer around those capabilities.

Another important lesson was that more features do not automatically make a better product. Focusing on one very specific moment made BreakoutGate much clearer and stronger.

What's next for BreakoutGate

The next step is expanding BreakoutGate from a focused prototype into a deeper retail decision platform.

We want to support larger product catalogs, stronger product-data integrations, more complexion makeup categories, better shade mapping, and direct retailer integrations.

We also want to run controlled user studies to improve and validate the decision rules instead of pretending the current heuristics are medically proven.

Long term, BreakoutGate could become a decision layer that beauty retailers place between product discovery and virtual try-on.

The goal stays the same:

help people make a better makeup decision before the product ever reaches their face.

Built With

  • decisionengine
  • deterministicengine
  • makeupvto
  • nextjs
  • node.js
  • restapi
  • skinanalysis
  • typescript
  • vitest
  • youcamapi
  • zod
Share this project:

Updates

Submission history