If you’ve ever been to the gym, you know that some of the most rewarding compound lifts (bench, deadlift, overhead press, and squat) are also the most challenging. In a study between 1990 and 2007, research found that more than 90% of injuries in the gym occurred during compound lifts. With stats like those, many people, including myself and my teammates shy away from them.

We are “GitFit”, here to help you Git Fit with our seamless react native iOS and Android application using Artificial Intelligence, and Image processing.


Our largest source of inspiration was ourselves! As four individuals who stay fit by going to the gym, we used to shy away from lifts such as the ones above due to our fears of injury. We tried many methods of evaluating our form, but none of them came out as ideal:

  • Watching a video can be subjective
  • Hiring a personal trainer is expensive
  • Asking a friend can be both embarrassing and you're not sure if you're getting the right advice

What it does

GitFit teaches you how to do a lift, and then asks you to film a video of yourself doing it. Using the powers of AI and Image processing, it compares your form to that of a trained and curated professional. We do all of the processing and evaluations in the cloud. Back in your app, you're sent a processed video with skeletons of both yourself and the professional, scaled to your height. Based on your skeletons, it becomes abundantly clear which areas of your form need the most improvement. So what are you waiting for?

Git init, Git commit, and GitFit!

How we built it

  • Our front-end is an application created using react native.
  • After a user has installed our app, they can browse exercises and see videos explaining how to do them.
  • Then, the user has the opportunity to record themselves doing the exercise
  • Our node.js backend passes our video file to a python-based opencv instance, which processes the video, compares it to a professional video, and superimposes both skeletons on to the original video.
  • The professional skeleton is scaled to your size so as to ensure your feedback is relative to your height.
  • The user is then sent back their video which they can watch and review to help them improve their form.

Challenges we ran into

  • Setting up an Azure server that would deploy the node.js backend to allow for HTTP requests between the React Native mobile end and the Azure VM
  • Learning React-Native to develop a cross-platform mobile app

Accomplishments that we're proud of

  • Being able to successfully superimpose two skeletons on to the original video with python-based opencv instances
  • Creating a fully-fledged mobile app

What we learned

  • Learned about React-Native
  • Learned about Servers and the flow of information systems involving them
  • Learned about ML models such as openpose and posenet

What's next for GitFit

  • Specific joints mentioned in advice
  • Better method to detect file transfer on server
  • Optimize scanning for timing, length of video
  • Saving videos locally to compare form over time
+ 3 more
Share this project: