Skip to content
Harjot Sandhu
6 / 6

COURT DNA — Basketball Player Style Explorer

Built a basketball tool to compare player seasons and explore shot charts across 30 NBA seasons.

2026

Why I built this

Basketball is something I naturally spend time thinking about, and comparing players is a big part of the sport. I wanted to build a simple way to pick a player, see what makes their game different, and find other players with similar styles.

Tools I used

  • Python / Pandas: cleaned the data and checked player and shooting records.
  • React / TypeScript: built the search, comparisons, and interactive court.
  • SVG: drew the court, shot markers, and highlighted lines.

What I did

  • Built tools to compare players across different seasons.
  • Matched player records across sources and checked millions of shots against season totals.
  • Added shot charts with makes, misses, hover stats, and deep threes from 30 feet or more.
  • Added checks for missing data, incorrect records, and mismatched totals.

Some records have small data gaps. Player similarity uses only the stats included in the model.

Visual proof

Screenshots from the working app.

COURT DNA profile for LeBron James, 2008–09, with his season stats and a playing-style chart.

Explore a player’s season stats and playing style.

COURT DNA shot chart for LeBron James, 2008–09, with made and missed shots on a half court and a tooltip reading 131 made, 367 attempts, 35.7% shooting for three-pointers.

Hover over the court to see shooting stats.

COURT DNA Player Map for the 2008-09 season, with LeBron James selected as a highlighted white point labeled 2008-09, connected to nearby players, and the selected-player panel below listing his most similar players with match scores

Find players with similar statistical profiles.

Try COURT DNA

Choose a player to see their playing style.

LeBron James

2008-09 · CLE · SF

Primary Creator

What I learned

Matching records and checking totals mattered as much as building the charts.

What I’d do next

Add playoff comparisons after checking the playoff data.