Moon Orbit Lab

Earth–Moon / CR3BP

MOON-CENTERED VIEW

Southern NRHO

Earth–Moon L2 · spatial halo family

Reference
Physical body sizes · distances in kmDrag to rotate · pinch / scroll to zoom

Calculating the reference orbit…

Lunar altitude
Distance from Earth
Separation from reference
Jacobi drift |ΔC|
Loading the orbit catalog…
Simulation details
Choose an example to begin.

About this model

A Moon-centered CR3BP

Earth and Moon move in circular orbits. The spacecraft has negligible mass. This model excludes the Sun, radiation pressure, oblateness, lunar libration and stationkeeping. Presets are idealized periodic orbits, not reconstructed mission trajectories.

Every input is measured in a Moon-centered rotating frame. The Moon is at (0, 0, 0), Earth at (−1, 0, 0) in normalized units. +x points away from Earth, +z follows the system angular momentum, and +y completes the right-handed frame. Velocity is relative to these rotating axes.

The “Nonrotating axes” view also follows the Moon. Its axes do not rotate, but its accelerating origin makes it non-inertial. Changing the view never changes your initial conditions.

Try this in the workshop

  1. Load the Lyapunov orbit and choose three periods.
  2. Round the initial conditions to four significant digits. Compare the green path with the reference.
  3. Restore the original, then repeat with eight digits.
  4. Try the DRO and NRHO. Sensitivity depends on the orbit and the direction of the change.

Rapid separation can reveal sensitivity to initial conditions or an unstable orbit. A pair of diverging trajectories alone does not prove chaos, and not every CR3BP orbit is chaotic. Jacobi drift measures a numerical error, separately from the change in Jacobi constant caused by new initial conditions.

Numerical conventions

The solver uses adaptive Dormand–Prince 5(4) integration in double precision. Playback uses interpolation of saved states. The workshop convention is Cworkshop = −CJPL, with CJPL = xB² + y² + 2(1−μ)/rE + 2μ/rM − (vx² + vy² + vz²), where xB = xMoon + 1−μ. All terms are normalized.

The Moon and Earth use physical spherical radii. Spacecraft and Lagrange markers are enlarged for visibility. Lighting is chosen to reveal lunar geography and does not represent a dated Sun direction. Use “Moon close-up” to inspect the high-resolution texture.

Sources and acknowledgments

Orbit states and normalization: NASA/JPL Three-Body Periodic Orbit Catalog and its API documentation. Lunar imagery: NASA Scientific Visualization Studio CGI Moon Kit. Detailed attribution is also included in the source package.

Teaching context: Davide Conte’s Beyond Kepler workshop and the supplied Aerospace Corporation Cislunar Astrodynamics slides. No endorsement is implied. Rendering uses Three.js under the MIT license.