A Moon Orbiting Nothing

The configuration sounds impossible: a moon tracing circles around empty space. The point of this page is that, dynamically, nothing about it is exotic — replace Earth with an equal point mass and the Moon’s orbit does not care. The only question is whether the orbit fits inside the region where the star lets the pair stay bound: the Hill sphere.

Code
from lastmoon.physics import constants as c
from lastmoon.physics.orbits import (
    hill_radius,
    is_moon_orbit_stable,
    kepler_period,
    max_stable_moon_semi_major_axis_m,
)

r_hill_m = hill_radius(c.AU, c.M_EARTH, c.M_SUN)
stable_limit_m = max_stable_moon_semi_major_axis_m(c.AU, c.M_EARTH, c.M_SUN)
moon_ok = is_moon_orbit_stable(c.LUNAR_SEMI_MAJOR_AXIS, c.AU, c.M_EARTH, c.M_SUN, c.LUNAR_MASS)
period_days = kepler_period(c.LUNAR_SEMI_MAJOR_AXIS, c.M_EARTH, c.LUNAR_MASS) / 86400.0
print(f"Hill radius of an Earth-mass primary at 1 AU: {r_hill_m/1e9:.2f} million km")
print(f"Stable ceiling (Domingos 0.49 R_Hill): {stable_limit_m/1e9:.2f} million km")
print(f"Lunar orbit (0.38 million km) stable? {moon_ok}; period {period_days:.1f} days")
Hill radius of an Earth-mass primary at 1 AU: 1.50 million km
Stable ceiling (Domingos 0.49 R_Hill): 0.73 million km
Lunar orbit (0.38 million km) stable? True; period 27.3 days

The Moon’s actual orbit sits comfortably well inside the Domingos prograde stability cap (0.49 R_Hill), with its familiar 27-day period intact.

Code
import matplotlib.pyplot as plt
import numpy as np

from lastmoon.figures.style import apply_style
from lastmoon.physics.orbits import hill_radius, max_stable_moon_semi_major_axis_m

apply_style()
a_outer = np.linspace(0.5, 1.7, 100) * c.AU
limit = [max_stable_moon_semi_major_axis_m(a, c.M_EARTH, c.M_SUN) for a in a_outer]
fig, ax = plt.subplots()
ax.plot(a_outer / c.AU, np.array(limit) / 1e9, label="stability limit (Domingos 0.49 R_Hill)")
ax.axhline(c.LUNAR_SEMI_MAJOR_AXIS / 1e9, ls="--", label="the Moon's orbit")
ax.set_xlabel("orbital distance from a Sun-like star (AU)")
ax.set_ylabel("moon orbital radius (million km)")
ax.legend()
fig

Stable moon orbits (below the line) for an Earth-mass primary across the habitable zone.
NoteWhat this means for the paper

A mass-conserving conversion leaves the moon’s orbit untouched, and that orbit is comfortably Hill-stable everywhere in the habitable zone. The “moon orbiting nothing” is dynamically ordinary — which is exactly what makes it a clean tracer of the invisible primary. For reference, this page uses a Sun-like host at 1 AU, where a literal lunar orbit is stable; for an M-dwarf habitable zone the Hill radius is far smaller, and a literal Earth–Moon distance (3.84×10⁵ km) lies outside the Domingos cap (~1.09×10⁵ km), so the paper’s detectability analysis uses a conservative 0.20 R_Hill fiducial instead.

WarningIdealizations

Two-body + Hill-criterion treatment; no long-term resonant effects. The paper adopts the Domingos (2006) 0.49 R_Hill prograde stability ceiling and a conservative 0.20 R_Hill detectability fiducial.