Simulation

Monkey and Hunter

KinematicsProjectile motion

Classic demo: a hunter aims at a monkey that drops from a branch the moment the dart is fired; both fall together under gravity and the dart always intercepts the monkey.

Objective

Verify the monkey-and-hunter invariant — a projectile aimed directly at a freely falling target will always intercept it, because both objects experience the same gravitational acceleration g. The vertical separation between dart and target decreases identically regardless of the dart's launch speed, confirming that gravity acts equally on both objects. The simulation uses point-mass projectiles with no air drag.

Setup

  1. Set dart speed to 20 m/s and monkey height to 25 m using the sliders, then press Start. Watch the dart arc downward toward the falling monkey.
  2. Note the Gap readout — it should decrease from 25.00 m toward 0 as the dart approaches the monkey. Record the Time readout when the red impact flash appears.
  3. Press Reset. Set dart speed to 35 m/s and press Start. Observe that the dart travels faster and still intercepts the monkey — the Gap still reaches 0, but at a shorter Time.
  4. Press Reset. Set dart speed to 40 m/s and press Start. The dart reaches the monkey even faster — the impact flash appears at roughly 0.98 s compared to about 1.95 s at 20 m/s.
  5. Press Reset. Set monkey height to 15 m with dart speed 20 m/s. Press Start and note the shorter flight time compared to height 25 m.
  6. Compare the Time readouts at impact across different speed settings. The time at impact scales as t = h / (v · sin θ), confirming the inverse relationship between speed and impact time.

Analytical Prediction

The dart is launched at angle θ = arctan(h/d) where h is monkey height and d = 30 m is the horizontal distance. Both dart and monkey fall with acceleration g = 9.8 m/s² from the moment of launch. The dart intercepts the monkey when the horizontal distance is covered: t_impact = d / (v · cos θ). With v = 20 m/s, h = 25 m, θ = arctan(25/30) ≈ 0.695 rad, cos θ ≈ 0.768:

t_impact=d / (v · cos θ)
=30 / (20 · 0.768)
=30 / 15.36
1.95 s

With v = 40 m/s the impact time shortens to ≈ 0.98 s. The vertical position of both dart and monkey at t_impact is h − ½ · g · t_impact² below the initial monkey height, confirming they meet at the same altitude regardless of v. At v = 20 m/s, both objects are at ≈ 6.36 m when the impact occurs.

Results Analysis

Watch the Gap (m) readout — it measures |y_dart − y_monkey| and must converge toward 0 at impact. The Dart height (m) and Monkey height (m) readouts should show matching values at the moment the red impact flash appears. At default settings (v = 20 m/s, h = 25 m) the Time readout at impact should read approximately 1.95 s. At v = 40 m/s the Time readout at impact should read approximately 0.98 s — close to half the 20 m/s value, consistent with the inverse proportionality t_impact ∝ 1/v. The Gap readout is the key diagnostic: it should fall from its initial value (equal to monkey height) toward 0 at impact.

Source of Error

The model assumes point-mass objects with no air resistance, no rotation, and no wind. The dart is treated as a particle with zero physical size — the 1.5 m impact-detection threshold is a geometric convenience, not a physical dart radius. The monkey is similarly a point mass. Real darts experience aerodynamic drag that would cause the dart to fall faster than the ideal parabola, potentially causing a miss at low launch speeds. Real monkeys are extended bodies and would not release instantaneously. Because the analytical prediction makes the same idealizations, the residual between predicted and observed impact times is purely numerical, not physical, for this sim.

Further Exploration