Crafting experience...
10/26/2025
A Project Made By
Submitted for
Built At
Gator Hack IV
Hosted By
What is the problem you are trying to solve? Who does it affect?
From beginners hitting the gym for the first time to professional athletes training for competition, the risk of injury is ever-present. Proper technique is essential for preventing strain and long-term damage; however, it’s often difficult to recognize improper form or subtle micro-movements that alter balance and weight distribution in real time. These small deviations can accumulate over time, leading to inefficient growth, muscle imbalance, or serious injury. On top of this, many young athletes or people just getting into fitness may not have the resources or access to coaches or equipment that can help their technique.
What is your idea? How does it fix the problem?
Through the FormCheck app, users can get real-time analysis and statistics on their exercise that emphasize proper injury-avoidant technique. The user will position their phone facing with a side-angle camera view as they perform a squat. Using the device’s camera, the app’s artificial intelligence maps out key joints (hips, shoulders, knees, and ankles) and tracks how they move together through each repetition. Combining that with a skeletal model created through mechanical calculations between the joints, the app can give real-time feedback that will help the user understand where they need improvement. The app calculates the different angles, using this data to map where the user's legs are compared to the line of the weight force. This calculation makes sure the load is orthogonal to the user's thigh so the user can generate the most torque, optimizing the workout. As it is run through a phone app, this project solution is very accessible to those lacking personal trainers, but are seeking to improve their technique or reduce the risk of injury. In the top right of the overlay, there is also our RepCounter feature, which watches the analyzer to detect a full squat cycle from standing, descending, squatting, and then back up. It makes sure to only display recommendations and score after a full squat is performed.
How do all the pieces fit together? Does your frontend make requests to your backend? Where does your database fit in?
In our implementation, we did not create a backend or database, as we focused on ensuring that the Machine Learning AI model, which was run within Apple's API, correctly detected form and technique in real time. We built the frontend with UIKit, which directly integrated our analysis by displaying live feedback to the user through visual overlays and text indicators. Utilizing the research on biomechanics, we were able to calculate the correct angle of the joints while performing the squat exercise. The actual capture feed comes from Apple's AVCaptureSession and processes each frame through VNDetectHumanBodyPostRequest, which also overlays visual feedback like lines throughout the user's body, showcasing their body moving. The lines are done through our SkeletonRenderer that connects all of the joints to create a solid render. The Pose Analyzer system uses the data to calculate the biomechanical angles between major joints. Using trigonometry and other mechanical concepts, the app determines whether the squat is performed with proper form. Our Angle Calculator feature measures the knee, hip, and back angles to check if the form remains. The Squat Analyzer then interprets the data and produces a score of the squat, and then recommends live tips for the user to improve their score for the next rep.
What did you struggle with? How did you overcome it?
Only one teammate was able to deploy and test due to OS incompatibility issues, since only one team member had a MacBook, and the code was written and deployed in Swift (iOS native). This led to a bottleneck in development that we solved by dividing roles so that other tasks were completed while the development was still in progress, preventing idle times and allowing everybody to test their code at the right moment. This also allowed team members with schoolwork to balance their time.
Another hurdle we faced was the joint angle analyzer, as some of the frames of the joints flickered due to camera angles (as the ML tried to detect the joints from both the right and left side, despite only displaying clearly one side of the joints with the camera angle). This caused issues with the accuracy and determining how a technique is considered "good." To overcome this issue, we adjusted the joints to only detect one side (one set of each joint) and adjusted the angles with the bio-mechanical research. We also created a larger threshold where a motion could be considered good, as well as not defining it as good or bad, but a range of how close to perfect or correct the technique executed.
What did you learn? What did you accomplish?
During our research, we learned about the biomechanical aspects of weightlifting. We saw the importance of load pathing, force transmission, joint mechanics, and how stresses affect the human body. When focusing on squatting, having the correct form is crucial for muscle growth and injury prevention. Load pathing is important as bones are made to withstand compressive forces lengthwise. If the forces are misdirected, they could cause wear on joints or possible bone injuries.
The angles that the legs bend at matter. To maximize a squat rep, the squatter would want to take advantage of the weight to its fullest potential by increasing the distance of the force line from the hip joint. When the thigh is parallel to the ground, the torque is maximized as the radius of the moment arm is at its peak, meaning at this point the squatter would have to generate a torque that is greater than the torque due to the weight and the maximum length. If the squatter does not squat deep enough, the hip moment arm is reduced because the full length of the leg is not extending the distance to its full potential.

Master Your Squat: High Bar vs Low Bar Technique Explained by Squat University. The image demonstrates how the line of force's distance to the hip horizontally is maximized once the hip is parallel to the ground.
Using this information, we were able to calculate the joint angles between different members to determine what a good squat rep looks like. The app using a phone camera and determines the calf, thigh, and back members. The app then calculates the angles between the different members and compares it to the angles of a proper squat. Once the analysis is completed, the app displays a score that is based off of how close the rep was to the ideal squat rep.
What are the next steps for your project? How can you improve it?
The next steps for our project are to expand the range of exercises and motions. We plan to introduce advanced metrics that move our app beyond injury prevention and fundamental movement mechanics, allowing athletes to track and enhance their performance in real time. With stronger hardware and further optimization, FormCheck could be used by coaches and trainers directly from the sidelines to provide live and personalized recommendations during games, practice, or even physical therapy for those in recovery. Many sports-specific movements are far more complex than the squat. For example, the throwing motion of a quarterback has many small technical details that all need to work cohesively to throw far and accurately. Because of this, it would be incredibly beneficial if coaches could identify general mistakes in form or even make form adjustments based on things like fatigue, efficiency, power, or strategy in the heat of the moment. However, with that said, we really value the idea of being able to support the dreams of the young and casual athlete by maximizing what is possible with just an iPhone camera (accessible hardware). We could scale our current product to this by expanding from relying solely on the 2D key points to the implementation of a monocular depth model that feeds depth and a z-coordinate into our algorithms. That would be incredibly important for scaling to athletic performance, as 3D measures rotation, depth, and balance things which are critical to understanding power and velocity output in athletics. Another idea for improvement is introducing a backend system that stores user performance data and session history, which would help with long-term progress tracking for athletes. Ultimately, we want to evolve FormCheck from a more personal exercise safety tool into a complete performance optimization platform that can work across multiple sports and analyze for much more than injury-prevention and surface-level technique.