Both arms see the same launch. The reactive arm only ever knows the ball's current on-screen position — read with a small vision delay — and simply chases it, capped at a fixed top speed. The predictive arm instead integrates the ball's equations of motion the instant it leaves the launcher — gravity plus the Magnus force from spin, F = k·(ω×v) — forward to the moment the ball crosses its paddle plane, then starts moving toward that future point immediately, arriving with time to spare.
predicted: step p,v by dt using
dv/dt = g + k·(ω×v)
until p.z crosses paddle plane
reactive: target = ball.pos delayed by Δt
paddle.pos += clamp(target-paddle, maxSpeed·dt)
- Ball speed — faster balls leave less total flight time for either arm to arrive; the reactive arm falls further behind.
- Spin strength and type — topspin/backspin bend the vertical path, sidespin bends it left/right; the reactive arm has no idea the curve is coming until the ball has already started bending.
- Watch the hit-rate gap widen as you push speed and spin up — that gap is exactly why real robotic ping-pong systems (e.g. Omron's Forpheus, MIT's table-tennis robots) compute a predicted intercept point rather than tracking the ball reactively.