Inspiration
Beauty is deeply cultural. A red lip in Tokyo means something entirely different from a red lip in Mumbai or Paris. Yet most AR beauty apps flatten these differences into a single, Western-centric aesthetic. We wanted to build something that celebrates cultural diversity in beauty — an app that lets anyone explore and experience the makeup traditions of different cultures through AI.
The idea came from a simple question: What if you could see yourself through the lens of another culture's beauty ideals?
What it does
Global Beauty Atlas lets users upload a selfie and instantly see themselves transformed into five distinct cultural makeup styles:
- Geisha Elegance (Japan) — porcelain skin, vermilion lip, minimalist eye
- Bridal Opulence (India) — gold eyeshadow, bold liner, deep red lip
- Arabian Glamour (Middle East) — full-rim smoky eye, sculpted contour, matte lip
- Tang Dynasty Grace (China) — luminous skin, phoenix-eye liner, peach blossom blush
- Parisian Chic (France) — bare-skin base, dusty rose lip, undone elegance
Each style is powered by the YouCam S2S API for real-time AI makeup rendering. The app includes an interactive before/after comparison slider with a smooth wipe-reveal animation, and cultural background information explaining the philosophy and history behind each beauty tradition.
How we built it
- Frontend: Next.js 14 (App Router), React 18, TypeScript, Tailwind CSS
- State Management: Zustand
- AI/AR Engine: Perfect Corp YouCam S2S API — handles face detection, makeup effect rendering, and result generation
- Image Processing: Client-side canvas-based resizing to compress uploads below API limits
- Animations: CSS keyframe animations for the scanning effect, comparison slider, and page transitions
The architecture is straightforward: upload an image via the YouCam file API → create a makeup-VTO task with effects tailored to each style → poll for the result → display with a comparison slider.
Challenges we ran into
API parameter discovery was the hardest part. The YouCam S2S API has strict per-category parameter schemas, but the documentation is sparse. Every category (skin_smooth, lip_color, eye_liner, eyebrows, foundation) has different required fields, pattern names, and value ranges. We went through dozens of 400-error iterations:
eye_linerneededpattern.type: "shape"withcolorUnderEyeIntensityandcoverageLevel— fields that don't exist in the general schemaeyebrowsrequired{ type: "shape", curvature, thickness, definition }in addition to the pattern name- Pattern names like
3colors5,Drama1,HighArch1had to be discovered by fetching the pattern catalog atplugins-media.makeupar.com
Image size limits were another hurdle. The API rejects images larger than ~10MB base64, so we built a client-side resize pipeline that scales images to fit within 1920×1920 before upload.
Balancing visual impact vs. realism was a design challenge. Adding too many effect categories (skin_smooth + foundation) made all styles look uniformly airbrushed. We learned to be selective — fewer categories with more intentional parameter variation produced better results.
Accomplishments that we're proud of
- Culturally authentic makeup parameters. Every color, pattern, and intensity value is researched — from the vermilion lip of Tang Dynasty court makeup to the bold full-rim kohl liner of Arabian beauty traditions
- Smooth reveal animation. The comparison slider with a 900ms ease-out wipe transition makes the AI transformation feel magical
- Graceful error handling. Clear user feedback at every stage — upload, processing, and result — with no silent failures
- TypeScript coverage. Every API interface, store, and component is fully typed, which caught countless parameter bugs before they reached the API
What we learned
Building on top of a semi-documented API teaches you a lot about defensive integration design. Key takeaways:
- Read error messages carefully. The YouCam API returns detailed multi-path validation errors — each "or" clause is a hint about what format it expects for a particular category
- Less is more with AI effects. Piling on categories doesn't make the output better. Thoughtful parameter selection matters more than quantity
- Cultural representation requires research. You can't just tweak colors — each beauty tradition has a philosophy, a history, and specific techniques that inform the parameters
What's next for Global Beauty Atlas
- More styles: Korean "Glass Skin," Nigerian gele-inspired looks, Brazilian beach glam
- Skin tone adaptation: Automatically adjust foundation colors based on the user's detected skin tone
- AI beauty analysis: Use the skin analysis endpoint to recommend the most flattering style
- Social sharing: Side-by-side comparison cards optimized for Instagram/TikTok
- Multi-language support: Cultural background text in English, Chinese, Arabic, Japanese, French, and Hindi
Built With
- next.js
- perfectcrop
Log in or sign up for Devpost to join the conversation.