Inspiration
I kept getting no likes on Hinge. My friend and I would send the exact same openers to the exact same people, word for word. He got matches. I got silence. Same texts, different face. So instead of crying about it, we built a machine to tell us exactly how cooked we are.
What it does
OpenBP scans your face through your phone's browser and gives you a score out of 100 and a tier, from SUB5 all the way up to TRUE ADAM. You can save result cards, climb a local leaderboard, and turn any two scans into a 15-second cinematic edit.
The main event is the 1V1 Mog Off. Player 1 scans with the score hidden, passes the phone, then Player 2 scans. A dramatic edit reveals who mogged. Nothing gets saved and nothing gets uploaded, so the evidence of your defeat disappears when you close it.
(The score is a model estimate for entertainment. Bad lighting is a valid excuse.)
How we built it
The frontend is React, TypeScript, and Vite. MediaPipe tracks 478 face landmarks live in the browser and coaches you into a clean shot. The backend is a FastAPI scoring service. Each scan grabs three frames, scores each one, and takes the median, so one blink can't ruin your life. Canvas, CSS animations, and Web Audio power the edits.
Challenges we ran into
- Scores jumped around between frames. The median of three calmed them down.
- Tuning the quality checks so they reject bad angles without also rejecting every human alive.
- Syncing the edit cuts to the beat took way too long.
- Emotionally recovering from our own scans.
Accomplishments that we're proud of
- Real-time face tracking with no app install, just open it in your browser.
- The Mog Off reveal, which has already ended at least one friendship. (Not really. Probably.)
- Shipping something this polished on hackathon sleep.
What we learned
Garbage frames make garbage scores, and good lighting fixes more than you'd think. Also, MediaPipe is goated.
What's next for OpenBP
Online 1V1s so you can mog your friends remotely, shareable edits, more music, and confidence ranges on scores so you can blame the model with math.
Built With
- mediapipe
- ml
- typescript
Log in or sign up for Devpost to join the conversation.