Plane Calibration
This page documents the refinement of the planets’ J2000 ascending nodes on the invariable plane — a geometric calibration that reproduces the observed ecliptic inclinations to better than 0.0001°.
Status. The invariable plane itself, and the heights above it, are derived from the model’s own N-body element chain (Moon & Planets), as are the planets’ positions and elements of date. The per-planet inclination and node of date that the scene renders are not: they are the frozen era device’s, an oscillator and a linear rate on the anchor’s divisor grid, pending the migration described in the planning record. The J2000 refinement below is a valid geometric result and serves the simulation’s no-chain scaffolding (Pluto, Halley, Eros) and its J2000 checks.
Two node systems: ecliptic ascending nodes (where orbits cross Earth’s orbital plane; they shift as the ecliptic itself turns) and invariable-plane ascending nodes (where orbits cross the solar system’s angular-momentum plane; they turn on the planets’ nodal modes). This page covers the second.
Why the invariable plane?
The ecliptic is the obvious reference frame — it is Earth’s own orbital plane, and the classical elements are quoted against it. The difficulty is that it moves. The ecliptic precesses with a period of ~68,751 years, so an inclination measured against it is a reading taken from a turning platform.
| Ecliptic | Invariable plane | |
|---|---|---|
| Definition | Earth’s orbital plane | Perpendicular to the solar system’s total angular momentum |
| Stability | Turns with Earth’s orbit | Fixed — total angular momentum is conserved |
| Precession period | ~68,751 years | none |
| Centred on | one planet | the system |
| Best for | short-term, Earth-based prediction | long-term dynamics |
Why ecliptic inclinations look disordered
An inclination measured to the ecliptic carries two signals at once: the planet’s own tilt to the invariable plane, and Earth’s. Both oscillate, on different periods, so the sum wanders even when neither orbit is doing anything of interest. Earth’s own tilt to the invariable plane swings between 0.845° and 2.117° — and that entire range is stamped onto every other planet’s ecliptic inclination as a wobble belonging to the observer, not the observed.
Measured against the invariable plane the contamination is gone, and most of the planets turn out to sit nearly still:
| Planet | To the invariable plane (J2000) | Its range | To the ecliptic (J2000) |
|---|---|---|---|
| Mercury | 6.3446° | 6.32°–7.09° | 7.005° |
| Venus | 2.1959° | 2.09°–2.21° | 3.395° |
| Earth | 1.5784° | 0.845°–2.117° | — (defines the plane) |
| Mars | 1.6789° | 0.67°–3.00° | 1.850° |
| Jupiter | 0.3269° | 0.30°–0.34° | 1.304° |
| Saturn | 0.9305° | 0.92°–1.05° | 2.486° |
| Uranus | 1.0279° | 0.99°–1.04° | 0.773° |
| Neptune | 0.7257° | 0.73°–0.76° | 1.770° |
Jupiter, Uranus and Neptune each span a few hundredths of a degree across the whole cycle; Venus and Saturn roughly a tenth. Only Mercury and Mars move appreciably, and Mars is the one orbit that genuinely swings. The ecliptic column, by contrast, shows no such ordering — because each of its entries is a sum of two independent oscillations.
Planes that can meet. Mars, Saturn and Uranus have invariable-plane ranges that overlap Earth’s. When one of them sits at the same height as Earth and their ascending nodes align, its orbital plane runs very nearly parallel to the ecliptic and its ecliptic inclination approaches zero — not because anything happened to the orbit, but because the reference plane caught up with it. Venus’s range reaches Earth’s upper limit and can approach the same condition. Mercury, Jupiter and Neptune never overlap Earth’s range, so they cannot.
This is why the calibration below is done on the invariable plane and the ecliptic values are derived from it, rather than the other way round: the invariable-plane node is a property of the orbit, while the ecliptic node is a property of the orbit and of where Earth happens to be in its own cycle.
Background: Souami & Souchay (2012)
Souami & Souchay (2012) published the definitive modern determination of the solar system’s invariable plane, including ascending node longitudes for all planets. Their work provided:
- The invariable plane orientation at J2000: inclination 1°34’43.3” (~1.57869°) to the ecliptic, ascending node at 107°34’56” (~107.582°).
- Planetary inclinations to the invariable plane.
- Ascending node positions on the invariable plane for each planet.
These values form the foundation of the model’s invariable plane calculations. A systematic issue arises when combining S&S values with the model’s dynamic inclination framework.
The problem: epoch-specific vs mean inclinations
S&S ascending node values are calibrated to the J2000 epoch. The scene’s no-chain scaffolding uses mean inclinations (time-averaged over each planet’s inclination oscillation) as the baseline of its inclination law. Earth’s inclination illustrates the issue:
| Parameter | J2000 value | Mean value |
|---|---|---|
| Earth’s inclination | 1.57869° | 1.48113° |
| Difference | — | 0.098° |
Using Earth’s mean inclination in the geometric relationship between orbital planes, the original S&S ascending nodes produce ecliptic inclinations that deviate from observed JPL values. The ascending nodes need recalibration to work correctly within the mean-inclination framework.
The solution: J2000-verified ascending nodes
Four parameters suffice: any planet’s ecliptic inclination is fully determined by its invariable-plane elements (i_inv, Ω_inv) and Earth’s invariable-plane elements (i_Earth, Ω_Earth). The angle follows directly from spherical trigonometry:
cos(i_ecl) = cos(i_planet) · cos(i_earth) + sin(i_planet) · sin(i_earth) · cos(ΔΩ)where i_ecl is the ecliptic inclination (the angle between the planet’s orbit and Earth’s), i_planet and i_earth are the planet’s and Earth’s inclinations to the invariable plane, and ΔΩ is the difference in ascending node longitudes (planet minus Earth).
Epoch dependence: i_earth is not constant — Earth’s orbit plane turns on the planets’ nodal modes, s₃ dominant (Obliquity: Earth’s Orbital Inclination). The calibration here uses the J2000 value, but the formula is valid at any epoch when the correct i_earth for that moment is used. This same geometric identity is the reason Earth’s changing orbital inclination directly affects obliquity: the ecliptic is Earth’s orbital plane, so every angle measured relative to it shifts with i_earth.
Since i_ecl is known from JPL observations and i_planet / i_earth from S&S, the ascending node difference ΔΩ is the only unknown:
cos(ΔΩ) = [cos(i_ecl) - cos(i_planet) · cos(i_earth)] / [sin(i_planet) · sin(i_earth)]The calibrated ascending nodes were computed using two independent methods — numerical optimisation (brute-force search: coarse ±10° in 0.01° steps, then fine ±0.1° in 0.0001° steps; script ) and analytical closed-form spherical trigonometry (arccos formula above; script ). The numerical method minimises the error between calculated and target ecliptic inclinations using dot products of orbital plane normal vectors; the analytical method solves the spherical triangle directly. Both produce identical results, confirming the geometric validity of the approach.
Results: calibrated ascending nodes
| Planet | S&S original (°) | J2000-verified (°) | Change (°) | JPL i_ecl target (°) | Verification error |
|---|---|---|---|---|---|
| Mercury | 32.22 | 32.83 | +0.61 | 7.00497902 | < 0.0001° |
| Venus | 52.31 | 54.70 | +2.39 | 3.39467605 | < 0.0001° |
| Earth | 284.51 | 284.51 | 0.00 | — | (reference) |
| Mars | 352.95 | 354.87 | +1.92 | 1.84969142 | < 0.0001° |
| Jupiter | 306.92 | 312.89 | +5.97 | 1.30439695 | < 0.0001° |
| Saturn | 122.27 | 118.81 | -3.46 | 2.48599187 | < 0.0001° |
| Uranus | 308.44 | 307.80 | -0.64 | 0.77263783 | < 0.0001° |
| Neptune | 189.28 | 192.04 | +2.76 | 1.77004347 | < 0.0001° |
| Pluto* | 107.06 | 101.06 | -6.00 | 17.14001 | < 0.0001° |
*Pluto is a dwarf planet (IAU 2006), included for completeness; it is one of the scene’s no-chain bodies.
Adjustments range from −6.00° (Pluto) to +5.97° (Jupiter). Mercury and Uranus need the smallest corrections (<1°); Jupiter the largest positive (+5.97°). The last column is the closure the two cited verification scripts report at J2000 — a figure from that calibration run, not a tolerance this site recomputes, and not a statement about any other epoch. Earth’s ascending node remains unchanged because Earth serves as the reference — the ecliptic is Earth’s own orbital plane.
Why this is not circular reasoning
A potential concern: are we simply fitting free parameters to match observations? No — the three inputs come from independent sources:
| Input | Source | Method |
|---|---|---|
| JPL ecliptic inclinations | Spacecraft tracking, radar ranging | Direct observation |
| S&S invariable plane inclinations | Angular momentum calculations | Theoretical derivation |
| Ascending node (solved) | Spherical trigonometry | Geometric determination |
The ascending node is not a free parameter — it is geometrically determined by the other two independently measured quantities. Given the planet’s tilt to the invariable plane and its tilt to the ecliptic, only one (or two, with a sign ambiguity) ascending node position is mathematically possible. The sign ambiguity is resolved by choosing the solution closest to the S&S original — a physically motivated choice since the S&S values are already close.
Verification scripts are publicly available. Anyone can verify these results by running ascending-node-verification.js (forward verification) and ascending-node-souami-souchay.js (comparison of S&S original vs verified accuracy).
Ecliptic ascending node system
Separate from the invariable plane system, the model also tracks how ascending nodes shift on the ecliptic as Earth’s axial tilt (obliquity) changes:
dΩ/dε = -sin(Ω) / tan(i)where Ω is the ascending node longitude on the ecliptic, ε the obliquity, and i the orbital inclination to the ecliptic. As obliquity oscillates over the ~41,224-year cycle, the ecliptic itself tilts slightly, shifting where planetary orbits cross it. This is an ecliptic-frame effect that operates independently of the invariable plane node precession.
Geocentric vs heliocentric limitation: the formula above calculates how ascending nodes shift in Earth’s geocentric reference frame as obliquity changes — fundamentally different from JPL’s heliocentric gravitational precession rates. They measure different physical effects and are not directly comparable. The tan(i) denominator amplifies discrepancies for near-coplanar orbits: inner planets show reasonable agreement (~40%), but Uranus (21×) and Neptune (63×) diverge significantly. The model is appropriate for geocentric visualisation purposes. Full analysis: Ascending Node Calculation Limitations .
The nodes of date
Earth’s node circulating on the invariable plane, with La2010 overlaid across the span that solution covers. The two agree through the overlap; the model continues either side of it, where no reference solution exists to check against.
The planets’ ascending nodes turn on the invariable plane over 50,000–2,000,000-year timescales — the nodal eigenfrequencies s₁…s₈, which the model’s own N-body engine reproduces from one cited J2000 state (N-body Exploration); the rendered planets’ nodes of date are read from that chain. With only ~4,000 years of recorded astronomy no complete cycle has been observed directly; the chain’s window rates are gated against JPL Horizons over 1800–2100.
Verification and reproducibility
All calibration work is fully reproducible through publicly available scripts:
| Script | Purpose | Location |
|---|---|---|
| ascending-node-optimization.js | Numerical optimisation of ascending nodes | GitHub |
| analytical-ascending-nodes.js | Analytical (closed-form) verification | GitHub |
| ascending-node-verification.js | Forward verification of calibrated values | GitHub |
| ascending-node-souami-souchay.js | Comparison: S&S original vs verified | GitHub |
| inclination-optimization.js | Inclination mean/amplitude optimisation | GitHub |
| inclination-verification.js | Inclination parameter verification | GitHub |
Explore Formulas for the complete formula set.