Side Projects
Personal, curiosity-driven builds outside the main research line — where I get to tinker with new platforms, ship to app stores, and see what sticks.
Cadenza — watchOS Rhythm Training App
Left: Play Hub with daily goal ring · Right: Data Center — weekly distribution and by-challenge breakdown
A personal watchOS app that turns wrist rhythm and heart-rate signals into structured training data. Fully local, zero backend — no analytics SDK, no cloud upload.
- Role — Solo designer, developer, and submitter
- Platform — watchOS 10+ · Swift · SwiftUI · Combine
- Timeline — 2026.03 – Present · v2.0.1 (2026-04)
- Status — Submission-ready, TestFlight in prep (Health & Fitness, 17+)
Highlights
- Rhythm detection — CoreMotion-based wrist-shake recognition with EWMA smoothing and magnitude auto-calibration; per-rep haptic feedback tuned by sensitivity profile.
- HealthKit training loop — Live HR stream, HRV (SDNN 30d), resting HR, wrist-temperature deltas; Karvonen HRR + Tanaka HRmax for zone targeting; 4 challenge modes (Frequency / Surge / Endurance / HR Zone) with S–D grade scoring.
- Widget complications — 3 family types (accessoryCircular / Rectangular / Corner) sharing an App Group snapshot pipeline; color-temperature progress arc, 7-day mini-sparkline drawn via Canvas.
- Progression system — 32+ achievements (Bronze → Platinum tiers), XP curve, combo streaks, 28-day history heatmap, and 11 rule-based AI insight cards across 7d / 30d / 90d windows.
- Engineering craft — Localized to 5 languages (xcstrings, 500+ keys, Bundle-swizzle runtime hot-switch), Reduce Motion auto-degrade, scene-phase-driven widget refresh, MetricKit-only local diagnostics.
Tech stack — Swift SwiftUI Combine HealthKit CoreMotion CoreBluetooth WidgetKit Apple Charts xcstrings
Privacy — All data stays on device. No analytics, no crash-reporting SDK.