A jump shot is a projectile
Ignore air for a moment. After release, the only force on the ball is gravity, so its horizontal velocity stays constant and its vertical velocity falls steadily. With release height h₀, speed v₀ and launch angle θ, the position at time t is:
x(t) = v₀ · cos θ · t y(t) = h₀ + v₀ · sin θ · t − ½ · g · t²
Eliminating time gives the familiar parabola — the path the dotted trajectory guide draws on the court:
y(x) = h₀ + x · tan θ − g · x² / (2 · v₀² · cos² θ)
Solving for release speed
Set y(x) equal to rim height at the rim's horizontal distance and solve for speed. With Δh the rise from release to rim:
v₀² = g · x² / ( 2 · cos² θ · (x · tan θ − Δh) )
For a free throw — x = 4.19 m, release 2.15 m, rim 3.05 m, so Δh = 0.90 m — a 52° launch needs v₀ ≈ 7.13 m/s. If the bracket (x · tan θ − Δh) goes negative, no speed will ever work: the launch line points below the rim. That is exactly when the Shot Lab's power meter shows OUT OF RANGE.
The minimum-speed angle
Plot required speed against angle and you get a shallow valley. The bottom of that valley — the angle that reaches the rim with the least effort — has a tidy closed form:
tan θ* = ( Δh + √(Δh² + x²) ) / x θ* = 45° + ½ · arctan(Δh / x) v₀*² = g · ( Δh + √(Δh² + x²) )
At the free-throw line that gives θ* = 51.1° and v₀* = 7.13 m/s. Because the valley is flat, launching a few degrees either side costs very little extra speed — which is why good shooters can choose an arc for other reasons, such as entry angle.
Entry angle and the size of the hoop
The rim is 0.457 m across; the ball is 0.239 m. Coming straight down, that leaves 0.218 m of play. Coming in at a descent angle α, the rim's opening as seen by the ball shrinks to D · sin α. The ball cannot pass cleanly below α ≈ 31.5°, where the effective opening equals the ball's diameter.
In vacuum the entry slope has a neat relationship with the launch angle:
tan α = tan θ − 2 · Δh / x
| Launch θ | Speed v₀ | Apex | Entry α | Effective opening |
|---|---|---|---|---|
| 45° | 7.24 m/s | 3.49 m | 29.7° | 0.226 m (tighter than the ball) |
| 52° | 7.13 m/s | 3.76 m | 40.4° | 0.296 m |
| 58° | 7.27 m/s | 4.09 m | 49.5° | 0.348 m |
Raising the launch from 52° to 58° costs just 0.14 m/s but widens the effective target by 5 cm. That trade-off is the whole argument for arc.
Sensitivity: why tiny errors matter
Differentiate the speed equation and you get the shot's sensitivity to speed. For the 52° free throw:
Δx ≈ 10.5 m × (Δv / v₀) → a 1% speed error moves the ball ≈ 10.5 cm at the rim
The engine uses this slope to size the perfect zone: it allows roughly ±10 cm of depth error at the rim and converts that back into a slice of the power meter. Farther shots are more sensitive, so their zones are narrower.
Adding air: quadratic drag
A basketball is large and light, so air resistance is not negligible. The Shot Lab models drag as proportional to speed squared, acting against the direction of motion:
F_d = ½ · ρ · C_d · A · v² k = ½ · ρ · C_d · A / m ≈ 0.0234 m⁻¹ (Earth, sea level) a = −g ŷ − k · |v| · v
At 7 m/s drag decelerates the ball by about 1.15 m/s² — roughly 12% of gravity. A vacuum-solved free throw would fall around a third of a metre short with drag switched on, and a half-court heave well over a metre short. The engine solves the perfect speed numerically with drag included, so the cream zone is always honest. Toggle Quadratic air drag off in the lab to compare.
Other worlds
Flight time scales with 1/√g, so on the Moon (1.62 m/s², no air) a free throw hangs in the air about 2.5 times longer than on Earth. To keep the game playable, the lab scales the power meter's speed range by √(g / 9.81), so the perfect zone lands in a similar place on the meter even when the physics is alien.