PocketGym

Progress Presentation 2
Team 9
Aakriti Bhandari
Kobe Hendrix
Evan Musick
Erdenesuren Shirmen
CSC 450 | Introduction to Software Engineering | Spring 2026

Project Description

  • PocketGym is a home-workout assistant that uses computer vision to give real-time feedback on exercise form, count reps, and track workouts, without a personal trainer.
  • The user opens the app in a browser, points their webcam at themselves, and starts exercising. The system recognizes the exercise, counts reps, scores form, and logs the session.
  • Built on Flask + MediaPipe Pose, runs in real time on commodity hardware.

Motivations

  • Personal trainers are expensive and not always accessible
  • Most home-workout apps don't watch your form, so bad form means injury and wasted effort
  • Modern pose-estimation models make real-time form feedback feasible without specialized hardware
  • Use case: someone who lifts at home wants the form-correction value of a trainer without the cost or scheduling

Project Features

Six functional modules across the three sprints

Computer Vision

  • Pose detection (33 keypoints, ~30fps)
  • Skeleton overlay on live feed
  • Joint-angle calculation

Exercise Recognition

  • Rule-based classifier (7 exercises)
  • Confidence scoring + frame smoothing
  • Handles exercise transitions

Form & Tracking

  • Real-time form score per exercise
  • Automatic rep counting
  • Set tracking across workouts

Users & Dashboard

  • Account creation & login
  • User profiles & preferences
  • Workout history & summary

Product Backlog: Completed & Remaining Tasks

IDTaskOwnerStatus
Sprint 1 | Core Features (Mar 6 to 26)
PE-01Camera capture & frame preprocessingEvanDone
PE-02MediaPipe integration (33 keypoints)EvanDone
PE-03Skeleton overlay renderingEvanDone
PE-04Joint angle calculationIggyDone
ER-05Exercise classifier (rule-based shipped; ML upgrade pending)IggyIn Progress
ER-06Support for 7 exercisesIggyDone
FA-07/08/09Form comparison, real-time scoring, visual correction tipsKobeDone
RT-10Automatic rep countingAakritiDone
RT-11Set trackingAakritiDone
Sprint 2 | Users & Dashboard (Mar 27 to Apr 9)
UM-12Account creation & loginAakritiDone
UM-13User profiles (height, weight, goals)AakritiDone
UM-14User preferences / settings (4 persistent)EvanDone
DA-15Workout history logIggyDone
DA-16Post-workout summary with form scoresKobeNot Started
Sprint 3 | Enhancements (Apr 10 to 24)
ER-17Detect exercise transitions mid-workoutKobeNot Started
FA-18Audio corrections for form issuesIggyNot Started
RT-19Rest timers between setsEvanNot Started
RT-20Target rep / set goalsAakritiNot Started
DA-21Progress charts and trends over timeAakritiNot Started
DA-22Exercise library with demo videosEvanNot Started

Challenges & Issues

Technical

  • CV pipeline and Flask app evolved on parallel tracks; integration took longer than expected
  • Rule-based classifier shipped first; ML upgrade needs curated data and training time
  • Coordinating shared models (User, Workout) across parallel branches

Team / Process

  • Sprint 2 scope underestimated: five user-facing modules each touched model, view, template, and tests
  • Sized user-management like CV-pipeline subtasks (small, isolated) when it was actually cross-cutting
  • Sprint 3 backlog now scoped narrower with that calibration in mind

Live Demo

Pose Detection · Exercise Recognition · Rep Counting · Workout Summary

Next Steps

Finish Sprint 2 Carry-Over Post-workout summary with form scores (DA-16)
Sprint 3 Core Rest timers (RT-19), progress charts (DA-21), exercise transitions (ER-17), rep goals (RT-20)
Stretch Audio cues (FA-18), exercise library (DA-22), ML classifier upgrade (ER-05)
Final Demo Target End-to-end flow: signup → workout → history → progress chart
Questions?