Inputs
Δv porkchop
x = departure date, y = arrival date; colour = total Δv (departure v∞ + arrival v∞), banded like a contour map. ✕ marks the cheapest transfer. Faint diagonals are constant time-of-flight. Click a point to inspect that transfer.
Interplanetary launch windows: a Lambert transfer solved for every departure/arrival date pair, coloured by the Δv it costs. The blue "porkchop" is where the trip is cheap — the launch window. Click anywhere to read that transfer.
x = departure date, y = arrival date; colour = total Δv (departure v∞ + arrival v∞), banded like a contour map. ✕ marks the cheapest transfer. Faint diagonals are constant time-of-flight. Click a point to inspect that transfer.
Getting a spacecraft from one planet to another isn't a matter of pointing and burning — the target is a moving, orbiting body, so the cost depends sharply on when you leave and when you arrive. A porkchop plot lays that out: departure date on one axis, arrival date on the other, and for every pair it solves the transfer orbit that connects the two planets' positions in exactly that flight time (a Lambert problem, solved here about the Sun), then colours the pixel by the Δv it costs. The cheap region forms a closed contour shaped like a porkchop — hence the name — and its centre is the launch window.
The Δv shown is the sum of the two hyperbolic excess velocities: the departure v∞ (how much faster than the departure planet you must be moving, which sets the launch energy C3) plus the arrival v∞ (the speed you arrive with, relative to the destination, that must be shed to capture). For an Earth→Mars trip these each run a few km/s and repeat on the ~26-month synodic cycle — which is exactly why Mars missions launch in tight, widely-spaced windows. Planet positions come from JPL's approximate Keplerian elements (good ~1800–2050), so the windows this finds line up with the real ones: the default view lands on the 2028–2029 opportunity.
This first cut sums impulsive departure and arrival Δv over a single-revolution prograde transfer; a fuller version would separate the launch-C3 and arrival contours, add Type-II and multi-revolution branches, and fold in the planetary capture/escape burns from a specific parking orbit.