Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asteroid Fable

A live WebGL map of every known asteroid in the solar system — 1.55 million objects from the NASA/JPL Small-Body Database, animated in real time. Built with Claude Fable 5.

How it works

  • scripts/build_data.mjs packs each asteroid's Keplerian orbital elements (a, e, i, Ω, ω, M₀, epoch, H) into a 26 MB binary (public/asteroids.bin), 17 bytes per asteroid.
  • The browser uploads those elements as GPU vertex attributes. A vertex shader solves Kepler's equation (Newton iterations) every frame, so the entire catalog orbits live in a single draw call.
  • Planets use JPL's approximate J2000 elements + secular rates.
  • Colors encode dynamical class: near-Earth, Mars-crossers, main belt, Hildas/trojans, centaurs, trans-Neptunians.

Develop

npm install
npm run dev

To refresh the catalog:

curl -s --compressed -o data/sbdb_raw.json \
  "https://ssd-api.jpl.nasa.gov/sbdb_query.api?fields=a,e,i,om,w,ma,epoch,H&sb-kind=a"
npm run data

Deploy

Static Vite build, deployed on Vercel: npx vercel.

Data courtesy NASA/JPL-Caltech Solar System Dynamics group.

About

Live WebGL map of all 1.55M known asteroids from NASA/JPL data — built with Claude Fable 5

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages