## Inspiration

Exercise is extremely important and is most effective and healthy when it is evenly applied to all important muscles in your body. However, as students, many of us don't have enough time to finish a complete workout routine that trains every important muscle, and so we split up our exercise routines over several days. However, it can be a hassle to track which muscles you haven't exercised as often, generating friction between a busy student and quality exercise. SmartFit seeks to solve this issue.

## What it does

SmartFit is a workout assistant that helps users to become more healthy. It's built upon two main features: logging and recommendation. It tracks your workouts using the Google Assistant and tailors a workout that would benefit the user the most based on an undertrained muscle group, determined by analysis of their previous workouts. SmartFit is also beginner friendly since it offers a tutorial for every different workout. Through SmartFit, anyone can become fit and healthy in a smart way. SmartFit is like a personal trainer that can be accessed at any time and anywhere.

## How we built it

We built SmartFit using Voiceflow with calls to Google Sheets’ APIs and deployed on Google Actions to create a fully functional Google Assistant app. Smartfit’s workout logs are stored on Google Sheets and workout recommendations are generated automatically based on past workout data as well as exercise information curated from various professional fitness websites. The recommendation algorithm was designed using smart techniques and formulas within the Google Sheets Platform. JavaScript was used in order to parse user information of logs and prediction of recommendations within Voiceflow. We also made a static website that shows information regarding what SmartFit does.

## Challenges we ran into

Since Voiceflow is a relatively new application, we had a hard time finding assistance on certain features that we were unsure about. For example, Voiceflow has the capability to display images using the Card Block or the Display Block, but it was very hard to find help regarding those issues. Due to the lack of documentation, it was very hard to solve problems promptly without halting all progress. Another challenge that we faced was the integration of Google’s Firebase. We ended up using Google Sheets instead of firebase because Google Sheets is already integrated with Voiceflow and is faster and more effective that Firebase in this application.

## Accomplishments that we’re proud of

We’re proud of creating a robust voice app using Voiceflow and creating a Google Action usable on Google Assistant.

## What we learned

We learned how to use a new application called Voiceflow in order to develop Google Assistant and Amazon Alexa applications without any pre-existing knowledge. We learned how to use Google’s Dialogflow in order to style the front end of SmartFit in the Google Assistant environment. We taught ourselves the intricacies of Google’s API client in order to host SmartFit to any Gmail email address that the user wishes.

## What's next for SmartFit

Since SmartFit is on Google’s API platform, sending the app to worldwide alpha testers can be easily accomplished. From the alpha testers’ feedback, more features and user interface improvements will be implemented. The next step for SmartFit is to migrate to a more robust database and increase user customizability via FireBase and MongoDB. The Artificial Intelligence to predict workout recommendations would be implemented using TensorFlow, instead of hardcoded smart algorithms, due to a larger set of users.

After the technology side of things is taken care of, SmartFit can have the opportunity to be implemented into the marketplace. Users can pay for the SmartFit service with different plans in order to have more data analysis and access to tutorials.
## Inspiration

With 528 million people worldwide affected by osteoarthritis and that number expected to surge by 2050, maintaining joint and muscle health is essential. From arthritis and sports injuries to daily joint pain, millions struggle with conditions that limit movement. While there may be no cure, research has shown that targeted stretching and mobility exercises can significantly improve quality of life, reduce pain, and support recovery.

Our app is designed to make rehabilitation more engaging and accessible, helping individuals recover faster and live pain-free. By offering a gamified experience with accurate posture detection, we ensure users perform exercises correctly, promoting better outcomes and alleviating physical challenges in a fun, user-friendly way.

## What it does

1. We use an advanced posture detection algorithm to identify key body joints and landmarks in real-time videos. This allows the system to map the user's movements with high accuracy and ensure that users are performing therapeutic exercises correctly which is crucial for individuals with arthritis or those recovering from sports injuries. Our custom dataset of various correct exercise postures increases the algorithm's precision making it adaptable to different body types and conditions, ensuring exercises are both safe and effective. This reduces the risk of improper movements which can worsen the condition or slow recovery.
2. To make recovery engaging, we introduced a gamified feature that allows users to draw shapes like circles, infinity loops, or waves with their body movements. This interactive approach is designed to help both arthritis patients and the general population improve mobility in a fun and rewarding way. By focusing on specific shapes, the system targets key joints—such as the shoulders, arms, and neck—that are commonly affected by arthritis or injuries. Drawing these shapes promotes range-of-motion exercises, which are essential for reducing stiffness and improving flexibility. The gamification aspect keeps users motivated, making it easier to stay consistent with their exercise routines, which is vital for long-term recovery and pain management.
3. We integrated a fine-tuned conversational bot to help users choose different exercises and movements tailored to their specific needs and goals. The bot provides personalized suggestions based on the user's current mobility, pain levels, and progress, guiding them through a variety of stretches and movements that target specific joints or areas of stiffness.

## How we built it

Our project begins by capturing real-time video feeds using mobile devices. We utilize MediaPipe and OpenCV to detect key body joints and landmarks within the video, allowing us to map out the user's posture and movements in real-time. We used these tools to create our own custom dataset of demonstration exercises for our users to follow. Computational geometry techniques such as cosine similarity were utilized to determine the similarity between our demonstration and the user's form and it was also used to measure the angles between the landmarks and the drawing. We decided to built a facial authentication system by using blockchain technology and have a front end which has a dashboard of activeness and number of workout session completed. The entire frontend was built on React.JS and the backend with the help of Flask. We also took advantage by fine tuning a LLM solely for the purpose of suggesting tailored exercises.

## Challenges we ran into

One major challenge we encountered was the complexity of implementing real-time posture similarity while maintaining low latency across different devices. To ensure the accuracy of our model we had process live video which was required optimizing our algorithms, especially when detecting subtle movements. We also faced challenges with integrating computational geometry for our features, such as recognizing body movements to draw precise shapes like waves and circles. Handling variability in user movements while maintaining the integrity of these shapes added a layer of complexity to the project. We also faced problem to properly pre-process our dataset and make the fine tune the cosine similarity algorithm.

## Accomplishments that we're proud of

We are proud of successfully implementing real-time posture detection similarity algorithm that accurately tracks user movements with low latency across different devices. Our integration of computational geometry allowed us to create an engaging and innovative experience where users can draw shapes like waves and circles to improve mobility.

## What we learned

We also increased our understanding of computational geometry and how it can be applied to interactive, gamified features. Another key takeaway was the experience of creating your own custom datasets and train the existing model on that.

## What's next for **Flexy and I know it**

We aim to integrate Flexy with VR allowing users to visualize their movements and corrections during exercises in a more immersive way. We're also exploring the use of wearable technology, like smartwatches or sensors, to provide even more precise tracking and feedback on mobility and joint health.
## Inspiration

The inspiration for FitBot came from the desire to help individuals improve their workout routines and achieve better fitness results. Many people struggle with maintaining proper form during exercises, which can lead to injuries and less effective workouts. FitBot aims to provide personalized feedback and expert advice, empowering users to enhance their performance, avoid injuries, and reach their fitness goals efficiently. By leveraging technology, FitBot makes professional-grade analysis accessible to everyone, ensuring that fitness enthusiasts of all levels can benefit from tailored motion improvement tips.

## What it does

The project is a **SwiftUI**-based fitness tracking app called "FitBot." It provides users with a visual representation of their performance through progress rings and offers personalized feedback based on their ratings. The app displays an overall rating along with detailed evaluations and suggestions for improvement, aiming to help users enhance their fitness routines and achieve their goals. The user interface is designed to be intuitive, with a sleek top bar and easy-to-read feedback messages, making it a valuable tool for anyone looking to track and improve their fitness performance.

## How we built it

The project is a SwiftUI-based fitness tracking app called "FitBot," designed to provide users with a visual representation of their performance through progress rings and personalized feedback based on their ratings. The app preprocesses input videos by converting them into GIF files, utilizes AWS Bedrock to call the Claude 3.5 model, and builds prompts to ask Claude for ratings, overall evaluations, and potential improvements. The user interface includes a sleek top bar and easy-to-read feedback messages, aiming to help users enhance their fitness routines and achieve their goals through clear, actionable insights.

## Challenges we ran into

During the development of FitBot, we faced several challenges that tested our skills and patience. We spent hours grappling with git workflow issues, such as resolving merge conflicts, managing diverged branches, and recovering lost files, which was crucial for smooth collaboration but quite time-consuming. Integrating video recording and storage using Swift and SwiftUI was another significant hurdle. Ensuring seamless interaction with the device's camera while maintaining optimal performance and a great user experience required meticulous attention to detail. Communicating with the backend also posed challenges, as we needed to reliably upload videos, receive detailed analysis, and handle any errors or interruptions gracefully. This involved extensive testing and debugging to create a robust and efficient system.

## Accomplishments that we're proud of

In this project, we used **AWS Bedrock Claude** to power our software and website designed to help people correct their fitness movements. This application not only effectively assists beginners in learning new exercises but also prevents injuries. We are very proud that this application can truly address users' pain points and protect their health. What is particularly impressive is that, by utilizing existing large models which only take in images, we can efficiently analyze videos to achieve this goal. With this application, users can engage in fitness training more safely and scientifically, thereby improving workout results and reducing the risk of injury.

## What we learned

We learned about using SwiftUI for creating the visual parts of apps on Apple devices. SwiftUI makes it easier to design how apps look with less code, and we can see our changes as we make them. We also learned how the part of the app you see and interact with (the front end) talks to the part that handles data and operations (the back end). This communication is important for making the app work smoothly and quickly. Plus, we picked up some basic design skills to make our apps look good and work well. These skills are important for building apps that people enjoy using.

## What's next for FitBot

We have exciting plans for the future of FitBot. Our next steps include deeply developing the app by integrating a regular chatbot system focused on fitness-related conversations. We aim to enhance the result page with improved visualization and interactivity, making the feedback more engaging and user-friendly.

**Furthermore, we want to expand the application to cover other sports and activities, including medical rehabilitation. We also plan to incorporate more tailored training programs and guidance for users of different skill levels, ensuring that everyone, from beginners to advanced athletes, can benefit from FitBot.**