Inspiration

Working out from home became a necessity for millions during the pandemic, but it brought along a major downside: the lack of professional guidance. Training with incorrect posture not only slows down fitness progress but also drastically increases the risk of severe joint and muscle injuries. Personal trainers are expensive, and standard workout videos can’t watch you back.

We wanted to build a "smart mirror" experience that fits right inside your pocket—a privacy-first, interactive, and completely free AI coach that watches you exercise, corrects your posture in real-time, and makes daily consistency feel like playing a game.


What it does

FormCheck-AI is a native Android application that serves as an on-device AI personal trainer.

  • Real-time AI Form Analysis: Uses your device's front-facing camera to track your posture. If your hips sag during a plank, your elbows flare during a push-up, or your knees bend incorrectly during a lunge, the app instantly lets you know via audio alerts and visual skeleton overlays.
  • Smart Rep Counter: Automatically detects, counts, and scores each repetition based on form quality, sounding audio cues when target depths are reached.
  • Goal Configuration & Playlists: Features a library of 20+ bodyweight exercises divided into Upper, Lower, Core, and Warmup focus zones. Users can customize rep/hold targets per exercise or start continuous, sequential category playlists.
  • Gamified Motivation: Tracks your Level, XP, and badges (like Form Master or Perfect Rep). Features an always-on daily Streak System and a weekly calendar visualizer to build healthy habits.
  • Analytics Insights: Charts your combined historical form scores to visually show how your physical execution has improved over time.

How we built it

We developed FormCheck-AI natively for Android using a modern Kotlin stack:

  • UI/UX Framework: Built entirely using Jetpack Compose following premium design principles—sleek dark cards, smooth gradients, and micro-interactions.
  • On-Device Computer Vision: Integrated Google ML Kit's Accurate Pose Detection API to run deep-learning convolutional neural networks on-device. This tracks 33 high-accuracy 3D coordinates ($x, y, z$) of the human body locally at 30+ FPS.
  • Postural Logic & Trigonometry: Developed custom mathematical analyzers (e.g. SquatAnalyzer, PushupAnalyzer) that calculate dynamic joint angles and plane alignments to judge execution quality.
  • Local Data & State: Managed historical workout sessions and user metrics using a Room SQLite Database and Kotlin Coroutines/Flows.
  • Audio Engine: Utilized Android's native TextToSpeech (TTS) and ToneGenerators to provide immediate voice feedback without breaking your flow.

Challenges we ran into

  • On-Device Real-time Constraints: Running deep learning models in real-time on mobile devices is computationally heavy. We had to optimize CameraX image analyzers and frame-skipping mechanisms to ensure smooth 30+ FPS tracking without draining the battery or overheating the phone.
  • Mathematical Edge Cases for 3D Pose Estimation: 2D camera feeds lose depth information. Using ML Kit's $z$-coordinates required normalization to handle varying distances from the camera, side angles, and differing body types.
  • State Management in Playlists: Chaining different types of exercises (reps-based vs. static timed holds) sequentially while carrying over user-configured goals required building a robust queue-state coordinator.

Accomplishments that we're proud of

  • Zero-Server Architecture: We successfully built the entire computer vision and form analysis system to run 100% on-device. Your camera stream never leaves your phone, ensuring absolute privacy.
  • Fluid User Experience: Transitioning the UI from a flat exercise list to training focus categories and customizable steppers made the app feel premium and highly polished.
  • Highly Responsive AI: Proximity beeps and voice corrections trigger in milliseconds, matching the performance of specialized gym hardware.

What we learned

  • Jetpack Compose Performance: We learned how to write efficient custom drawings on Compose canvases for skeleton rendering without triggering constant recompositions.
  • Designing for Mobile AI: We realized that the best mobile AI features aren't just about model accuracy, but about how gracefully you present the predictions through visual feedback and voice assistance.

What's next for FormCheck-AI

  • Custom Workout Builders: Letting users mix and match exercises from different categories to create personalized routines.
  • Broadened AI Models: Supporting posture tracking for weighted gym equipment (barbells/dumbbells) and cardio activities (jumping jacks, high knees depth).
  • Social Fitness Challenges: Allowing friends to share and compete on weekly streaks or form score leaderboards.

Built With

  • googlemlkit
  • gradle
  • jetpackcompose
  • kotlin
  • roomdb
Share this project:

Updates