As someone who spends hours on the tennis court and just as many in front of a computer, I’ve always wanted to connect those two parts of my life. So I built something that does exactly that: an AI-powered tennis match analysis system.

Using computer vision models like YOLOv8 and custom motion-tracking algorithms, I trained the system to detect players and the ball in real time. From there, I programmed it to calculate performance metrics such as player speed, shot velocity, rally length, and total distance covered, all by analyzing movement frame by frame.

What started as a coding challenge quickly became an engineering one.

TENNIS SHOT ANALYSIS

Courtside Computing: WHERE MATCH PLAY MEETS MACHINE LEARNING

One of the most rewarding parts of the project was turning the system on myself. In addition to training on public datasets and professional match footage, I recorded and annotated videos of my own matches. Watching the model track my court positioning, measure my shot speed, and map my movement patterns transformed abstract data into something personal and actionable. It changed how I think about my own performance.

As the system improved, so did my curiosity. I began formally evaluating its tracking accuracy and latency under different match conditions, eventually writing a research paper analyzing its real-time performance and model reliability. The paper is currently under review for publication.

This project represents more than just code. It’s the intersection of a sport that has shaped me over the past four years and a field: artificial intelligence, that I’m excited to keep exploring. It’s my first step toward combining athletics and machine learning, and definitely not my last.

GitHub:
https://github.com/Arush-Singhania1

Annotated frame in the dataset, featuring player 2 (Myself)

Visualisation of Results, highlighting Player 2 (Myself)

Individual frames of a Video, featuring player 2 (Myself)

Real matches aren’t clean datasets. There’s motion blur, inconsistent lighting, fast exchanges at the net, shifting camera angles, and partial occlusions. Getting the system to work in controlled settings was one thing; getting it to perform reliably in live-match conditions forced me to think more deeply about optimization, error margins, and real-time processing constraints. It pushed me beyond “Does it run?” to “Can it be trusted?”

Click here to access my published research paper on Tennis Shot Analytics.