Skip to content

ehsanwwe/OpenMakeupSDK

Repository files navigation

💄 OpenMakeupSDK

Open-source, real-time AR virtual makeup & face reshape SDK for the web

The open alternative to closed commercial AR beauty SDKs — runs entirely in the browser, no backend, no per-call fees, no licensing lock-in.


npm version License: MIT PRs Welcome GitHub issues GitHub stars

Three.js WebGL MediaPipe GLSL Runs in No backend


📹 Live demo coming soon — point your webcam, pick a look, reshape your face in real time.

✨ Why OpenMakeupSDK?

Commercial AR beauty SDKs (YouCam / Perfect Corp, Banuba, ModiFace…) are powerful — but they're closed-source, licensed, and often metered per call. OpenMakeupSDK gives you the same core experience as a free, MIT-licensed package you can read, fork, self-host, and ship without asking anyone for permission.

It's a real-time AR makeup mirror and a beauty face-reshape engine, built on MediaPipe face tracking + custom WebGL/GLSL shaders, running fully client-side.

Built over years of production AR work — and battle-tested before most of today's web makeup SDKs existed.


🚀 Features

💋 Virtual makeup

  • Real-time face tracking — 468-point MediaPipe FaceMesh, runs live on a webcam.
  • 6 makeup categoriesfoundation, blush, lipstick, eyeliner, mascara, eyeshadow.
  • 73 ready-to-use pattern textures out of the box.
  • Material finishesmatte, shimmer, glossy, glitter (where the category supports it).
  • Custom GLSL shaders for believable blending, glossiness, glitter and skin response — not flat overlays.
  • Smart defaults — every parameter has one. No color on eyeliner? It's black. No color on lipstick? Plug in your own AI color provider.
  • Pluggable colors & patterns — any hex color, pattern by simple number or by id.

🧬 Face reshape (morph / blend shapes)

Project the live camera image onto a morphable 3D face mesh, so the user's actual face reshapes in real time:

Control What it does
browLift lift the outer brow corner
lipPlump / lipPlump2 plump the lips (filler look)
noseSlim narrow the nose
noseBridge reduce the nose-bridge prominence between the eyes
cheeks fuller cheeks
jawAngle define the jaw angle
jawWide move the jaw angle away from the ear

…all driven by blend shapes baked into the included 3D rig — and the Blender source is shipped, so you can author your own.

🧰 Developer experience

  • Drop-in, framework-agnostic — plain ES modules, works with any stack.
  • Zero backend — everything runs client-side.
  • Config-driven assets — move the assets/ folder anywhere; one base URL updates every path.
  • No vendor lock-in — MIT, yours to ship.

⚡ Quick start

npm install open-makeup-sdk three @mediapipe/face_mesh @mediapipe/camera_utils
import { OpenMakeup } from 'open-makeup-sdk';

const mk = new OpenMakeup({
  video:        document.querySelector('#camera'),
  renderCanvas: document.querySelector('#output'),
  assetsBaseUrl: '/assets',
});

await mk.init();

// makeup
mk.apply('lipstick',  { color: '#b4002e', finish: 'glossy' });
mk.apply('eyeshadow', { color: '#7a3b9d', pattern: 3, finish: 'glitter' });
mk.apply('eyeliner',  { pattern: 1 });          // defaults to black

// face reshape
mk.morph({ noseSlim: 0.6, cheeks: 0.3, jawWide: 0.4, browLift: 0.5 });

mk.clearAll();   // remove makeup
mk.resetMorph(); // reset the face shape

MediaPipe's runtime can be loaded from npm or a CDN <script> tag — your choice.


🆚 OpenMakeupSDK vs. commercial SDKs

OpenMakeupSDK Commercial AR beauty SDKs
Price Free Paid license / per-call fees
Source Fully open (MIT) Closed
Runs in the browser
Backend required None Often
Self-hostable
Editable shaders & 3D rig
Face reshape (morph) Usually premium
Lock-in None Yes

🗺️ Roadmap

  • Real-time makeup engine (6 categories, finishes, 73 patterns)
  • Public OpenMakeup API with smart defaults
  • Face reshape via blend shapes
  • Interactive playground + hosted live demo
  • TypeScript types
  • npm release v1.0

🤝 Let's build something together

I'm Ehsan — I've spent years building real-time AR, 3D rendering, SLAM, computer-vision and AI systems, end to end. OpenMakeupSDK is a slice of that work, opened up.

If this project resonates with you:

  • 🧑‍💻 Hiring for AR / WebGL / 3D / computer-vision work? I'm open to remote contract & freelance projects — let's talk.
  • 🧩 Integrating this into your product, or want a custom feature? Reach out.
  • 🛠️ Contributing? PRs and issues are very welcome.

Get in touch

⭐ If OpenMakeupSDK saved you a five-figure SDK license, drop it a star — it genuinely helps.

Star History Chart


📄 License

MIT © Ehsan Moradi — use it, ship it, build on it.

About

Open-source AR makeup try-on for the web: foundation, lipstick, blush, eyeliner, mascara, eyeshadow + face reshaping — MediaPipe + WebGL, no SDK lock-in.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors