Inspiration
A workout log tells you what you lifted, but it can be hard to see what changed across weeks of training or decide what to do next. We built LiftRank to connect three needs: visible progress, practical training guidance, and people to keep going with.
For students and everyday gym-goers, our goal is a simple loop: train, see your progress, get feedback, and return with a clearer next step.
What it does
LiftRank is a native iPhone app that brings strength training, cardio, nutrition, and gym community into one experience.
- Make progress visible. Logged strength sets contribute to exercise ranks, muscle-group scores, and an overall strength score across nine tiers, from Wood to Olympian. Explore a front-and-back muscle map and scrub through dated rank history. Choose between two mascot styles, customize accessories and backgrounds, and see your mascot reflect your rank. Consistent training earns Eggs through daily rewards, weekly challenges, and seasonal milestones.
- Work with a personal AI trainer. Type or dictate questions, request changes to your remaining sets, or build a program of up to four weeks with complete sessions, rest days, and progression. Planning future days can leave today's workout untouched. Your trainer's chosen name and appearance follow you across Home, chat, and the gym. Home offers a short welcome, while requested daily plans open as a separate exercise list. Advice and greetings do not silently change workouts.
- Choose where and with whom to train. Start strength training in a nearby registered gym, create a public or private workout space, request entry to another public space, or train alone in a private offline space. Nearby admission checks a 500-meter radius; private spaces use invitations to accepted friends. Demo Gym remains available for multiplayer from anywhere. Our neon isometric gym supports pinch zoom and panning, equipment selection, reservations, and requests to work in or train together. Equipment sharing requires acceptance, and exercise choices match the selected station. Friends can keep messaging after leaving.
- Keep control of the session. Strength training follows Start set → End set → confirm weight and reps, with Training and Resting states reflected in the room. Switching tabs or backgrounding preserves the workout. Leaving a space offers Save workout & leave, Discard workout & leave, or Keep training. Saving retains completed work; AI edits cannot rewrite recorded sets. Public/Anonymous mode and separate sharing controls govern ranks, selected routines, and activity highlights. Shared profiles can display the selected training mascot and accessories; actual set weights, reps, body measurements, and private notes are excluded from public highlights.
- Give cardio its own flow. Start indoor or outdoor cardio directly from Home, with an automatic timer and pause/resume controls. Paused time is excluded, and the timer survives phone locking and backgrounding. Outdoor sessions include a private map with route collection while the app is open. Live Activities now cover both strength and cardio: strength shows elapsed time, completed sets, and rest countdowns; cardio offers pause/resume. Recent heart rate appears when available. Apple Health, a LiftRank Watch companion, and compatible Watch Smart Stack layouts are implemented, with real sensor and background-delivery validation still ahead.
- Connect training with nutrition and reflection. Log meals and body measurements, review training across weekly, monthly, quarterly, and yearly summaries, and switch between English and Chinese. With the separate general AI services configured, request nutrition guidance, estimate calories and macros from a meal photo, review or correct the estimate before saving, and generate progress commentary. AI profile portraits also use a preview-and-apply flow.
How we built it
The app uses Swift, SwiftUI, and SwiftData for native interfaces and local workout, plan, and conversation storage. Deterministic scoring code estimates one-rep max and applies body-weight and exercise-specific standards. These are app strength scores, not verified global percentiles.
SpriteKit renders the gym. Firebase Authentication, Realtime Database, and Storage support identity, presence, social data, and approved portraits. A TypeScript/Express API on Google Cloud Run enforces proximity, membership, equipment ownership, and AI request validation. HealthKit, WatchConnectivity, MapKit, ActivityKit, and WidgetKit connect the app to Apple services.
Our workout AI now uses two distinct roles through Tinker. Full Thinking Machines Inkling handles conversation and program design. An Inkling-Small model we fine-tuned with rank-16 LoRA on 219 synthetic examples handles explicit edits to the current remaining workout list. The backend expands reusable sessions and weekly progression into complete schedules and validates the results before the app applies them. Nutrition and image tools use separate services.
Challenges we ran into
A trainer needs to distinguish discussion from permission to change a plan. We separated coaching, scheduling, and current-workout editing, then added catalog validation, completed-set protection, stale-response checks, and bounded repairs. A failed response must leave the workout intact.
We also needed the phone, gym scene, Lock Screen, and Watch to agree on session state. Persistent timing, explicit save/discard decisions, stable Health identifiers, and checks for stale Watch messages help preserve records and prevent duplicate saves.
For nearby social spaces, the challenge was controlling admission while keeping precise location private. The server checks proximity without exposing exact coordinates to other members, and private spaces remain hidden from discovery.
Accomplishments we're proud of
We have connected real workout logging, visible rank progression, deployed AI, and live multiplayer in one prototype.
The initial fine-tuning pilot passed 33 of 33 development checks for structured edits and record protection. After separating the coaching role, a targeted live rehearsal also produced a complete 28-day program with varied sessions, rest days, and weekly progression while preserving the active workout. These are development regression results, not an independent benchmark of coaching quality.
Our verification work includes iOS unit tests, backend and Firebase access-rule tests, emulator integration checks, and native simulator rehearsals for training, equipment sharing, public/private spaces, messaging, and cardio.
What we learned
Useful workout AI needs clear boundaries between advice, a future plan, and a completed record. A broader coaching model and a focused editor serve different needs. We also learned that continuity matters: the lifter's workout, trainer identity, and progress should stay consistent across screens and devices.
What's next for LiftRank
We want early lifter feedback and a broader, independently reviewed coaching evaluation. Next steps include more physical two-phone proximity tests, paired Apple Watch and outdoor-route validation, and configured image-generation rehearsals.
We plan to expand the registered gym directory and explore real floor-plan capture. Current gym scenes are stylized presets. Longer-term work includes account recovery, cross-device continuity, and push notifications.
Explore LiftRank
Try the interactive website tour or visit our GitHub project. The browser tour uses scripted sample workouts, ranks, and members; it does not connect to live AI or multiplayer. LiftRank remains a working iOS prototype.
Built With
- healthkit
- llm
- swift
- swiftdata
- swiftui