We will be undergoing planned maintenance on January 16th, 2026 at 1:00pm UTC. Please make sure to save your work.

Inspiration

I built HighFit to make accessible, privacy-friendly workout tracking that works from a phone camera. I wanted a lightweight app that gives instant repetition counts and form feedback without sending video to servers — useful for home workouts, gyms with poor connectivity, or quick on-the-go sessions.

What it does

  • Detects human pose landmarks (33 points) in real time and classifies common exercises (pushup, squat, situp, lunges, deadlift, chest press, shoulder press) plus several yoga poses (Warrior, Tree).
  • Counts repetitions for each exercise and provides real-time confidence feedback (yoga confidence shown with color changes).
  • Lets users build exercise plans, stores history with Room DB, and issues voice notifications at start/completion of sets.

How I built it

  • Language / Platform: Kotlin Android app; project structure and Gradle build are in the app/ folder.

  • Pose detection: MediaPipe / Google ML Kit Pose Landmark Detection (accurate models) for on-device landmark extraction.

  • Camera & UI: CameraX + Camera lifecycle integration, Material UI components, and front/back camera flip.

  • Model training: Transfer learning pipeline executed in Google Colab — collect ~200 images per pose, upload, generate CSVs, split by posture, then place into assets/pose/ for the app to use.

  • Storage: Room database for exercise plans and workout history; MPAndroidChart for visual summaries.

Challenges I ran into

  • Collecting varied, high-quality pose photos for every exercise variation (lighting, viewpoints, body types) to avoid misclassification.
  • Distinguishing exercises with similar poses (e.g., some pull/press movements vs. pushups) — required careful landmark-based feature engineering.
  • Yoga pose accuracy and giving meaningful corrective feedback remained a tougher problem due to subtle alignment differences and dataset scarcity.

Accomplishments that I'm proud of

  • A working, real-time repetition counter using MediaPipe/ML Kit that runs on-device.
  • End-to-end pipeline from data collection (Colab) → lightweight model/CSV assets → app integration with Room DB and voice prompts.

What I learned

  • Practical steps for transfer learning for pose classification and how to export small CSV-based assets that a mobile app can consume.
  • How to integrate CameraX, ML Kit pose detectors, and a smooth UI/UX with persistent local storage (Room).

What's next for HighFit

  • Expand training data diversity and add more exercise variations.
  • Improve yoga pose correction feedback and add guided posture hints.
  • Add multi-person support, speaker / audio cues customization, and optional cloud-sync for cross-device history (opt-in).

Built With

Share this project:

Updates