Stardust — finding asteroids in old sky photos
Independent research · with Jossaya Camille · 2026–
When a near-Earth asteroid is discovered, astronomers have only a few days of sightings, so its
orbit is fuzzy and its odds of hitting Earth are fuzzy with it. In early 2025, 2024 YR4
briefly carried about a 3% chance of impact in 2032, and it took roughly two months of new
observations to rule that out. Ruling it out required more sightings, and the usual way to get them is to
wait and keep looking.
There's a faster way. Public sky surveys photograph the whole sky every few nights, so a newly
found asteroid was usually already sitting in older photos that nobody had connected to it.
Stardust goes back and finds it there, automatically.
How it works
- Early orbit. Fit an orbit to only the sightings that existed four days after discovery.
- Clones on the GPU. Sample tens of thousands of orbits consistent with those sightings and
run them back in time with our own batched N-body integrator in PyTorch: the Sun, planets, Moon,
and the most massive asteroids, plus the Sun's relativistic correction.
- Search boxes. Project that cloud of clones onto every older photo from the Zwicky
Transient Facility (ZTF) at Palomar, which tells us where in each frame the asteroid must have been.
- Detect. Search those regions with a U-Net trained on real ZTF cutouts of known
asteroids, alongside a classic streak matched filter.
- Link and check. Keep a track only if it lines up on a single orbit across several photos
and nights, and still fits the real discovery sightings once the orbit is refit with it.
Results so far
We ran it on 72 asteroids that NASA had once listed as possible impactors, giving the pipeline
only what was known four days after each discovery. It recovered 167 verified ZTF sightings of 22
of them, none of which had ever been attributed to those asteroids. Adding them makes the orbits
up to 52× more certain, with a median of 7.1×. Sixteen of the 22 came from held-out rounds that we ran
once, with every rule frozen beforehand.
The AI detector is where the extra reach comes from. At the camera's detection limit it finds
58% of real asteroids, where the classic streak filter finds none. It also stays honest. It doesn't
report asteroids that are too faint to be in the photo.
We also pointed it at asteroids on NASA's Sentry risk list today and turned up 202 pre-discovery ZTF
sightings of 23 of them that had never been reported, each found independently by both detectors.
To check that the engine underneath is right, we compared it with NASA JPL on 2024 YR4.
Our fitted orbit lands within 6 km of JPL Horizons, the propagator stays within 4 km per year
of REBOUND+ASSIST, and the predicted 2032 Earth miss distance comes out at 279,443 km against
JPL's 278,333 km.
Who did what
I built the orbit and detection side: the GPU propagator, the search and linking, the AI
Spotter and its training data, and the checks against JPL. Jossaya built the
live site, a 3D dashboard that flies
you to each asteroid and shows where Stardust saw it before anyone else did.
Where it's going
The work now is making every result rigorous enough to stand as research, and getting the
recovered sightings to the Minor Planet Center.
Numbers
- 167
Verified, never-connected ZTF sightings of 22 once-risky asteroids.
- 52×
Largest tightening of an orbit (2025 YH5). Median 7.1×.
- 58% vs 0%
AI Spotter against the classic streak filter, at the camera's limit.
- 23 s
100,000 orbit clones run a year forward, on a laptop GPU.
- 202
Unreported pre-discovery sightings of asteroids on NASA's risk list today.
Python and PyTorch (CUDA), Find_Orb, REBOUND and ASSIST, Astropy; ZTF data via
IRSA/IPAC, the Minor Planet Center, and NASA JPL. Started in October 2026 at Knight Hacks IX. The model, dataset and results page are on
Hugging Face.
See also PolyOculus and CELERIS.