This is the 2D companion to the 3D "Magnus Effect" laboratory. It integrates the exact same vector force equation the 3D lab is named for, F = S·(omega x v), stepped forward numerically frame by frame — the curve you see is never a scripted arc, it falls directly out of the physics at each timestep.
Drag: F_d = -1/2 rho Cd A |v| v
Magnus: F_m = S * (omega x v), S = 1/2 rho Cl r A
Gravity: F_g = -m g y-hat
a = (F_d + F_m + F_g) / m
v(t+dt) = v(t) + a*dt ; x(t+dt) = x(t) + v(t+dt)*dt
- Spin rate sets |omega| in rad/s (rpm * pi/30); positive = backspin (lift), negative = topspin (dive), matching the 3D lab's convention.
- Spin axis tilts omega between pure backspin/topspin (0°, force stays in the vertical plane you see) and pure sidespin (90°, force pushes out of the page — shown as a top-down offset trace at the bottom of the canvas so a curving free-kick or slice serve is visible even in a side view).
- The grey path is the identical shot with omega = 0 for direct comparison — same launch speed, angle and ball, spin removed.
- Each ball (football, baseball, tennis) carries a different mass, radius and drag/lift coefficient, exactly as in the 3D lab, so the same rpm bends a light tennis ball far more than a heavy football (acceleration = force / mass, and the Magnus force itself does not depend on mass).
Real-world relevance: this is the physics behind a swerving free kick, a baseball curveball or slider, and topspin/backspin shots in tennis and golf — a genuine cross-product force, not an artistic curve.