Tennis Sync
The Project
Tennis Sync is an intelligent mobile application that came from a simple idea. What if your tennis ball machine could truly mimic the way you, or any player, actually hits the ball? Instead of relying on preset drills, Tennis Sync utilizes real footage of a player’s strokes, converting the speed, spin, and trajectory into commands for the machine. The moment you upload a short video of a tennis match, our app’s computer-vision engine starts analyzing it. It tracks the ball and racket, measures the ball's speed, spin, and where it lands, and then uses those numbers to control the ball machine. The result is you feeling like you are actually playing against a human opponent, because you are, in effect, facing a human. The inspiration for this project came from countless hours spent practicing alone at the courts. We noticed that, while ball machines are great for repetition, they do not come close to mimicking an actual game against an opponent where sudden changes in pace, topspin, or shot selection from the opponent can cost you the point. Building on advances in object detection and sports analytics, I realized we could bridge that gap. By combining a video-analysis model with a mobile app and a Bluetooth connection, we could program a ball machine to “play” the footage back at you. However, turning this concept into reality was difficult. Capturing a tennis ball traveling at over a hundred miles per hour requires extremely precise detection. In early tests, the algorithm would constantly lose track of the ball due to it blurring, and low-light conditions only made it even worse, as similar colors between the ball, racket, court, and background would confuse our detector. To address this, we imported massive amounts of training data focused on the detection of tennis balls and also added brightness adjustments so that the model could stay locked even when balls were moving at fast speeds or where conditions were not optimal. Then came the challenge of hardware control. Translating the data derived from the video, like a spin rate or a trajectory angle, into commands that a tennis ball machine can interpret is extremely delicate. Tennis ball machines have their own limits, so replicating certain shots like slices perfectly sometimes proved impossible. And when our app sent Bluetooth commands a fraction of a second too late, the outgoing ball would miss by several degrees. After some trial and error, we learned to code speed, spin, and trajectory into a single command sequence with brief, fixed pauses between each write. That way, even if Bluetooth transmission lagged, the machine would receive every parameter in the right order and execute it as intended. In the end, Tennis Sync started from a simple wish, to make practicing on a ball machine feel more like playing with a real person. It wasn’t always easy, but seeing it finally work, watching the ball machine mimic a human play style, makes it all worth it.
About the team
Team members
More cool Mobile apps projects
DeliDineSoft
Mobile apps
Cozy Code
Mobile apps
TGSW Coding Academy Safe Guard
Mobile apps