← Writing

Four Seconds

Why Deep Range IQ only tracks form and not makes

To fix a jumpshot in basketball there are a few options: 1) hire a private coach 2) use a multi-camera system at a training facility 3) watch videos on YouTube and mimic them. Each of these trades off quality vs. simplicity vs. speed. But what if there is a way to get timely feedback easily at a level sufficient to improve a shot? Enter Deep Range IQ.

Fitting this niche required key constraints:

  1. Simplicity: 1 camera to set up
  2. Quality: feedback on the biggest ROI metrics to improve a user’s shot
  3. Speed: feedback is real time

These constraints directly drove design.

Simplicity

One camera placed once and untouched until the session ends. That is the simplicity hard gate as it minimizes friction for the user. A shooter who wants to improve their shot knows a camera is needed but adding multiple cameras or adjusting cameras midsession creates additional headwinds that may turn off users.

The one burden: you still need a tripod or something else to raise the camera. Analysis works best when the capture is at the same plane as the user’s shot, which is only possible when the camera is off the ground.

Placement also decides what is measurable. For example, a profile camera cannot see elbow flare, which needs a head-on angle, or entry angle, which needs a lens aimed at the rim.

Quality

There are many items to track during a basketball shot to improve shot quality.

  • Knee load: signal on how much energy a user gets from their legs
  • Set point: optimum location to transition from prepping for shot into release
  • Release angle: signal on how the ball leaves the hand
  • Entry angle: signal on how the ball enters the hoop and the resultant target area size
  • Backspin of ball: how softly the ball bounces at the rim
  • Arm extension: signal of how much energy is successfully transferred into the ball and how consistent the launch angle is
  • Elbow flare: signal of lateral alignment relative to the target line
  • Fluidity and dip: signals on how much energy is conserved and transferred from the legs all the way through the shot
  • Guide hand position: signals how much disturbance the ball gets during its line of travel
  • Finger placement: affects shot trajectory stability and axis of ball rotation

Given the one-camera limitation, many of these would be difficult to track concurrently. Additionally, when selecting metrics to track, I chose metrics that not only can be tracked from the same plane, but also have a high ROI. High ROI comes from fixing fundamental shot geometry and maximizing energy transfer. Thus the final four metrics are: set point, release angle, knee load, and arm extension. These are all trackable from a camera facing a side profile of the user.

Speed

From when a user shoots a basket, rebounds the ball, and comes back to the same spot for the next shot, it is roughly four seconds (anecdotally).

Four seconds means there’s not enough time to send data to the internet, analyze it in the cloud, and receive it back. Poor Wi-Fi or a spotty cellular signal cause weak connections to the cloud. Additionally, sending high-resolution video is bandwidth-intensive. It not only takes time but also drains a phone’s battery.

To give feedback within four seconds, everything had to be done on device. Given relative hardware consistency, initial development was on iPhone. Modern iPhones have an NPU; this runs Apple’s Vision Framework to track key points on the shooter’s body. The CPU then takes over to do calculations of the four key metrics and provide audio feedback to the user before the next shot.

The result: from shot detection to the first word of coaching (e.g. “launch angle too high; flatten your shot”) is about 0.5 seconds. The rest plays while the shooter is chasing the rebound, so the coaching finishes before the shooter is back at the spot.

What the constraints killed

The app never knows whether the shot went in. Framing the camera to see the shooter and the rim costs form signal, and form improvement is the primary job of the app. The bet is that mechanics come first: a shooter with a repeatable release can adjust his or her own aim.

Running everything on device sets a hardware floor. Development happened on an iPhone 15 Pro Max (A17 Pro), which sustains the full 60 fps pipeline comfortably. An iPhone 11 (A13) does not; the camera delivered 60 fps while the pose pipeline processed about 33, dropping every other frame.

The tempting explanation is the Neural Engine. The A13 is the only 8-core ANE in the modern lineup, and everything since is 16-core. But peak TOPS is a throughput ceiling, not a latency number. Per-frame cost is just as easily dominated by memory bandwidth or the CPU work on either side of each inference. Work remains to isolate the root cause. For now the device floor assumption is iPhone 13.

On my way to shooting like Steph Curry

Some of my practice sessions were easily 100 shots. That’s 100 chances to correct my form. Feedback at the end of the session is bankable for next time. Feedback coming in four seconds is usable for each shot during the session to build good habits and consistency.

With the feedback, my release got repeatable. Repeatable meant I could adjust my aim and trust the result. Now when I play pickup, I always get guarded at the 3-point line.

Deep Range IQ is live on the App Store. Check it out here.