
Inspiration
Makeup tutorials assume a steady hand. Many people don't have one.
- More than 1 in 4 people with essential tremor say it gets in the way of putting on makeup (Gupta et al. 2021).
- 5.33 million women live with Parkinson's (GBD 2021), and 194 million people have arthritis in their hands (Wei et al. 2025).
- A woman with parkinsonism wrote: "if I try to line my lips I wind up with a misshapen mouth" (her blog).
Today's help is tip sheets, and single tools for single steps. Virtual try-on shows a look on your face, but never asks if your hands can do it. We wanted try-on to answer the real question: can I do this look, and what is the easy version of it on me?
We tried Blendolo with my aunt, who has Parkinson's. She said the information and the makeup look were really helpful.
What it does
- Five questions about your hands. Do they shake? Is gripping hard? Do you use one hand? Do your arms tire? Is close-up reading hard? Your answers set your hand profile, and the buttons grow if you need them to.
- A photo, hands free. Prop the phone up. It waits for one face, open eyes and a still second, then takes the photo by itself and talks you through it.
- Eight looks, scored for your hands. Each look gets a grade in plain words: Easy, Some care, Tricky or Hard.
- The classic and the easy version, side by side on your face. Hard steps become easier ones. Winged liquid liner becomes shadow liner. Liquid lipstick becomes a tinted balm you dab on with a finger. Each swap says why it's easier.
- Your signature look. Upload an old photo of a look you loved. Blendolo puts it on today's face, then rebuilds it from easy steps in the same colours.
- Step cards read aloud, one step per screen, and a shopping list tagged by what's easy to open and hold.
- Share the routine with a helper or an occupational therapist.
- A real product. Google sign in, 2 free credits, a Look Pack ($7.99) and a Clinic plan for therapists ($19 a month).
The app follows its own advice: tap targets are 64 to 104 px, a tap counts when you lift your finger, a quick second tap is ignored, and nothing needs a drag, swipe or long press.
How we used the YouCam API (Technological Implementation)
Two YouCam APIs do the heavy lifting, called only from our server:
- Makeup VTO (1 unit) draws the classic look and the easy version on your photo. One call takes the whole look, so a side by side costs 2 units.
- Makeup Transfer (2 units) puts the look from an old photo on today's face.
YouCam draws the makeup. Blendolo decides what to draw. Every easy swap is just a change in the Makeup VTO request:
- Winged liner: pattern
OpenWings2→Smoke19, a soft smudged line. - Liquid matte lipstick: texture
matte→sheer, more see-through, and the lip liner is dropped. - Brow pencil: a new brow
shape→ a browcolorthat tints the brows you already have.

Around the API we built what a live product needs:
- Never pay twice. Each render is saved by photo and look. Viewing it again, or a shaky double tap, costs nothing.
- Never run dry. A daily unit cap, a minimum balance, and example people that never call the API, so judges can test until judging ends.
- Never hang. The worker checks the task at 3, 5, 8, 13 and 21 seconds, then every 20 seconds. A preview takes about 25 seconds, and the page updates by itself.
- Keys stay on the server, and results are copied to our own storage right away, because YouCam's result links expire after 2 hours.
How we built it

The ease engine is plain Ruby. Each of our 40 makeup steps is scored from 0 to 3 on seven things, like precision, closeness to the eye and grip. Your answers turn into a weight for each of those things, and a step's ease is:
$$\text{ease}(\text{step}) = 100 \times \left(1 - \frac{\sum \text{weight} \times \text{difficulty}}{3 \times \sum \text{weight}}\right)$$
A look is only as easy as its hardest step (less a few points for long routines, if your arms tire):
$$\text{ease}(\text{look}) = \min_{\text{step} \,\in\, \text{look}} \text{ease}(\text{step})$$
80 and up is Easy, 60 is Some care, 40 is Tricky, and below that is Hard. Then the planner swaps each hard step for the easier step that suits your hands best.
The rest of the stack:
- Rails 8.1 with Hotwire, Tailwind and Postgres. Jobs, cache and live updates run on Postgres too, so there's no Redis.
- Camera checks run in the browser with MediaPipe Face Landmarker, inside a Web Worker so the camera preview stays smooth.
- Accounts and billing: Google sign in, a credits ledger that can never go below zero, and Dodo Payments behind a swappable billing adapter. Every plan keeps at least half its price after YouCam units and payment fees.
- 563 automated tests, 65 of them in a real browser, including tests that measure every button at phone width.
Challenges we ran into
- No layers. Makeup VTO returns one finished image, so we can't switch off a single step. We draw the whole look twice, classic and easy, and compare the two.
- Old photos fade. Makeup Transfer returns only a picture, so we read the colours ourselves in the browser. Old prints turn red into brick, so we match each colour to the nearest shade in our list.
- Shaky taps. A double tap must never cost twice. Every request is safe to repeat, and the app ignores a second quick tap.
- A laggy camera. Our first camera checks froze the page. Moving them into a Web Worker took the page from 94% busy to about 3%.
- Mascara. We looked hard for an easy version and found none that's honest. So the app says so: "Optional. Skip it on shaky days."
Accomplishments that we're proud of
- The easy version on your own face is the whole point, and two YouCam APIs make it possible.
- An app for shaky hands that follows its own advice on every screen.
- A free path for judges with three example people, and a live path that keeps running through judging.
- A real product with sign in, credits and plans, each keeping at least a 50% margin.
What we learned
- One Makeup VTO call takes a whole look for 1 unit. That made side by side comparison affordable.
- In one study, people with Parkinson's missed more than 1 in 5 taps on targets about 44 px wide, the size most guidelines ask for (Nunes et al. 2016). For shaky hands, that standard is a floor, not a goal.
- Grading by the hardest step matches how people talk: one impossible step makes the whole look impossible.
Potential Impact
The market is already moving. Beauty brands, big and small, are making products for shaky and stiff hands:
- L'Oréal's Lancôme built HAPTA, a lipstick holder that steadies itself for people with limited hand and arm movement. L'Oréal says about 50 million people worldwide have fine motor disabilities (L'Oréal).
- Rare Beauty worked with occupational therapists at the Casa Colina rehab hospital to learn which caps and shapes are easier to open and hold (Rare Beauty).
- Guide Beauty was started by makeup artist Terri Bryant, who has Parkinson's, with tools like a ring grip mascara and a liner wand (The Mighty).
- Tilt Beauty became the first beauty brand with the Arthritis Foundation's Ease of Use Certification in 2025 (Arthritis Foundation).
- Kohl Kreatives makes bendable brushes for people with limited grip (Kohl Kreatives).
But each one fixes one product or one tool. None of them shows a shopper which looks their hands can do, or what the easy version looks like on their own face. Blendolo does, with YouCam.
Who it helps
- Shoppers with tremor, Parkinson's, arthritis, MS or after a stroke. These groups lean towards women and older shoppers, the core of beauty.
- Occupational therapists get a Clinic plan with a kit for each client, ready to share or print.
- Shops and brands get a free ease tags API (
/api/ease_tags) that says which products open with one hand, need no pinch grip, or blend away wobbles. Products like the ones above could show up as the easy swap inside a look the shopper already chose. - YouCam's partners get try-on that works for shoppers who were left out until now.
What's next
- Test with more people with tremor, arthritis, MS and stroke, and with occupational therapists. So far one person with Parkinson's has tried it. This comes first.
- Use YouCam Face Attributes to fit swaps to each face, like no wing for hooded eyes.
- Offer ease tags to shops and adaptive beauty brands as a filter and a data feed.
Try it
- No sign in: open blendolo.dijmo.com/examples, choose Rosa, then open The red lip.
- Your own face: sign in with Google for 2 free credits. For more, buy a Look Pack with Dodo's test card
4242 4242 4242 4242, expiry06/32, CVV123. Nothing is charged. - Demo video: youtu.be/cd1cSQ5E0Ys
- Code: github.com/inventionsbyhamid/blendolo
Example people are AI generated. Ease scores are our own rubric, not a clinical measure. Blendolo is not a medical device.
Built With
- capybara
- cloudflare-r2
- coolify
- docker
- dodo-payments
- fish-audio
- google-oauth
- hotwire
- javascript
- mediapipe
- minitest
- omniauth
- postgresql
- ruby
- ruby-on-rails
- solid-queue
- stimulus
- tailwindcss
- turbo
- web-speech-api
- web-workers
- youcam-api
- youcam-makeup-transfer
- youcam-makeup-vto
