RYTHM
Draft

A phone or tablet becomes a full basketball analytics system — real-time shot detection and match analysis powered by computer vision

Point a phone or tablet at a live basketball match and get real-time shot detection, player tracking, heat maps, and full team analytics — no specialist hardware, no camera rigs, no third-party systems. Just a device you already own and a computer vision pipeline built to perform at match speed.

0%
Shot detection accuracy in live match conditions
5+
Shot types detected and classified in real time
0
Months from brief to deployment
Challenge

Professional-grade basketball analytics — without the professional-grade hardware budget

Sports analytics at the professional level typically requires fixed camera installations, dedicated hardware, and expensive third-party software licences. The brief was to change that equation entirely — building a system that delivers the same quality of insight using nothing more than a phone or tablet held by someone in the stands. Getting computer vision to perform reliably in the unpredictable conditions of a live basketball match — varying light, fast player movement, overlapping bodies, hand-held camera shake — was the core technical challenge from day one.
C-01

Real-time detection on consumer hardware

YOLO-based object detection had to run fast enough on a phone or tablet to be useful during a live match — not after it. Processing latency that made the analysis feel behind the action would make the tool unusable for the coaches and analysts it was built for.

C-02

Accurate shot classification across five types

The system needed to distinguish between layups, three-pointers, mid-range shots, free throws, and other shot types — not just detect that a shot occurred. Each shot type has different visual characteristics, trajectories, and court positions, requiring separate training and careful annotation work.

C-03

Player tracking in a crowded, fast-moving environment

: Basketball involves ten players moving rapidly, frequently overlapping, and changing direction instantly. Tracking individual players consistently enough to attribute shots, build heat maps, and generate per-player statistics required a robust tracking pipeline that could handle occlusion without losing identity.

C-04

Useful output, not just raw data

Detection and tracking are only half the product. The analysis had to be surfaced in a way that coaches and analysts could actually use — shot charts, heat maps, player breakdowns, and team stats presented clearly on a tablet screen during or immediately after a match.

How it works

From camera feed to full match analysis — in real time

STAGE — 01 / DETECT
Camera pointed
User opens app on phone or tablet, points at the live match
Frames captured
Video feed processed frame by frame through the YOLO detection pipeline
Players tracked
Each player identified and tracked continuously across frames
Shots detected
Ball trajectory analysed, shot type classified, outcome recorded
Data assembled
Per-player stats, shot charts, and heat maps built in real time
Analysis delivered
Full match breakdown available during play and as a complete post-match report
Technical tension

Getting YOLO to perform at match speed on a handheld device

The annotation pipeline was the foundation everything else depended on. Before any model training could begin, thousands of frames from basketball match footage had to be manually annotated — labelling players, ball positions, shot types, and court zones with enough precision and variety to teach the model to generalise across different court environments, lighting conditions, and camera angles. Getting the training data right took longer than any other phase of the project, and the 90% accuracy achieved in live conditions was a direct result of the rigour applied at this stage rather than model selection alone.

Running YOLO on a mobile device without unacceptable latency required careful model optimisation — quantisation and pruning to reduce inference time without meaningful accuracy loss. Player tracking across frames introduced its own challenge: when players overlap or move out of frame temporarily, the tracker has to re-identify them correctly when they reappear rather than treating them as new players. Solving re-identification reliably enough to maintain accurate per-player statistics throughout a full match was one of the hardest problems on the project, and the one that required the most iterative refinement before the accuracy numbers held consistently.

yolo-pipeline — live shot detection
01# process frame from camera feed
02results = model(frame, conf=0.65)
03for detection in results[0].boxes:
04 cls = int(detection.cls)
05 label = CLASS_NAMES[cls] # 'layup', '3pt', 'midrange'
06confidence = float(detection.conf)
07 bbox = detection.xyxy[0].tolist()
08 if label in SHOT_TYPES and confidence > 0.70:
09player_id = tracker.assign(bbox)
10 → shot logged: player_id, shot_type, court_zone
11 → heat map coordinate updated
12 → team stats aggregated in real time

Every frame feeds the same real-time pipeline

From the moment the camera is pointed at the court, every frame runs through the same detection, tracking, and classification loop — building the full match picture continuously without any manual input.
Capabilities

Four things the system delivers — built for coaches and analysts who need answers during the match, not after

SHOT DETECTION

Real-time shot detection and classification

Layups, three-pointers, mid-range shots, free throws, and other shot types detected and classified as they happen. 90% accuracy in live match conditions. Each shot logged with player attribution, court position, and outcome — made or missed.

PLAYER TRACKING

Continuous player tracking across the full match

Each player tracked individually throughout the match, with re-identification handling overlaps and temporary exits from frame. Per-player shot counts, shot accuracy, and movement data built continuously from the tracking layer without manual tagging.

HEAT MAPS

Shot and movement heat maps

Visual heat maps showing where each player shoots from, where they spend time on court, and where the team generates its highest and lowest efficiency. Updated in real time and available as a full post-match view.

TEAM ANALYTICS

Full team and match breakdown

Team-level shot charts, scoring breakdowns by shot type, efficiency by court zone, and comparative stats across players — all delivered through a tablet-optimised interface designed for use on the bench or in the analysis room.

Results

90% shot detection accuracy. Five shot types classified. Full match analytics from a device in your pocket.

The system was delivered in eight months and deployed as a tablet-optimised hybrid app on iOS and Android. Shot detection accuracy reached 90% in live match conditions — across varying court environments, lighting conditions, and camera angles — driven by the rigour of the annotation pipeline built during the training phase. Player tracking maintained individual identity consistently enough to generate reliable per-player statistics throughout full matches. The post-match analysis output — shot charts, heat maps, player breakdowns, and team stats — was available immediately after the final whistle with no manual data entry required. The client received a working system that replaces thousands of dollars of specialist hardware with a device already in their pocket.
0%
Shot detection accuracy in live match conditions
5+
Shot types classified in real time
8mo
Brief to full deployment
0
Specialist hardware required

Want to turn a camera into an analytics system for your sport?

We've built real-time computer vision pipelines that run on consumer hardware and deliver professional-grade insight. If your sport generates data that nobody is capturing yet, that's exactly the kind of problem we want to solve. Let's talk.

Let's Talk →