github linkedin email
Basketball 3-point Detector


Is there some way tech could augment your training routine by giving you data that measures your progress? For example, what if there was a way to track your shooting location and percentages real-time as you played basketball?

Heatmap reference:,c_limit/ff_mccluskyexcerptgallery_f.jpg

Source: Wired article, One Man’s Quest to Track Every NBA Shot Remade Basketball

This is something that professional coaches already use and rely on when training their teams, but also something that hobby basketball players like my friends and I would love to try. Unfortunately, there aren’t a lot of products


There are several products and services that attempt to solve parts of that problem at varying price points:

  • 94Fifty put out a Bluetooth-enabled basketball that measures shooting angle, rotation and other mechanics as you shoot and reports data to a smartphone app. Cost: $150
  • SOLIDshot sells a custom tailored sleeve equipped with multiple sensors on the arm, elbow, wrist, and palm that measure proper shooting form and report data to a smartphone app. Cost: $500
  • SportVU is a joist mounted 6 camera system installed in basketball arenas to track speed, distance, player separation, and ball possession real-time. Cost: $100,000

SportVU camera system diagram

Beyond products already in market, I also explored attempts that didn’t work by consulting a patent advisor with experience founding a wearable tech startup. In his experience, the key to achieving wide adoption of tech-augmented sports products is to avoid cumbersome hardware setup and leverage simpler interfaces like mobile apps.


The research shows that a solution is possible and already exists in the market, but none address the real-time position tracking problem at an affordable price for hobbyist and aspiring professional basketball players. A solution that addresses those constraints would require some innovation, sensor devices, and a tech savvy user.

As a passion project, it was important to scope the problem into manageable pieces given limited time and resources. Instead of attempting to track player position in a continuous 2D plane, it may be easier to track player position in a discretized 2D grid. Even easier would be to track a player’s occupancy in a few important regions of the court, for example the 2-point region and 3-point region. This reduced functionality would still be useful to automatically determine point value during a game rather than relying on the players or referees who may be biased. It might also be extended to solve the discretized 2D grid problem and perhaps the continuous 2D plane problem.

So the scoped problem was revised to be:

Design and prototype an automated system to track player occupancy in certain regions of a basketball court that is affordable, unobtrusive, and easy to use for a tech-savvy basketball player.

Basketball 2-point and 3-point regions


Designing an automated system to track a player would require sensors that can be easily programmed and automated. Designing an affordable solution would require sensors that are cheap or easily accessible to a typical user, such as:

  • smartphone sensors:
    • accelerometer
    • gyroscope
    • magnetometer
    • proximity sensor
  • rangefinders:
    • infrared
    • ultrasonic

Built-in smartphone sensors

The above sensors operate on different physical phenomena, but all can be manipulated or contrived in some way to measure distance and direction. Each sensor also has its own specifications that limit its range and accuracy. To choose the right sensor for the job, important specs were compared in the tables below.

Ultrasonic Infrared Accel/Gyro Magnetic Proximity
Range 4 m 1.5 m unbounded 2 m*
Accuracy 0.001 m variable exp growth 0.01 m
Availability specialty commercial consumer consumer
Cost $25 $15 $30 $1


After selecting magnetometer as a best-in-class, there were several magnetometers to prototype with, starting with the one embedded in most smartphones. Building a solution using a smartphone means that the technology is readily available to a typical consumer and can be as simple as downloading an app.

1st Iteration

So, the first prototype used a cheap magnetic strip to mark the 3-point boundary and a simple iOS app that detects when the phone crosses the boundary. In the illustration below, crossing into the 3-point region changes the app’s background color green and the 2-point region changes it red.

Diagram of iOS app prototype

The iOS app uses 3-axis magnetic field measurements and logic to determine if a change in magnetic field direction indicates crossing the magnetic strip boundary.

Screenshot of app's magnetometer measurements

With some simple “debounce” logic to filter out noise at the boundary and a recalibration routine to initialize which region the phone is in, a working proof-of-concept using a magnetometer was born.

2nd Iteration

This prototype is cheap and easy to use, but isn’t a perfect solution. It is inconvenient for players to hold their phone while playing, and obstructive to lay magnets on the court. So the next iteration tries to address those issues by changing the setup. Instead of holding a bulky smartphone, the player holds a small magnet. Instead of a setup on the court, the hardware is set up off the sidelines. Multiple magnetometers are placed along the perimeter and measure changes in magnetic field as the player moves around the court. An off-court device processes the measurements to determine the player’s occupancy on the court.

Diagram of magnetometer network prototype

This prototype no longer uses smartphone sensors. Instead, it uses cheap magnetometers with a breakout board connected to a Raspberry Pi as the processor.



Future Work

Time/ Resource Management