Ryan YangSoftware Engineer
Menu
← Back to selected work

Engineering case study

TrainTogether

An on-device fitness coach with live pose tracking, repetition counting, form scoring, session history, health integration, and local language-model coaching.

TrainTogether app icon
Role
Independent Software Engineer
Timeline
Nov. 2025 - Present
Platform
iOS / iPadOS
Status
Released

Overview

An iOS and iPadOS fitness coach that performs live pose analysis, repetition counting, form scoring, workout tracking, and on-device coaching.

Contributions

  • Shipped real-time pose tracking, rep counting, form scoring, HealthKit synchronization, and local session history.
  • Built the MediaPipe landmark-to-pose pipeline with per-frame smoothing, rolling-window validation, and body-angle constraints to stabilize counts under real-camera noise.
  • Designed FormConfig and RepFormTracker so 32+ exercise detectors share one scoring and feedback path.
  • Integrated llama.cpp coaching, SQLite persistence, optional CloudKit backup, and deterministic mock-landmark tests.

System design

Capture and poseCamera frames are converted into normalized MediaPipe landmarks and filtered before exercise evaluation.
Exercise logicExercise-specific detectors plug into shared rep-state, scoring, and feedback abstractions.
Local intelligencellama.cpp provides coaching on device after model installation, reducing network dependency.
Platform servicesHealthKit, CloudKit, local databases, and Apple UI frameworks connect the analysis engine to the complete product.

Outcome

A production fitness workflow in which the core analysis path remains local, testable, and reusable across a growing exercise catalogue.

Core stack · SwiftUI · MediaPipe · llama.cpp · SQLite · CloudKit · HealthKit

Discuss the work

Need implementation detail or engineering context?

Email a specific question about the architecture, trade-offs, or validation approach.