Interactive 3D · live orbital data
Orbital — Live Satellite Catalog & Kessler Cascade
Every tracked object in Earth orbit, propagated live on the GPU from real CelesTrak orbital elements — the actual Starlink shells, the ISS, GPS, and the named debris clouds, with J2 plane precession and shadow-side eclipse dimming. Then break it: collide satellites, fire an ASAT, or launch a deliberate coordinated attack and watch the Kessler chain reaction shred low orbit while a live event log names every kill, an altitude histogram fills with debris, and an economic-loss counter climbs. Fast-forward ten years to see which shells drag clears and which stay poisoned for generations.
- — Live catalog: ~18,000 real objects from CelesTrak (cached), classified into LEO/MEO/GEO/HEO + tracked debris
- — Real orbital mechanics: GPU Kepler propagation, J2 secular precession, atmospheric-drag decay, GEO eclipse
- — Click any satellite to inspect or destroy it; four incident scenarios including a deliberate Kessler attack
▸ Scientific dossier — assumptions, capabilities & the mathematics
Dossier
Orbital — Live Catalog & Kessler Cascade
The full tracked population of Earth orbit — roughly 18,000 objects from the CelesTrak catalog — is propagated forward in time from each object's real orbital elements. You can inspect or destroy any object, stage collisions and anti-satellite strikes, and then fast-forward a decade to watch which debris shells clear and which stay lethal for generations.
Assumptions
- Two-body gravity is the base field. Earth is a point mass with gravitational parameter \(\mu=GM_\oplus\); every object follows a Keplerian conic perturbed only by the dominant oblateness term.
- Oblateness enters through the secular \(J_2\) terms only. The node and perigee precess; short-period oscillations, higher zonal/tesseral harmonics, luni-solar gravity and solar radiation pressure are neglected for catalog objects.
- Catalog energy is conserved. Semi-major axis is fixed for tracked objects (no per-object drag integration); atmospheric drag is modelled explicitly only for collision fragments, and statistically for the decade-scale fast-forward.
- Breakups are isotropic. A collision or ASAT ejects fragments with a characteristic spread of relative velocity; fragment counts are representative heuristics, not a NASA standard breakup-model spectrum.
- Input data is live but cached. Elements come from real CelesTrak TLEs (with a synthetic fallback), classified into LEO/MEO/GEO/HEO plus tracked debris families (Cosmos-2251, Iridium-33, Fengyun-1C, …).
Capabilities & limitations
- Can: reproduce the true geometry of the Starlink shells, GPS, the ISS and named debris clouds; show correct nodal/apsidal precession (so Sun-synchronous and Molniya planes behave correctly); render eclipse dimming and the along-plane spreading of a fresh debris cloud; account for the economic value destroyed.
- Cannot: match an operational propagator (SGP4) to the metre — keeping only secular \(J_2\) means positions drift from truth over long spans; produce calibrated breakup fragment counts; resolve true collision probabilities (you choose the collisions). The decade decay is a statistical survival model, not a per-object atmospheric integration.
Mathematics
1 · Kepler propagation. Each object's mean motion and period follow from its semi-major axis \(a\):
The mean anomaly advances linearly, \(M(t)=M_0+n\,(t-t_0)\), and the eccentric anomaly \(E\) is recovered from Kepler's equation by Newton–Raphson — the exact iteration the propagator runs (six steps):
The position in the orbital (perifocal) plane and the radius are then
and a 3–1–3 rotation by \((\Omega,i,\omega)\) carries that into the Earth-centred inertial frame, \(\mathbf r_{\mathrm{ECI}}=R_3(-\Omega)\,R_1(-i)\,R_3(-\omega)\,[\,x,\ y,\ 0\,]^{\mathsf T}\). The speed at any point obeys the vis-viva relation
2 · \(J_2\) secular precession. Earth's oblateness adds the leading zonal term to the potential,
where \(\phi\) is geocentric latitude. Averaging Lagrange's planetary equations over one orbit kills the periodic terms and leaves secular drifts of the node \(\Omega\) and argument of perigee \(\omega\). With the semi-latus rectum \(p=a(1-e^{2})\):
The simulation stores these as \(k=\tfrac32 J_2(R_\oplus/p)^2 n\) with \(\dot\Omega=-k\cos i\) and \(\dot\omega=k\,(2-\tfrac52\sin^2 i)\); the two forms are identical because \(2-\tfrac52\sin^2 i=\tfrac12(5\cos^2 i-1)\).
Proof — the critical inclination. The perigee stops precessing exactly when its rate vanishes:
This is why Molniya/Tundra orbits sit at \(63.4^{\circ}\): the apogee stays frozen over the same hemisphere. Sun-synchronous orbits use the other rate — forcing the node to precess at exactly one revolution per year, \(\dot\Omega=2\pi/\text{yr}\approx1.991\times10^{-7}\ \mathrm{rad/s}\), and solving for \(\cos i\) gives the familiar retrograde \(i\approx98^{\circ}\) at a few hundred km altitude. Both results fall straight out of the equations above and are visible in the live catalog.
3 · Fragment dynamics and re-entry. Each collision fragment is integrated as a true two-body trajectory with a thin-atmosphere drag sink below 450 km, using a semi-implicit (symplectic) Euler step with \(\Delta t\le 20\,\mathrm s\):
To decide a fragment's long-term fate, its instantaneous state \((\mathbf r,\mathbf v)\) is converted back to orbital elements — the exact algebra the fast-forward uses:
and the perigee altitude \(q\) drives a decade survival probability that runs from \(0\) below 300 km to \(\sim0.95\) above 1200 km.
4 · The Kessler criticality (the headline result). Treat a shell as a population of \(N\) objects. Mutual collisions create fragments at a rate proportional to the number of pairs, \(\propto N^2\); atmospheric drag removes objects on a timescale \(\tau_d(h)\). The population then obeys a logistic-type balance:
with \(\sigma\) the collision cross-section, \(v_\text{rel}\) the encounter speed and \(f\) the fragments produced per collision. The cascade becomes self-sustaining — growing with zero new launches — precisely when production overtakes the sink:
Because \(\tau_d\) climbs from days near 300 km to centuries above 700 km, the critical population \(N_\text{crit}\) collapses with altitude. That is the quantitative reason the 700–1200 km shells are the dangerous ones — and why, after a cascade, the fast-forward shows those shells still poisoned a decade later while the low ones self-clean. This is Kessler syndrome stated as an inequality.