Own product · Android & iOS
FaceSculpt AI
An AI face-scanning app that measures jawline, symmetry, and posture, then turns the results into a guided facial-fitness routine with an AI coach. Live on Google Play and the App Store, built with React Native, Vision Camera, and RevenueCat subscriptions.

Most "face analysis" apps are a filter with a score attached. You take a selfie, it tells you you're a 7, and there is nothing to do next. FaceSculpt AI was built to answer the question that actually follows: what do I do about it?
It scans your face in real time, measures jawline structure, symmetry, proportions, and head-and-neck posture, then turns that into a guided facial-fitness routine with an AI coach that knows your specific results. It is live on both Google Play and the App Store.
The problem
Three things make an app like this hard, and none of them are the AI.
Bad photos produce bad analysis. If the user is too far away, too close, half-lit, or there are two faces in frame, any measurement you take is noise. Most apps capture anyway and return a confident-sounding number built on nothing.
A score is not a product. Telling someone their jawline is asymmetric without a plan is worse than saying nothing. The value is entirely in what comes after the scan.
Face data is sensitive. Users are handing over an image of their face. That demands real handling — not just a privacy policy page, but decisions in the code about what gets stored, where, and for how long. Apple's review process enforces this, and rightly so.
What I built
A camera that refuses to take a bad photo
Rather than capturing and hoping, the scan screen runs live face detection on the camera feed and validates continuously before it allows a capture. The face status machine has six explicit states:
NO_FACE · MULTIPLE_FACES · TOO_FAR · TOO_CLOSE · FACE_NOT_CLEAR · OK
Distance is measured as the ratio of the detected face box to the frame, held between 0.20 and 0.35. Below that the user is too far for reliable landmarks; above it, the frame crops features needed for proportion measurements. Only in the OK state does the capture proceed, with a circular progress animation guiding the user to hold still.
This one decision improved analysis quality more than any change on the AI side, because it eliminated the entire class of garbage inputs.
From scan to structured measurement
The captured frame is uploaded over an authenticated request and converted into structured facial data: jawline structure, facial symmetry, alignment and proportions, and head and neck posture. The output is a set of metrics the rest of the app can reason about, not an opaque score.
A face gym, not a verdict
The measurements feed a routine system: daily routines, individual exercises, guided sessions, and progress tracking over time with charts. The recommendations focus on jawline definition, neck and posture correction, and facial muscle activation.
An explicit product rule shaped this section: no artificial or misleading face alterations. No "after" filter, no simulated jawline. The app only recommends things a person can actually do with their own muscles, which is the difference between a fitness product and a beauty filter.
An AI coach that has seen your results
The Face Coach is a chat assistant that answers with the user's own scan data in context, so guidance is specific rather than generic advice anyone could search for. It handles workout guidance, jawline questions, and general fitness and wellness queries.
Subscriptions that survive a reinstall
Premium access runs through RevenueCat. The subscription check reads a local cache first for instant UI, then confirms the premium entitlement with RevenueCat and reconciles the two. Users are not left staring at a spinner while a network call decides whether they can open a screen they already paid for.
Technical decisions
React Native and Expo (SDK 54) with the New Architecture and Hermes, TypeScript throughout, one codebase shipping to both stores.
Vision Camera for detection, not a generic camera component. Real-time face detection has to run on frames without dropping the preview to a slideshow. Vision Camera with its face detector plugin was the only combination that held a usable frame rate while validating every frame on mid-range Android hardware.
Authentication via an axios interceptor. Tokens live in AsyncStorage and attach automatically as a bearer header on every request, so no screen has to remember to authenticate an upload. Face images are uploaded over authenticated HTTPS only.
Privacy decisions in the code, not just the policy. No permanent face-image storage on the device, images used only for analysis, and explicit camera and location usage descriptions written for humans rather than to satisfy a form. The app follows GDPR and CCPA principles and passed Apple's privacy review.
Skia and GL for the visual layer, chart rendering for progress over time, and NativeWind for styling — a consistent look across both platforms without maintaining two style systems.
The outcome
FaceSculpt AI is live on Google Play and the App Store, with tablet support, running on Android 8+ and iOS 15.5+.
The part I would point to is not the AI: it is the validation gate on the camera. Deciding what not to capture is what made the analysis trustworthy, and everything downstream — the metrics, the routines, the coach — depends on that one gate holding.
Want an AI-powered mobile product built properly? Let's talk.
Built with