MCPcopy Index your code
hub / github.com/AggieSportsAnalytics/CourtCheck

github.com/AggieSportsAnalytics/CourtCheck @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
859 symbols 2,366 edges 192 files 180 documented · 21%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CourtCheck CourtCheck Logo

AI-powered tennis analytics by Aggie Sports Analytics

See every shot. Know every move.

🎾 courtcheck-rho.vercel.app


Tennis has always been played on instinct. CourtCheck changes that.

Every game day, UC Davis tennis coaches face 6 singles matches worth of footage to review. A thorough analysis of each video takes hours, time that coaches and players simply don't have.

⏱️ Before CourtCheck ⚡ After CourtCheck
20+ hours of film review per week 5-minute read per match
Manually scrubbing through footage Instant heatmaps, stats & AI reports
Easy to miss key patterns Every shot, bounce & position tracked

No sensors, no special equipment, no setup. Just upload your video.


🎯 What It Does

🎾 Ball & Bounce Tracking Frame-by-frame ball trajectory with precise bounce event detection across the full court.

🗺️ Player Heatmaps Visual court coverage maps that reveal positioning patterns, movement tendencies, and court dominance.

📊 Stroke & Shot Analysis Automatic shot classification with percentages and breakdowns across a full match.

🤖 AI Scouting Reports GPT-powered match summaries that synthesize player positioning and ball data into actionable coaching insights.

📈 Match & Opponent Stats Aggregated performance trends across multiple matches with head-to-head opponent breakdowns.

🎥 Recordings Library Upload, manage, and replay processed match videos, all in one place.


⚙️ How It Works

  1. 📤 Upload a match recording through the dashboard
  2. 🧠 CourtCheck processes the video using GPU-accelerated computer vision models
  3. 📋 View your analytics in minutes: heatmaps, shot charts, stats, and scouting report

🛠️ Built With

  • 👁️ Computer Vision: YOLOv8, OpenCV, PyTorch, CatBoost
  • 🤖 AI: OpenAI GPT-4o-mini
  • 🌐 Frontend: Next.js, TypeScript, Tailwind CSS
  • ⚙️ Backend: Python, FastAPI, Modal (A10G GPU)
  • ☁️ Infrastructure: Vercel, Supabase

Built by Aggie Sports Analytics at UC Davis. 🐮

Extension points exported contracts — how you extend this code

Recording (Interface)
* Recordings list. Ported from docs/brand-drop/mocks/matches-list.html. * * Layout: * - h1 "Every recording, scrubb
frontend/web/app/recordings/page.tsx
User (Interface)
(no doc)
frontend/web/types/index.ts
VideoProcessingStatus (Interface)
(no doc)
frontend/web/types/index.ts
PlayerDetection (Interface)
(no doc)
frontend/web/types/index.ts
BallPosition (Interface)
(no doc)
frontend/web/types/index.ts

Core symbols most depended-on inside this repo

cn
called by 41
frontend/web/lib/utils.ts
rec
called by 18
frontend/web/lib/demo/demoData.ts
pct
called by 11
backend/pipeline/run.py
daysAgo
called by 10
frontend/web/lib/demo/demoData.ts
_winner_from_end_reason
called by 10
backend/pipeline/rallies.py
_go
called by 10
docs/brand-drop/mocks/case-comp/deck-stage.js
useAuth
called by 9
frontend/web/contexts/AuthContext.tsx
read_manifest
called by 9
backend/tools/_swing_io.py

Shape

Function 592
Method 178
Class 45
Interface 44

Languages

TypeScript55%
Python45%

Modules by API surface

docs/brand-drop/mocks/case-comp/deck-stage.js62 symbols
backend/tests/test_rallies.py41 symbols
backend/training/train_tcn.py28 symbols
backend/pipeline/run.py25 symbols
backend/tests/test_pipeline_perf.py18 symbols
frontend/web/app/recordings/page.tsx17 symbols
frontend/web/components/recordings/VizPanel.tsx16 symbols
backend/models/stroke_classifier_tcn.py15 symbols
backend/tests/test_player_tracking.py14 symbols
backend/pipeline/rallies.py14 symbols
backend/models/ball_tracker.py14 symbols
frontend/web/app/players/[id]/page.tsx13 symbols

For agents

$ claude mcp add CourtCheck \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact