A countermovement jump (CMJ) is driven by the impulse–momentum theorem: the athlete crouches down by depth s, then extends the hips and knees, pushing against the ground with a force F(t) greater than body weight mg for the whole push-off. Modelling the push-off force as a half-sine pulse with peak Fpeak (average ≈ 2/π · Fpeak), the net upward acceleration during the drive is:
a = (F_avg − mg) / m = g·(k·2/π − 1)
where F_peak = k · m · g (k = "leg power" slider, × bodyweight)
Work–energy over the push-off distance s (the crouch depth) then gives the takeoff speed from the legs alone, and the classic projectile-motion results give jump height and hang time:
v_legs = √(2 · a · s)
v0 = v_legs + Δv_arms (arm-swing bonus)
h = v0² / (2g) (rise of the center of mass)
t_hang = 2 · v0 / g
Arm swing is not decorative: a forceful upward arm swing adds momentum at takeoff and lets the legs push slightly longer, worth roughly 0.06–0.10 m of extra height in real athletes — here it's modelled as a direct boost Δvarms to takeoff velocity, scaled by the slider.
- Leg power — peak ground-reaction force as a multiple of body weight (recreational jumpers ≈1.8–2.2×BW, trained athletes ≈2.5–3.2×BW).
- Crouch depth — how far the hips drop before driving up; more depth means a longer push-off distance to accelerate over, but too much can bleed off stored elastic energy in a slow real athlete (not modelled here — this sim assumes constant power).
- Arm swing — how forcefully the arms drive upward during extension.
Body mass is fixed at 75 kg for the force readouts. All numbers update live as you drag the sliders; press Jump! to lock in the current settings and watch the push-off, flight and landing play out.