Fast plate-solving/astrometry implementation in Rust.
Same API as astrometry.net's Nova.
Solves 10-100× faster using the same index files.
Warning: This project is still in beta. Currently solving 99.2% of the images tested.
About
Faint Light is a fast plate-solving program made out of a single static binary, written in Rust, that implements the same nova.astrometry.net HTTP API.
It also reads the standard astrometry.net index files directly. The 4100, 4200 and Gaia-based series all work, including the healpix-tiled files, so an existing local astrometry.net installation can share its index directory with Faint Light. There is no conversion step and no separate catalogue to download.
Since it's the same API, programs like NINA can simply point its plate-solving to Faint Light.
Features
- Native Rust solver: mmaps stock astrometry.net index files (4100/4200/5000 series) and traverses their libkd kd-trees directly without C dependencies, neither format conversion.
- Warm-start (not used for the benchmark): the server remembers your last few solves. If the next image is near the previous one, it checks the old solution against the new stars instead of searching again, in under 10 ms. If you slewed somewhere else, it still knows your pixel scale and searches less. Useful because NINA sends no hints at all.
- In-memory index cache (not used for the benchmark): A configurable RAM budget (
FAINT_LIGHT_CACHE_GB) that prefetches the indexes relevant to your rig. - Blind fallback always remains: first-ever solve works with zero hints.
- Skyview (Bonus): Builds an image of the all-sky chart and FOV of the image solved.
Benchmark
The numbers in the charts come from a controlled benchmark of every plate-solving program that could be installed on one machine, run over one identical set of 256 real telescope images: ZTF science quadrants at 0.87° and TESS full-frame crops at 5.8° and 11.7°. All candidates read byte-identical index files.
Benchmark machine: AMD Ryzen 9 9950X3D, 64 GB DDR5.
About the two astrometry.net entries
The unmodified version of offline astrometry.net adds roughly 8 seconds of delay due to its job queue system. To provide a fair comparison, a modified version was also included in the benchmark, bypassing the job system and invoking the plate solver directly. This change alone represents a significant improvement for astrophotography software, reducing plate-solving time from around 10 seconds to less than a second. The impact is even greater during polar alignment, where dozens or sometimes hundreds of images may need to be plate-solved, causing the time savings to accumulate quickly.
Other candidates
Also tried but not on the chart: PlateSolve 2, which never matched a single frame; All Sky Plate Solver, a Windows wrapper around the same astrometry.net engine that solves interactively but failed every batch run; and twirl, which needs position, scale and online Gaia access, so it is not a blind solver. Note that ansvr, which is on the chart, is also astrometry.net underneath: a 2019 Cygwin build of it for Windows.
Please, e-mail me if you wish me to add other candidates not mentioned here.
Current challenges
On very wide, strongly distorted fields (the 11.7° TESS class) Faint Light finds the right field as reliably as offline astrometry.net, but its field-centre solution sits about 2.5× further from the solver consensus. At normal telescope scales the difference vanishes. Two of the 256 blind solves failed, both dense galactic-plane frames.
Worth checking the roadmap.
Download
Faint Light is open source under the Apache 2.0 licence.
Installation, configuration and the roadmap are in the repository at github.com/fschuindt/faint_light.