Inspiration

Our team bonded over a love of pop culture icons and the energy their music brings into everyday life. We were particularly inspired by how music can motivate people to move and push past their limits. We thought — what if your workout buddy was your favorite pop star?

What it does

Pop Off! is your AI-powered pop star fitness partner. Here’s how it works:

Celebrity Matching: Snap a selfie, and using OpenCV + face embedding analysis, get matched to the pop star you most resemble.

Workout Generator: Choose your intensity (LOW, MED, HIGH). We then select a song from that artist and tailor a workout to match the song's BPM and style.

Rep Counter: Your workout is tracked using MediaPipe pose detection via your webcam, counting reps in real-time.

Celebrity Feedback: After your set, your pop star twin delivers personalized encouragement (or a fun roast!).

How we built it

We structured our project into three core modules:

Celebrity Matching Engine We used OpenCV for image processing and facial detection, creating facial embeddings which we compared using cosine similarity to match users with pop stars. All facial data was preprocessed and reduced using PCA for faster similarity search.

Workout Generator + Music Sync Once the match is found, users select their workout intensity (LOW, MED, or HIGH). Using the Spotify Web API, we fetched the BPM and metadata of a song by the matched artist. This BPM informed both the workout pacing and exercise selection. Workout routines were dynamically generated and customized based on BPM × intensity mappings.

Repetition Counter + Feedback Engine We integrated MediaPipe for pose estimation and joint tracking to detect and count reps. Using joint angles (like elbow and knee bends) and frame-based detection logic, reps were counted in real-time with error smoothing to improve accuracy. After a session, the app generates custom feedback that mimics your matched pop star's voice and personality (text-based for now).

Frontend + Integration The frontend was built using React + Vite for rapid development and snappy page loads. Styling and dynamic UI updates were handled using CSS with some custom animations for flair. The backend was built with FastAPI, and we served it using Uvicorn. WebSockets allowed us to stream real-time pose estimation data and rep counts between the frontend and backend for a seamless experience.

Challenges we ran into

Real-Time Communication: Setting up WebSocket connections for rep tracking required careful state management and error handling between FastAPI and React.

Asynchronous Data Flow: Managing async image uploads, Spotify API calls, and pose tracking concurrently without blocking UI updates was a challenge.

MediaPipe Tuning: Filtering out noisy pose data in real-time required tuning thresholds, smoothing predictions, and managing computational load in the browser.

Frontend Sync: Ensuring that workouts, song playback, and rep counting stayed in sync across devices and states took coordination between modules.

Accomplishments that we're proud of

  • A fully functioning pipeline from selfie to song-based sweat session.

  • Real-time pose tracking, rep counting, and music-synced workout generation — integrated into a clean and responsive UI.

  • Creative use of popular tech (Spotify, OpenCV, MediaPipe) to solve a fun and engaging real-world problem.

  • A team workflow that balanced fun, function, and rapid development under a tight deadline.

What we learned

  • The power of FastAPI and WebSockets for building reactive, real-time apps.

  • How to modularize a full-stack project and iterate quickly with React + Vite.

  • Leveraging MediaPipe and OpenCV for vision-based interaction.

  • Clear commenting, git hygiene, and team-wide communication are crucial when integrating multiple systems and APIs under time pressure.

What's next for Pop Off!

We’re excited to keep evolving Pop Off! into an even more personalized and powerful fitness experience. Here’s what we have in the pipeline:

More Artists, More Songs: Expand the celebrity database for more accurate and diverse matches.

Workout Types: Add user-selectable types like cardio, HIIT, or core-focused routines.

Customized Limitations: Add options to avoid strain-prone zones (e.g., skip lower back exercises).

Posture Correction: Provide more advanced posture guidance based on pose analysis and error detection.

Health Tracking: Monitor weight, calories burned, and progress over time.

Celebrity Voiceovers: Use TTS or voice-cloned samples to let your matched celebrity actually talk to you.

Built With

Share this project:

Updates