Inspiration

When you practice tennis alone, it is hard to tell what changed between two swings. CourtSense gives you one thing to try on the next ball while you are still on court.

What it does

An iPhone on a tripod tracks body pose with Apple Vision. A paired Apple Watch measures wrist motion and supplies a timing signal for contact. CourtSense analyzes the stroke, selects one coaching cue, and delivers watch haptics and spoken feedback through connected earbuds. After practice, a local session report brings together stroke scores and recurring technique cues. Core practice needs no login or API key. An optional DeepSeek review uses structured session metrics. Camera frames stay on the iPhone.

How we built it

We used Kiro Crew to build a shared Swift stroke-analysis package, then connected the iPhone camera, Apple Watch workout and motion sensing, and audio feedback. The iPhone and watch use SwiftUI and exchange messages over WatchConnectivity. The repository includes Kiro development evidence and instructions to build and test the app.

Challenges and what we learned

Camera frames and watch events arrive on separate clocks. We implemented clock-offset estimation and time-window matching so the watch contact signal can inform the analysis. We separated continuous 2D tracking from selective 3D processing and kept each cue short enough to use between swings.

Demo notes

The iPhone screens come from the running simulator with a labeled sample session. The tennis footage is AI-generated, and the pose overlay is replayed from Apple Vision analysis of that footage. The watch preview, haptic effect, and earbud delivery illustrate the three-device workflow.

Built With

Share this project:

Updates

Submission history