Tennis match visualizer

Tennis Match Visualizer is a simple interactive application that I have written to visualize professional tennis matches point by point. It parses shot-by-shot data from the Match Charting Project, a nice initiative that systematically records pro tennis matches in a standardized format, making it possible to analyze patterns and strategies.

Screenshot of the GUI.

The app reads CSV files from the Match Charting Project and brings the match to life using VPython, a (very) simple 3D animation library. While the data is not precise enough for an exact reconstruction of every shot, the main goal was to provide a clear and engaging visual impression of the flow, positioning, and dynamics of each point.

The application allows users to:

  • Select the tournament and match to visualize
  • Run matches point by point, with full animation
  • Control playback with play/pause, slow motion, and point navigation buttons
  • Switch between day and night modes for the court
  • Interact with the camera: zoom, rotate, and move freely
  • View a live score table and follow the match progression

This project started purely as a personal side hobby. It grew out of curiosity and a desire to explore Python, GUI development, and 3D animations in a hands-on, playful way. The goal has always been to learn by doing, experiment with visualizations, and create something fun and interactive.