Inspiration

We were inspired by camera detection technology and that led us to discover the mediapipe library. We did some research and found a previous project had utilized similar libraries to implement an ASL translator that turned ASL into speech. This inspired us to do something similar, for many of us we have had experience with PT. Sometimes it can be difficult to know if we are correctly performing exercises or not. Sometimes, incorrectly performed exercises can be more harmful than good. We wanted to help prevent that by providing an application that would analyze and provide real-time feedback to users who don’t have the money or resources to attend PT consistently. We also wanted to make our program as accessible as possible, make the program customized to the user as much as possible taking into account physical and mobility restrictions.

What it does

Our app is geared towards the user, so the user is directed to first calibrate it. This process is so that the program gets an understanding of the user's range of motion or ROM. Then the user will be sent to an intermediate screen where the user can select body parts to focus on. They will then be given exercises geared towards their selected body parts. The user can select and start which exercises they want to do and then will be taken to the performance screen. Here they will be guided through the exercise. The user will be able to see their range of motion and ideally how they are doing in comparison to their previous sessions. The user reps for each exercise will also be displayed. There will be a guide on the screen showing the necessary body parts that must be seen in order for the application to work properly.

How we built it

Our program uses HTML and CSS for web design, and JS for the functionality. Our program can be broken down into three main pages. In the calibration stage, we track the individual movements and range of motion, taking into account angles of mobility. We measure each part such as arms, legs, and torsos. In the selection screen we prompt users to choose which part they want to work on. On the exercise screen we analyze the user skeleton in order to match their movements to the proper angles to finish the repetition of their selected exercise. We utilized libraries such as mediapipe for body movement identification and tracing. Our core functionality works by analyzing the angles of the user performing the exercise and matching it to the configuration.

Challenges we ran into

With this project being our first time using Google mediapipe, we had to understand how it worked. Another challenge was that our git push wasn’t working which made it hard for all members to collaborate and see the changes made. This led to us having to move our repository due to the code not running properly on different computers.

While making our project, we attempted to make a ghost overlay where the user would know how the exercises should look. This resulted in the motion detector glitching and freezing on screen, and so we ended up getting rid of the whole ghost portion.

Accomplishments that we're proud of

We successfully created a web based browser that uses mediapipe. We also made the website a multi-screen, and organized different sections into different screens. We created an application that will hopefully support the mobility of all and provide less risk of performing exercises harmfully.

What we learned

We learned how to use mediapipe, a library that we were pretty unfamiliar with. Throughout the project we learned how to utilize the different components of mediapipe to show and analyze body moments. We also needed to analyze angles throughout the project to understand how each exercise would be counted for reps. We also learned how to organize and navigate a bigger scale project than what we were all used to previously.

What's next for ABC

In the future of ABC we will implement a ghost overlay to demonstrate to users how to perform each exercise/movement. Many users who may be new to PT movements may not know how different exercises should look. Having a ghost overlay would help visualize the movement and support user learning. We also want to incorporate user accounts to connect their user data. Users will be able to save their information, and the account will adjust exercises accordingly. As the application grows we will incorporate more PT exercises for all mobility levels. This allows everyone to use our app to be useful towards everyone.

Built With

Share this project:

Updates