running...
The science
Tidal acceleration. A satellite of radius R at distance d from a planet of mass M feels a stretching acceleration between its centre and near surface of about
a_tide = 2 G M R / d^3
while its own gravity holds the surface down with a_self = G m / R^2. Setting them equal and writing the masses with densities, M = (4/3) pi rho_p Rp^3 and m = (4/3) pi rho_m R^3, gives the Roche limit of a rigid body:
d_rigid = 1.26 Rp (rho_p / rho_m)^(1/3)
A fluid satellite deforms into an elongated ellipsoid, which raises the tide and breaks it up farther out (Roche, 1850):
d_fluid = 2.44 Rp (rho_p / rho_m)^(1/3)
The size of the moon cancels: only the density ratio matters. A rubble pile lies in between; the value k = 1.6 used here is illustrative and the real value depends on friction and internal structure. The stress ratio shown is s = (d_Roche/d)^3 (tidal stress relative to self-gravity); s = 1 at the limit.
Orbit. The moon follows a circular Keplerian orbit with angular rate omega = sqrt(G M / d^3), and debris particles are integrated with a leapfrog scheme in the same inertial frame.
Honest simplifications. Real moons are held together by material strength as well as gravity, rotate, and are not on circular orbits; the shape change and the debris spread here are qualitative illustrations. The orbit decay is a toy parameter (real decay needs tidal dissipation). Distances are in planet radii; presets only set the densities and the planet radius used for kilometres. This page is the 2D companion to the 3D Roche limit simulator, which uses a simplified scalar limit; the classical formulas above are used here.