Presets and playback
Presets
Mission
Layers
Model checks
The science
Planets on Kepler orbits
Each planet follows a Kepler ellipse (semi-major axis a, eccentricity e, longitude of perihelion ϖ) in the ecliptic plane. Its position at time t comes from the mean anomaly M = (L0 − ϖ) + 2πt/T, the Kepler equation E − e sin E = M (Newton iteration) and x = a(cos E − e), y = a√(1−e2) sin E. Orbital elements are J2000 mean values rounded to a few digits; Kepler's third law a3/T2 = 1 in AU and years is shown on graph 4.
The probe
The probe starts with Earth's heliocentric velocity plus a prograde burn Δv = k · vE(√(2r2/(r1+r2)) − 1), where k = 1 is the ideal Hohmann transfer. After that it feels only the Sun, a = −μr/r3, integrated with the symplectic leapfrog scheme (which keeps the energy error bounded). The ideal transfer takes tH = π√(at3/μ) with at = (r1+r2)/2, and the target must lead Earth by 180° − 360° tH/Ttarget at departure: that is the launch window.
Launch-window graph
Graph 1 integrates a probe for every launch day (step 8 days) and records its closest approach to the target. The deep minima are the windows; the green dot is the best one, and the button jumps to it.
Honest simplifications
Everything is 2-D (planet inclinations are ignored); there is no Earth or target gravity, no sphere-of-influence patching, no capture burn, and the departure burn is instantaneous from Earth's centre. A "closest approach" of a few hundredths of an AU is a hit in this model, not a real flyby. Dates are approximate.
What to try
Press Jump to best launch window for each target, then run Earth to Mars Hohmann and watch the probe meet Mars. Choose Too little speed or Too much speed to see the window shift and the miss distance grow, and Wrong launch date for a transfer that arrives where the planet is not.