Plane Calibration
This page documents the planets’ ascending nodes on the invariable plane at J2000: the published Souami & Souchay values, the closed-form refinement that reproduces the observed ecliptic inclinations to better than 0.0001°, and the N-body chain’s own nodes that the simulation renders — each set tested against the same observation. The ecliptic is Earth’s own orbital plane and it turns, so an inclination quoted against it is a reading from a moving platform; the invariable plane, set by the system’s total angular momentum, is the fixed reference the nodes are stated on.
This page establishes:
- Why the invariable plane, not the ecliptic, is the reference, and why ecliptic inclinations look disordered — Why the invariable plane?.
- Souami & Souchay’s nodes are mean-element values; the refinement makes them J2000-consistent — Background, The problem, The solution.
- Three node sets, one test: the published, the refined and the chain’s nodes closed against JPL — Results.
- The node is geometrically determined by two measured tilts, not fitted — Why this is not circular reasoning.
- The nodes of date, and how to reproduce the result — The nodes of date, Verification and reproducibility.
Status. The simulation renders the planets’ inclination and node of date from the model’s own N-body element chain (Moon & Planets), and Earth’s from the engine’s own orbit normal against the banked invariable plane. The closed-form refinement below is a geometric result that stands on its own: it supplies the nodes of the no-chain bodies (Pluto, Halley, Eros), and its identity is the test every node set on this page is closed with.
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° | 1.28°–12.10° | 7.005° |
| Venus | 2.1959° | -0.19°–3.26° | 3.395° |
| Earth | 1.5784° | 0.845°–2.117° | — (defines the plane) |
| Mars | 1.6789° | 0.84°–7.57° | 1.850° |
| Jupiter | 0.3266° | 0.22°–0.51° | 1.304° |
| Saturn | 0.9300° | 0.77°–1.02° | 2.486° |
| Uranus | 1.0280° | 0.88°–1.16° | 0.773° |
| Neptune | 0.7257° | 0.49°–0.85° | 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 nodes are stated on the invariable plane and the ecliptic values are derived from them, 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 are the published reference the model’s invariable-plane quantities are stated beside.
The problem: published nodes against observed inclinations
S&S’s ascending nodes are mean-element values. Put through the geometric relationship below together with JPL’s observed J2000 ecliptic inclinations and S&S’s own invariable-plane inclinations, they miss the observed ecliptic inclinations by tens of arcseconds to a few arcminutes — the first closure column of the results. The nodes need a small refinement to be J2000-consistent with the observed inclinations.
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 refinement 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 refined 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: three node sets, one test
Three node sets coexist, all in the S&S longitude origin (the plane’s ascending node on the ICRF equator). Each closure column runs the identity above forward on that set and subtracts JPL’s J2000 ecliptic inclination:
- S&S 2012 — the published nodes.
- Refined — the closed-form solution above, on S&S’s Earth. These are the nodes the simulation’s no-chain bodies read.
- Chain J2000 — the N-body chain’s own node of date at 2000, on the model’s banked invariable plane, expressed in the S&S origin by a derived conversion. These are the nodes every rendered planet reads (Moon & Planets); their closure uses the chain’s own Earth node, not S&S’s.
| Planet | S&S 2012 (°) | closure | Refined (°) | closure | Chain J2000 (°) | closure |
|---|---|---|---|---|---|---|
| Mercury | 32.22 | -52.0″ | 32.83 | +0.2″ | 32.49 | +1.6″ |
| Venus | 52.31 | -117.6″ | 54.70 | -0.1″ | 51.49 | +2.0″ |
| Earth | 284.51 | (reference) | 284.51 | (reference) | 284.0401 | (reference) |
| Mars | 352.95 | -159.1″ | 354.87 | < 0.1″ | 353.10 | -5.4″ |
| Jupiter | 306.92 | -63.0″ | 312.89 | +0.1″ | 313.59 | -0.5″ |
| Saturn | 122.27 | -35.3″ | 118.81 | < 0.1″ | 120.39 | -4.8″ |
| Uranus | 308.44 | +32.5″ | 307.80 | < 0.1″ | 308.62 | +0.4″ |
| Neptune | 189.28 | +112.5″ | 192.04 | < 0.1″ | 191.35 | -7.8″ |
| Pluto* | 107.06 | — | 101.06 | (script) | — | — |
*Pluto is a dwarf planet (IAU 2006), included for completeness; it is one of the scene’s no-chain bodies, so it has a refined node and no chain node. Its closure is reported by the verification script.
The published nodes miss by tens of arcseconds to a few arcminutes; the refined nodes close by construction, to the rounding of the stored value; the chain’s nodes close to a few arcseconds, which is the chain’s J2000 residual against the catalog. The refined and chain nodes are different constructions and differ by up to a few degrees: the refinement solves for Ω from the inclination alone (hence a sign ambiguity, resolved toward S&S) on S&S’s Earth, while the chain carries JPL’s full J2000 element set, node included, rotated into the model’s own banked plane. Earth’s chain node differs from the S&S value by the same construction. The closure figures are the registry’s, recomputed on every build of this site — not a statement about any other epoch.
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. The chain needs no such rule: it carries the observed ecliptic node as well, and the identity then serves as its check.
The 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 refined accuracy).
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
The refinement 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 refined values | GitHub |
| ascending-node-souami-souchay.js | Comparison: S&S original vs refined | GitHub |
Explore Formulas for the complete formula set.