The Rediscovery of Neptune
An executable reconstruction of Le Verrier’s 1846 prediction
This project turns Uranus’s 1781–1846 longitude anomalies into an inverse problem: find the unseen planet whose gravity explains the residuals.

Start Here
If you want the shortest path, start with Tutorial: From Zero to Neptune. If you want the historical argument, read Foundations of Perturbation Theory and The Uranus Problem. If you want the computational details, open Notebook: Neptune Discovery.
Key Results
The closed-world benchmark recovers the seeded Neptune exactly. This verifies the optimizer and forward-model plumbing, not historical realism.
The simplified 4-parameter model reaches about 2.50 arcsec RMS against modern JPL state-vector data. The fitted longitude is compared to a JPL (diagnostic λ) reference — a diagnostic reference, not a rigorous angular error, because the model fixes the perihelion convention (ω = Ω = 0) and therefore absorbs part of the orbit geometry into the longitude fit. The remaining residual traces the genuine model-fidelity gap.
The same inverse-problem logic fails for Mercury: general relativity supplies the missing 43 arcsec/century precession, not an unseen planet.
Reading Paths
- Build it: Tutorial, REBOUND notebook, observation-window how-to.
- Understand it: Perturbation foundations, the Uranus problem, mass-distance degeneracy.
- Stress-test it: Bayesian inference, sensitivity analysis, validation.
- Compare failure modes: the Mercury puzzle, Mercury/Vulcan notebook, legacy.
Source and Reproducibility
The source is at github.com/jbwhit/discoverneptune. See Reproducibility and Artifacts for the notebook execution and output policy.