Every object is a genuine two-body Kepler orbit around Earth, propagated exactly (not numerically integrated, so there is no drift): each has a semi-major axis a, eccentricity e and argument of periapsis ω, giving mean motion n = √(μ/a³) (Kepler's third law, μ = 398600.4 km³/s²). At simulated time t its mean anomaly is M = M₀ + n·t; Kepler's equation is solved by Newton–Raphson for the eccentric anomaly E, then converted to true anomaly and radius:
M = E − e·sin(E) (solved for E)
r = a·(1 − e·cos(E))
ν = 2·atan2(√(1+e)sin(E/2), √(1−e)cos(E/2))
v = √( μ·(2/r − 1/a) ) (vis-viva speed)
When two orbits' instantaneous positions pass within the (deliberately exaggerated, for visibility — real debris cross-sections are metres, not the kilometres shown here) collision radius, both are destroyed and replaced by new fragments seeded near the impact point with perturbed a/e/ω — the same runaway feedback loop, discovered by Donald Kessler in 1978, that can turn a crowded orbital shell into a self-sustaining collision cascade. The orbital motion itself is exact physics; only the collision probability is scaled up so a cascade is observable in seconds rather than decades.
- Population — surviving tracked objects (capped at 2500 for performance).
- Altitude band — sets the initial semi-major-axis range; Mixed samples all three regimes at once.
- Fragments per collision — how many new debris pieces one impact seeds.