Skip to content

EPFL · COM-480 Data Visualization · spring 2026 · team of 3

HoopViz

Decades of NBA stats, turned into a living map you can move through time.

D3.js · JavaScript · Python

Live siteVideoGitHub

The situation

Basketball stats sites read like a tax return: tables, filters, more tables. We wanted 46 seasons of NBA history you explore by moving through it, not by sorting columns.

The system

play-by-play6.1M shotsPythonthe mapteams, playersthrough timethe courtdashboards
  • The data: NBA seasons from 1980 to 2025, and 6.1 million shots from play-by-play (1996 – 2024), processed in Python from 1.6 GB of raw files.
  • A map of teams and players on the metrics you choose, with a time slider that animates the seasons.
  • Team and player dashboards (radars, matchups, game-by-game curves), an interactive court, a playoffs mode and the awards. All in D3.js and plain JavaScript.

Results

seasons
46
players
~6,200
games
~55,000
shots
6.1M

NBA data, 1980 – 2025; shots from play-by-play, 1996 – 2024.

46 seasons, about 6,200 players, 55,000 games and 6.1 million shots, in one site that runs in the browser.

Try it

The site is live: open HoopViz. There is also a video walkthrough and the code on GitHub.

Next