Inspiration

We were inspired to create this program after initially trying to produce a similar application that tracks the swimming form of users. We found found this to be too difficult, so we decided to land on an easier activity, push-ups. All of our team members are quite bad at performing push-ups, so it made sense to make something that benefits both us and others.

What it does

The program takes a video of you doing a push-up and rates your form on a scale from 1-100. This score is based on the subscores of four factors: depth, arm extension, tempo, and bodily alignment. Reps are counted, and advice is given on how to improve in each of the four aforementioned areas.

How we built it

We mainly used Claude Code as a harness while utilizing Deepseek V4 Pro as the actual LLM. Every prompt given to the AI was discussed thoroughly amongst the team, with understanding the code being a focal point.

Challenges we ran into

  • Lack of TypeScript and CSS knowledge, which made it very difficult to debug
  • Didn't know how to collaborate efficiently since most of the work was being done on one computer's instance of Claude Code
  • Did not have access to fast/powerful LLMs, so work was quite slow

Accomplishments that we're proud of

  • Fixed program-breaking bugs such as random bodily movements being given high ratings
  • Cleaned up the extremely messy base UI that MediaPipe provides
  • Optimized body tracking system by removing extraneous tracker nodes

What we learned

  • How to collaborate more productively by using a shared GitHub repo and dividing up tasks
  • How JavaScript and TypeScript interplay
  • How to write more detailed and clearer prompts

What's next for RepCheck: Push-up Form Analyzer

We hope to expand our analyzer to other exercises, eventually moving to encompass all sports and general physical activities. We hope to add an advanced mode that rates user form by utilizing even more parameters and taking into account even more subscores. We hope to beautify our UI, which is still quite barebones.

Built With

Share this project:

Updates

Submission history