Inspiration

The inspiration came from the need for personalized health advice to help maximize the potential of those in the army. Throughout my own experience with workout recommendation apps, I have had a lot of experiences with apps that take the "one-size-fits-all" approach. Without being able to receive that individual advice from top to bottom, there is the risk of injuries and negative impacts on health.

What it does

ArmI is an application that through data extracted from wearable devices provides workout advice based on individual biometrics through the use of a powerful reinforcement learning model. This allows for an adaptive and self-improving model that does not generalize for a population but tailors for the needs of every soldier.

How I built it

The UI was built on FlutterFlow, which required the use of API calls to interact with the backend to fetch data. The data was processed through Terra API to extract user fitness metrics, both the historical data to get the model going and real-time updates. The backend was developed in Flask, and this helped serve as an API layer to handle data processing. The main model is a reinforcement learning model using Stable-Baselines3 (PPO Algorithm) to optimize workout recommendations based on current fatigue levels and other biometrics. A custom Gymnasium environment was built to simulate and effectively go through that trial and error process to find the best workout routines. Cloudflare tunnel was also used for secure access to our local API without the need to deploy on the cloud.

Challenges I ran into

The deployment of the ML model so that Flutterflow could receive the predictions and display them was a difficult process to get organized. Additionally, ensuring the combination of the different metrics (bpm, stress, sleep respiration) was something I had to be extra careful with to ensure I was feeding the model with clean data.

Accomplishments that I am proud of

It was very rewarding seeing the model improve as it was fed more data (historical and live) and through other techniques such as scaling continuous variables to [0,1], providing bonuses for activities that reduce long-term fatigue, and more. Furthermore, I was proud of how the UI came out and believe with more time this can be a highly beneficial app for more than just the army in the future.

What I learned

The main thing learned throughout this process was the integration of AI with no code to low-code tools like Flutterflow. Running into issues, not because of API failures but how Flutterflow processes the information taught me to be more careful when reading documentation. Additionally, working with reinforcement learning is a relatively new experience for me, and having to simulate environments was intriguing to me and a twist from most ML applications I'm used to.

What's next for Armi

ArmI plans on expanding this past further than just an army application but one that can benefit the general population's health. Additionally, the model can be enhanced to be able to choose from a larger and more specific range of exercises. Also, if ArmI's model were to have access to a larger dataset, then potentially, a pre-trained model can be implemented that is then fine-tuned to fit a person's biometrics and best workout plan. This could speed up the model and not require the model to require long training times before outputting a precise workout plan tailored to one's needs.

Built With

Share this project:

Updates