The Forbidden Orbits
100,000 asteroids reveal the invisible hand of Jupiter's gravity
Between Mars and Jupiter, over a million known asteroids orbit the Sun. But they're not everywhere — certain orbits are empty, swept clean by gravitational resonance with Jupiter. This interactive explores the hidden architecture of the asteroid belt using real orbital data from the Minor Planet Center.
100,000 asteroids from the Minor Planet Center catalogue. Press Space to toggle between solar system view and Kirkwood gaps histogram. Scroll to zoom, drag to pan.
The Challenge
The asteroid belt looks like a uniform ring of debris. But it isn't — Jupiter's gravity has carved invisible channels through it, forbidding certain orbits from existing. The challenge is making this invisible structure visible, and explaining why it exists.
Background
In 1866, Daniel Kirkwood noticed that asteroids weren't uniformly distributed. At certain orbital distances — where an asteroid would orbit the Sun exactly 3 times for every 1 Jupiter orbit, or 5 times for every 2 — almost no asteroids exist. These orbital resonances make trajectories chaotic over millions of years, gradually ejecting asteroids from those zones.
The gaps are named after Kirkwood, and they're one of the clearest examples of how gravitational resonance shapes the solar system. The same physics creates gaps in Saturn's rings and explains why certain exoplanets have stable orbits while others don't.
Approach
We plot 100,000 real asteroids from the Minor Planet Center's orbital database, first in their spatial positions around the Sun, then reorganised into a histogram by orbital distance. The transition between views is the explanatory moment: a dense ring becomes a landscape of peaks and valleys, revealing structure carved by gravity over billions of years.
Each asteroid is rendered as an individual particle using WebGL2. The same data is shown in different arrangements — the transition itself is the explanation.
Technology
- WebGL2 (GPGPU)
- MPC MPCORB data
- Python pipeline
- Next.js
Data
- ~100,000 asteroids
- MPC orbital elements
- Keplerian orbits