CourtSense
Built at Meta Global AI Developer Hackathon · Oct 26, 2026 · Remote

CourtSense turns a tennis coach's ordinary training video into movement data. The problem: club coaches film practice all the time, but they can only watch it back. Knowing how far a player ran, how fast, and where they stood usually takes tracking systems that most clubs can't afford. Our coach has one camera behind the baseline. What we built during the hackathon (everything in the public repo is new): - SAM 3.1 tracks both players through a whole session in one streamed video request. A 12-minute session (10,688 frames) costs about $2.14. - Four clicks on court-line intersections calibrate the camera, so every foot position becomes a point on the court in meters. - Per-player metrics: distance, average and peak speed, time behind the baseline, at the baseline, mid-court and at the net, a left/center/right split and a heatmap, with the SAM masks drawn on the video in the browser. - A Muse Spark coach assistant that picks its own tools, jumps the video to the moment it talks about, can watch that clip itself, and has every number in its answer checked against the data before the coach sees it. - The coach can also ask by voice: Muse Voice Transcribe turns the spoken question (English or Turkish) into text in the question box, so the coach can check it before asking. - A short coach report written from measured numbers only and checked the same way as the answers, in English or Turkish (our coach's language). - A practice card: the coach writes a goal for the next practice, and Muse Image draws it as a drill on a top-down court. The picture holds no numbers; the numbers stay in the caption, straight from the measurements. Honest limits: there is no ball tracking yet, and with a low camera the far player's depth is rough; the app marks those values instead of guessing. Tracking can also lose a player. In a second real test at half the frame rate (7.5 fps), SAM 3.1 stopped tracking Player B for the last 2 minutes of the 12-minute session and did not pick them up again, so B's distance came out 18% short (533 m instead of 650 m). In the same run a stray object next to Player A stood in for them for about 2 seconds and gave a false 7.8 m/s top speed, which the assistant reported as verified: the check compares answers with the tracking data, so it cannot catch a tracking error. That is why the upload screen offers only 15 fps, the mode we validated. Every SAM request in our tests stopped at 16 tracked objects. This may be why Player B was not found again, and if so, longer videos could lose a player at 15 fps too, but it is our reading of the data, not a confirmed limit: Meta's docs say up to 16 objects per frame. Accuracy, measured: we hand-marked both players' feet in 70 frames of the coach's session. The near player's position is within about half a meter (0.46 m on 30 frames not used to build anything). For the far player we improved the estimate after submission (error 1.35 → 1.08 m on 15 frames not used to build it), and the app shows the far player's zone shares as ranges. The assistant passed an offline test set 23/23 (7 of them answers built to game the check) and a live run of 8 real questions, 8/8 verified. Eligibility: the rules list "sports analyzers or coaches" among projects to avoid, so we asked the organizers in Discord #questions before building (Oct 27) and again before submitting (Oct 28). Cerebral Valley's ruling: "a tennis performance analyzer sits close to the sports analyzers category ... but using SAM 3.1 for it is a new take, so it's fair game as long as it's something you'll actually use." Organizer Adam Blumenfeld confirmed: "Yep we good here." CourtSense is built around our own coach's sessions: the coach filmed the footage, both players consented, and the demo includes the coach's voice note about how they plan to use it.