Inspiration

Working out at home in front of the living room TV is very convenient, but many fitness apps either recommend generic exercises for everyone, or rely on generic AI wrappers that generate random exercises every session without real long-term progression. At the same time, typing personal fitness goals, body metrics, and passwords with a TV remote is frustrating, and sending an entire exercise database to a large language model on every single workout quickly becomes slow and expensive. I wanted to build a true Fire TV fitness experience that pairs effortless smartphone onboarding with structured progressive overload, helping to lock in a consistent, personalized routine while using AI strictly where it shines: in order to calibrate initial strength levels and adapt weights and reps across workouts.

What it does

AI Fitness TV is a smart strength-training coach built for Amazon Fire TV (Vega OS) that creates and evolves a personalized workout routine for each user. New users scan a dynamic QR code on their TV to sign up or log in on their phone. The user sets account credentials, selecting fitness or injury-rehab goals, and completing a strength calibration test, where they will perform a guided rep test based on their BMI if they are a beginner/intermediate user. Once calibrated, the TV transitions into a D-pad-friendly workout carousel featuring auto-swapping start and end demonstration photos for each movement. After completing a workout, users rate each individual exercise as Too Easy, Just Right, or Too Hard directly on the TV, and AI calculates the progressive overload for their next session while logging timestamped weight and rep snapshots in the in-app Progression Stats dashboard.

How it was built

I built the frontend on Vega OS by generating a base 'helloWorld' template project with Vega Studio and the Vega CLI, expanding upon it using React Native for Vega, and running and testing my builds using the Vega Virtual Device. On the backend, I architected a serverless AWS pipeline using the Serverless Framework, AWS Lambda, Amazon API Gateway, Amazon DynamoDB (modeled with Dynamoose), and AWS IAM/CloudFormation. For workout intelligence, AWS Lambda invokes Anthropic’s Claude Haiku 4.5 via Amazon Bedrock in two distinct phases: an onboarding phase that queries the 'free-exercise-db' dataset to select a user's permanent exercises and calibrate starting weights based on their goals, followed by a token-optimized daily progression phase that strips out exercise names, set counts, and metadata. This passes only abstracted indices, reps, weights, and difficulty ratings to minimize token consumption within Bedrock.

Challenges

Developing for a new TV operating system and optimizing stateful AI workflows presented several unique engineering challenges. On the frontend, standard community React Native navigation and storage packages failed on Vega OS due to being incompatible with Android/iOS native modules, and installing the standalone storage package corrupted Metro's dependency graph. This lead me to build a custom state-driven screen architecture in 'App.tsx' and use Vega's built-in 'AsyncStorageWithKeyScope'. During VVD testing, I also discovered that 'TVEventHandler' fires twice per remote button press (once on key-down and once on key-up), which initially caused my carousel to skip exercises and my Settings menu to close upon button release until I implemented key-up filtering and a 250ms debounce. Additionally, to stop spatial D-pad focus from leaking out of modals or jumping weirdly across screen remounts, I added explicit 'findNodeHandle' nextFocusfocus traps and reset stale IDs between workouts.

Accomplishments

I am especially proud of engineering my two-phase, token-optimized Amazon Bedrock pipeline, which prevents AI exercise hallucination and drastically reduces daily LLM token costs by abstracting progression prompts into lightweight numeric arrays before re-hydrating them from the user's cached profile. This heavily cuts down on the amount of tokens, as an expensive prompt is only ran when the account is first created, and all progressions use a much cheaper prompt. The AI cannot hallucinate exercises, as it must retrieve them from 'free-exercise-db' dataset. AI does not come up with the exercises on its own, it only organizes them into a workout.

What I learned

Throughout this project, I gained deep hands-on experience with Amazon's Vega OS ecosystem, including how to manage D-pad navigation, compared to mobile React Native. On the cloud and AI side, I learned how to design deterministic, low-temperature system prompts for Claude Haiku, and how to separate heavy context-window tasks (initial exercise selection and strength calibration) from high-frequency operations (daily rep and weight progression). By making sign up done with a QR code, I learned how to orchestrate real-time cross-device authentication and state synchronization.

Built With

Share this project:

Updates

Submission history