Sun, Moon & Planets
The Sun, Moon, and planets are modelled in the 3D simulation with high physical accuracy. The seven planets render directly from the model’s own N-body element chain (see Planetary movements below); the Sun and Moon ride the geometric chains with Kepler’s variable speed (equation of center), and the Moon adds full gravitational perturbation corrections (Meeus Ch. 47) — and every constant in that lunar series now carries a framework origin, derived, attributed, or anchored by design (see The Derived Moon (DLT-1)). The Sun’s apparent longitude is likewise assembled rather than fitted — zero fitted solar constants, 0.80″ vs JPL (see The Derived Sun (DST-1)). All orbital periods fit into the 335,317-year Earth Fundamental Cycle (J2000 anchor) as whole-number multiples. The integer-divisor structure is invariant at any epoch; the literal year counts rescale at geological time — see Expanding Resonance for the deep-time evolution layer (Moon distance via Driver 1 / Farhat 2022 polynomial; planetary orbital periods via Driver 2 / Kepler).
In each per-planet table below the J2000 orbital elements are reference anchors (NASA; invariable-plane values Souami & Souchay 2012). The planets’ motion, elements of date and precession rates come from the model’s own N-body element chain — the same governed artifact the simulator renders and the calculator serves; its invariable-plane elements use the engine’s own plane (pole from the system’s total angular momentum).
Sun: equation of center
The Sun’s orbit includes the equation of center — Kepler’s 2nd Law, which makes the Sun move faster near perihelion (January) and slower near aphelion (July). The correction uses the standard two-term series:
θ += 2e·sin(M) + 1.25e²·sin(2M)where e is orbital eccentricity and M is mean anomaly from perihelion.
A key implementation detail: the model uses a circular orbit with an offset center to reproduce the Earth–Sun distance variation. This geometric offset already creates apparent speed variation (the Sun subtends a larger angle when closer). The equation of center uses a reduced eccentricity to add only the remaining speed variation not already provided by the geometry, avoiding double-counting.
| Metric | Value |
|---|---|
| Sun Dec RMS vs JPL | 0.002° |
| True model error (after frame correction) | 0.003° |
| Tropical year accuracy | +0.10 s vs IAU |
| Sidereal year accuracy | +0.02 s vs IAU |
RA comparison note: the apparent ~0.28° RA drift vs JPL Horizons is not a model error — it is a coordinate-frame mismatch. JPL uses the fixed ICRF/J2000 equinox while the model uses the of-date equatorial frame where the equinox precesses naturally at ~50.245″/yr. After correcting for this, the true Sun error is 0.003°.
Moon movements
The Moon exhibits two primary precession cycles:
| Precession | Of-date (equinox-of-date — the observed cycle) | Star-referenced (inertial) |
|---|---|---|
| Nodal | ~18.61334 yr | ~18.59992 yr |
| Apsidal | ~8.84753 yr | ~8.85057 yr |
The Moon’s nodal precession causes the Lunar Standstill — when the Moon reaches its extreme northern or southern declination relative to Earth’s equator.
The Moon’s precession-layer architecture
To model all Moon movements in 3D, the Moon is built as five nested rotating containers. Each layer carries one signed rotation rate, and the rates sum exactly to the Moon’s tropical month — the layer decomposition is an identity, not an approximation:
| Layer | Period | Role |
|---|---|---|
| Apsidal precession | +8.84753 yr (of-date) | Rotates the perigee direction (carries the eccentricity offset) — of-date rate, so the visible ring’s perigee tracks the Moon’s actual perigee |
| Apsidal–nodal pair | ±5.99701 yr | Counter-rotating pair (net zero — the apsidal-nodal meeting cycle) |
| Apsidal canceller | −8.84753 yr | Mirrors the apsidal layer in rate and phase, so deeper layers do not inherit its rotation |
| Nodal precession | −18.59992 yr | Regresses the orbit plane (retrograde, as observed) |
| Moon | 27.2122208886 days | Draconitic-month revolution, carrying the 5.1573° orbital inclination |
Why the draconitic month? The Moon layer revolves inside the nodal layer, which itself regresses. Draconitic revolution + nodal regression = tropical month exactly (in cycle counts inside the Earth Fundamental Cycle: N_draconitic = N_tropical + N_nodal). Placing the 5.1573° inclination tilt on the Moon’s own container — below the nodal rotation — is what makes the orbit plane physically regress with the node, reproducing the observed −19.35°/yr nodal plane motion.
All layer phases are anchored to the J2000 lunar orbital elements (ascending node Ω = 125.04°, perigee ϖ = 83.35°). All Moon cycle durations fit into the 335,317-year Earth Fundamental Cycle at J2000; the Moon’s distance from Earth also drifts at deep time per Driver 1 (Farhat 2022 polynomial — see Expanding Resonance).
Moon position: two systems working together
The Moon’s position in the 3D simulation is determined by two systems:
- 5-layer precession hierarchy (geometric): five nested rotating containers handle apsidal precession, the inert apsidal–nodal pair, the apsidal canceller, nodal plane regression, and the draconitic-month revolution carrying the orbital inclination (5.1573°) — signed layer rates summing exactly to the tropical month (table above). This produces the circular orbit ring visible in the scene.
- Meeus analytical corrections (perturbative): a table-driven implementation of Meeus’s Astronomical Algorithms Ch. 47, using 60 longitude terms and 60 latitude terms. These capture the Sun’s gravitational perturbations — evection, variation, annual equation, and dozens of smaller effects — shifting the Moon away from its geometric circle. The fundamental arguments feeding the series are framework-native: linear rates decomposed on the H lattice (ICRF ↔ of-date via the framework’s own general precession) plus a bounded solar-eccentricity channel supplying the secular T²/T³ content — certified indistinguishable from Meeus’s own argument polynomials across the full NASA canon while remaining bounded at deep time.
Deriving Meeus’s secular coefficients. Meeus’s fundamental-argument polynomials carry empirical T² and T³ terms with no stated physical origin. The framework derives them: the Sun’s mean perturbation on the lunar node and perigee scales as (1 − e²)^(−3/2) with Earth’s eccentricity — and Earth’s eccentricity is currently declining, so the perturbation weakens over the centuries. The node’s T² coefficient emerges at sensitivity 1.018 ≈ 1 (Meeus +7.47″/cy² vs predicted +7.34 — a derived match); the perigee requires exactly one anchored sensitivity (2.407, the classical Clairaut ≈ 2 rate amplification of apsidal motion), which then holds unchanged at higher orders. The eccentricity history driving the channel is itself fully derived — one movement: the same H/3 wobble cycle that carries Earth’s inclination (whose minimum falls on the Balanced Year), expressed as e(t) = base·(1 + cos θ/2) from the model’s base eccentricity, the Balanced Year, and H alone. Nothing observational enters; the observed J2000 eccentricity and its declining rate come out as predictions at the 1–2% level, and the perturbation channel is bounded at every epoch where Meeus’s polynomials diverge. This also resolves a classical puzzle: Brown’s m² theory predicts the perigee accelerating while Meeus’s polynomial says decelerating — both are true. The tidal mean rate slowly accelerates (the Lunar Precession Invariant), while the eccentricity channel oscillates around it, currently in its decelerating phase. The remaining two arguments (D and M) are identity-composed — D = L′ − L_sun, M = L_sun − ϖ_sun — with secular content supplied by the model’s real-time precession rates (the epoch-local values around the H/13 and H/16 means), making all five fundamental arguments bounded at deep time with zero new constants. The mean longitude’s planetary T² remainder (+7.25″/cy² — the classical Laplace/Adams planetary acceleration of the Moon) rides the same bounded eccentricity channel: its coefficient is the channel-slope response of the lunar mean motion to the Sun’s declining eccentricity, and a first-principles Sun–Earth–Moon three-body integration built from the framework’s own constants reproduces it at 95% — along with the full Meeus amplitude table (top terms at 100.0 ± 0.1%) and the apsidal and nodal precession periods to better than 0.1%, showing the Moon’s three observed inputs are not independent: given the month, the other two are consequences of gravity. Full derivation record and experiment log: doc 66 §1 .
The orbit ring shows the unperturbed circular path from the hierarchy; the Moon itself shows the physically correct Meeus-corrected position. The difference between the ring and the Moon makes gravitational perturbation effects directly visible.
How it works: each frame, the simulation computes the Moon’s ecliptic longitude and latitude from the full Meeus series, converts to equatorial coordinates (RA/Dec), and repositions the Moon mesh accordingly. Both the displayed coordinates and the 3D visual position use the Meeus-corrected values, bypassing the hierarchy’s approximations for the Moon’s final position.
Moon position accuracy
The Moon’s position has been verified against 58 solar eclipses from the NASA GSFC catalog (2000–2025). At each known eclipse the geocentric Moon–Sun angular separation was measured:
| Metric | Value |
|---|---|
| RMS Moon–Sun separation at eclipses | 0.81° |
| Pearson correlation with NASA gamma | 0.9945 |
| Residual RMS after parallax correction | 0.04° |
| JPL Horizons Dec comparison (RMS) | 0.02° |
The 0.81° RMS is not an error — it is the theoretical geocentric limit. Solar eclipses are topocentric events: the Moon’s parallax (~0.95°) means a geocentric observer always sees a small offset. The correlation between this offset and NASA’s gamma parameter (r = 0.9945) confirms the model is correct. True residual after accounting for parallax is 0.04°.
Geocentric vs topocentric: the simulation models the view from Earth’s center. A real observer on Earth’s surface sees the Moon shifted by up to ~0.95° due to parallax. This is why the model cannot predict the exact ground location of an eclipse shadow — but it correctly predicts when and that an eclipse occurs.
Deep-time Moon polynomial validation (±15 min over 2,500 years)
The 58-eclipse modern test above measures the Moon polynomial against NASA’s catalog for 2000–2025. To validate accuracy at the deep-time end of the historical record, the same polynomial was cross-checked against 11 canonical eclipses from NASA’s Five Millennium Catalog spanning -524 to 985 CE in TT-space (the comparison is ΔT-independent — any residual is purely a Moon polynomial accuracy question):
| Era | Mean |TT diff| | Worst case |
|---|---|---|
| Cambyses-era catalog cross-check (-524 to -522) | 5.6 min | 11.3 min |
| Medieval (977 to 985) | 7.4 min | 14.0 min |
| All 11 events | 6.9 min | 14.0 min |
The Meeus Ch. 47 polynomial residual at ~1,000 years from J2000 (≈ 0.13° in Moon ecliptic longitude at the worst case) is well within the modern parallax limit. The simulation’s Moon polynomial therefore holds across the entire historical eclipse record without deep-time correction. The series itself is not a black box of inherited coefficients: the framework derives its amplitudes from gravity, its secular terms from the solar-eccentricity channel, and its frame content from the model’s own precession — the complete derivation is The Derived Moon (DLT-1). The polynomial is the shared foundation for two complementary empirical tests: see Solar Eclipse Validation for the 26-event eclipse alignment audit (using the model’s own predicted UT and umbra track against documented sites), and Lunar Eclipse Validation for the higher-resolution three-way ΔT comparison on 267 primary-source lunar observations + 89 solar cross-validation events.
Eclipse visualisation
The 3D simulation includes eclipse visualisation using Three.js lighting and shadow functions. With the full Meeus Ch. 47 perturbation model, the Moon’s position is accurate to 0.04° (after parallax correction), making solar eclipses visible at the correct dates.
| Event | Official time | Model prediction | Difference |
|---|---|---|---|
| 2025 Mar 29 solar eclipse | ~10:47 UTC | ~10:48 UTC | ~1 minute |
| 2025 Sep 7 lunar eclipse | ~18:12 UTC max | ~18:12 UTC | < 1 minute |
| 2025 Sep 21 solar eclipse | ~19:42 UTC | ~19:41 UTC | ~1 minute |
Model conjunction/opposition times agree with the official greatest-eclipse times to about a minute. The Moon’s positional accuracy (0.04° residual) is at the theoretical limit for a geocentric model; the geocentric–topocentric gap (~0.95° lunar parallax) affects where on Earth an eclipse is visible rather than these geocentric timings.
Historical eclipse browser (26 events, -762 to 2026)
The simulation also includes a browsable catalog of 26 well-documented historical solar eclipses spanning the Bur-Sagale eclipse of -762 BCE through the 2026 August 12 total over Iceland and Spain. The catalog mixes 8 modern landmark eclipses (2026 Aug 12, 2024 Apr 8, Eddington 1919, Halley 1715, etc.) with 18 ancient and medieval events drawn from the model’s validation suite (Henry I 1133, Thales -584, Thucydides -430 in Athens, the Babylonian best-preserved diary -135, Plutarch’s 71 CE Aegean eclipse, the six Cairo observations — Ibn Yunus first-hand and Said al-Andalusi second-hand — and more). Each entry jumps the simulation to the moment of greatest eclipse, where Moon and Sun can be visually verified as aligned in the 3D scene.
The full empirical validation built on this catalog is at Solar Eclipse Validation; the parallel higher-resolution lunar timing test on 270 primary-source observations is at Lunar Eclipse Validation.
Planetary movements
The seven planets are rendered from the model’s own N-body dynamics: engine-extracted J2000 anchors, multi-mode secular elements and derived periodic terms, banked in a governed artifact and evaluated each frame with light-time. No observation-fitted correction rides this path — the raw dynamics stand against JPL directly, and where they extrapolate beyond any fit window they beat the legacy fitted chains by large factors. Mercury’s relativistic perihelion share emerges inside the measured rate as derived physics (the 1PN term from the model’s own constants), not as a fitted constant. Perihelion markers, panels and traces follow the same chain, so the displayed apsidal motions are the measured wander — Saturn’s perihelion, for instance, genuinely runs retrograde through the current window.
Simulation accuracy
Measured against JPL Horizons by the repository’s regression gate (RMS over the full reference row set):
| Target | RMS vs JPL | Notes |
|---|---|---|
| Sun | 0.003° | Equation of center |
| Moon | 0.001° | Meeus Ch. 47 (120 terms) |
| Mercury | 0.048° | N-body element chain |
| Venus | 0.017° | N-body element chain |
| Mars | 0.068° | N-body element chain |
| Jupiter | 0.006° | N-body element chain |
| Saturn | 0.007° | N-body element chain |
| Uranus | 0.006° | N-body element chain |
| Neptune | 0.005° | N-body element chain |
All nine targets within 0.07°; the four giants at 0.005–0.007°. Because the planet path carries no fitted corrections, its accuracy does not decay outside a fit window — at 1600–1800 the N-body rendering outperforms fitted chains by an order of magnitude for the giants.
Validation against independent historical observations
The accuracy figures above measure the model against modern JPL Horizons ephemerides — itself a numerical-integration model. To validate against direct sky observations (independent of any modern ephemeris), the model has been benchmarked against Tycho Brahe’s pre-telescopic Mars observations (1572–1601, Opera Omnia vols. 10–13), the NASA/Espenak Mercury & Venus transit catalogues, and the Project Pluto mutual planetary occultation catalogue.
At the epochs where direct historical observations exist, the model matches them as well as — and for five of seven planets, measurably better than — the JPL DE441 / IMCCE INPOP19 ephemerides do at the same epochs:
| Planet | Independent obs. median error | JPL/IMCCE error at same epochs | Ratio |
|---|---|---|---|
| Mercury | 0.013° (n=23 transits) | 0.159° | 0.11× |
| Jupiter | 0.013° (n=28 occultations) | 0.281° | 0.11× |
| Saturn | 0.022° (n=21 occultations) | 0.334° | 0.22× |
| Neptune | 0.002° (n=29 occultations) | 0.034° | 0.19× |
| Uranus | 0.020° (n=2 occultations) | 0.154° | 0.09× |
| Mars | 0.177° (n=913 Tycho) | 0.240° | 1.04× |
| Venus | 0.101° (n=8) | 0.117° | 1.20× |
The Mars row is the most robust: 913 pre-telescopic naked-eye Tycho observations match the model at median 0.18° dec error — fully comparable to (and slightly better than) IMCCE INPOP19 at the same epoch, on a sample large enough to be statistically meaningful. The result is consistent with the model’s residuals against JPL Horizons at extended ranges reflecting divergent extrapolation between the two models rather than a fitness deficit in this one.
See Verification Data Reference in the simulation repo for the full methodology and the re-runnable validation scripts in tools/fit/.
Planetary perihelion data
All values come from NASA and WebGeocalc. For the full list of transit catalogues, opposition dates, and conjunction data used for validation, see Appendix: Planetary Events & Catalogues.
Perihelion precession: the N-body element chain
The planets’ perihelion longitudes and precession rates come from the model’s own N-body element chain: engine-extracted J2000 anchors, a multi-mode secular skeleton (NAFF frequency analysis of the model’s 1-Myr Wisdom–Holman integration, 1PN on), and derived periodic terms — one governed artifact serving the simulator, this website and the published @essrt/physics package alike. The ecliptic frame is the natural frame for solar system dynamics — secular perturbation theory and angular momentum conservation operate in this plane — and every rate below is an ecliptic longitude of date.
Each planet’s eccentricity vector rides a leading secular mode (its long-term base rate) with companion modes from the other planets around it; the window rate is the mean apsidal motion over 1800–2100, the era observations sample. The two differ where companions are strong — most visibly at Saturn, whose window rate is retrograde while its leading mode (g₆) is prograde:
| Planet | Leading secular mode (″/yr) | Window rate 1800–2100 (″/cy) |
|---|---|---|
| Mercury | g₁ = 5.576 | 572.0 |
| Venus | g₂ = 7.406 | 22.7 |
| Earth | g₅ = 4.346 (Jupiter’s mode) | 1,154.4 |
| Mars | g₄ = 17.917 | 1,597.8 |
| Jupiter | g₅ = 4.257 | 488.5 |
| Saturn | g₆ = 28.246 | −1,576.6 (retrograde window) |
| Uranus | g₅ = 3.921 (Jupiter’s mode) | 806.6 |
| Neptune | g₈ = 0.607 | 9,101.7 |
Earth and Uranus lead with Jupiter’s g₅ eigenmode — their base shape is borrowed, not their own. Each rate carries its derived first-order post-Newtonian share (Mercury: 42.98 ″/cy — the closure between the 1PN-on and Newtonian runs equals the derived term). Earth’s displayed perihelion stays on the engine-K perihelion law (the two-engine interface). The former lattice-divisor identification of these rates is retired to the relations record — see ESSRT relations.
Mercury
Mercury’s model is fully aligned with NASA transit data. Perihelion precession: ~572 arcsec/cy.
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 48.330° |
| Argument of periapsis (ecliptic) | 29.127° |
| Ecliptic inclination | 7.005° |
| Longitude of perihelion | 77.457° |
| Ascending node (invariable plane) | 32.83° |
| Invariable plane inclination | 6.3472858° |
| Eccentricity | 0.20564 |
| Perihelion window rate (1800–2100, model) | 572.0 ″/cy |
For Mercury’s “missing” perihelion precession analysis: Mercury Precession.
Venus
Venus is fully aligned with NASA transit data. Perihelion precession: ~0 arcsec/cy.
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 76.679° |
| Argument of periapsis (ecliptic) | 54.898° |
| Ecliptic inclination | 3.395° |
| Longitude of perihelion | 131.577° |
| Ascending node (invariable plane) | 54.70° |
| Invariable plane inclination | 2.1545441° |
| Eccentricity | 0.00678 |
| Perihelion window rate (1800–2100, model) | 22.7 ″/cy |
Mars
Mars is aligned with opposition data. Perihelion precession: ~1,600 arcsec/cy.
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 49.557° |
| Argument of periapsis (ecliptic) | 286.508° |
| Ecliptic inclination | 1.850° |
| Longitude of perihelion | 336.065° |
| Ascending node (invariable plane) | 354.87° |
| Invariable plane inclination | 1.6311858° |
| Eccentricity | 0.09339 |
| Perihelion window rate (1800–2100, model) | 1,597.8 ″/cy |
Jupiter
Perihelion precession: ~1,800 arcsec/cy (varies over longer periods).
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 100.488° |
| Argument of periapsis (ecliptic) | 274.219° |
| Ecliptic inclination | 1.304° |
| Longitude of perihelion | 14.707° |
| Ascending node (invariable plane) | 312.89° |
| Invariable plane inclination | 0.3219652° |
| Eccentricity | 0.04839 |
| Perihelion window rate (1800–2100, model) | 488.5 ″/cy |
Saturn
Perihelion precession: ~-3,400 arcsec/cy (retrograde in the ecliptic frame, varies over time).
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 113.645° |
| Argument of periapsis (ecliptic) | 338.483° |
| Ecliptic inclination | 2.486° |
| Longitude of perihelion | 92.128° |
| Ascending node (invariable plane) | 118.81° |
| Invariable plane inclination | 0.9254704° |
| Eccentricity | 0.05386 |
| Perihelion window rate (1800–2100, model) | −1,576.6 ″/cy (retrograde window) |
Saturn is the only planet whose longitude of perihelion moves obviously retrograde in the ecliptic frame at the current epoch. Standard celestial mechanics attributes this to a transient phase of the ~900-year Great Inequality (Laplace 1784), and the model’s own N-body engine shows the same: the retrograde is the window phase of the epicycle — Saturn’s companion mode (Jupiter’s g₅) is nearly as large as its own leading g₆, so the of-date rate swings retrograde while the long-term mean stays prograde. Full record: Supporting Evidence §12.
Uranus
Perihelion precession: ~1,100 arcsec/cy.
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 74.009° |
| Argument of periapsis (ecliptic) | 96.722° |
| Ecliptic inclination | 0.773° |
| Longitude of perihelion | 170.731° |
| Ascending node (invariable plane) | 307.80° |
| Invariable plane inclination | 0.9946692° |
| Eccentricity | 0.04726 |
| Perihelion window rate (1800–2100, model) | 806.6 ″/cy |
Neptune
Perihelion precession: ~200 arcsec/cy.
| Orbital element (J2000) | Value |
|---|---|
| Ascending node (ecliptic) | 131.785° |
| Argument of periapsis (ecliptic) | 274.016° |
| Ecliptic inclination | 1.770° |
| Longitude of perihelion | 45.801° |
| Ascending node (invariable plane) | 192.04° |
| Invariable plane inclination | 0.7354155° |
| Eccentricity | 0.00859 |
| Perihelion window rate (1800–2100, model) | 9,101.7 ″/cy |
How planetary calculations work
All planetary calculations in the 3D simulation share three characteristics:
- The model’s own dynamics: each planet’s heliocentric position comes from the N-body element chain’s elements of date (secular skeleton + derived periodic terms, with light-time), placed in the scene through a frame bridge derived at runtime from the scene’s own Earth triad.
- One governed artifact everywhere: the simulator, this website’s calculator and the published
@essrt/physicspackage all read the same artifact — change a constant, regenerate, and every surface follows (the measured mass-counterfactual property: Supporting Evidence §15). - Engine-extracted inputs: the artifact’s anchors and modes are extracted from the model’s own N-body integration seeded only by the J2000 state vectors and DE440 mass ratios — nothing is fitted to ephemerides downstream.
Implementation detail and Three.js scene graph: Simulation Technical Guide.
Explore in the 3D simulation: all planetary and lunar data can be verified in the Interactive 3D Solar System Simulation . The Data Explorer dashboard provides browsable tables for each planet’s orbital parameters.
Continue to Mercury Precession for the detailed analysis of Mercury’s “missing” perihelion precession.