Capture
scicamera
Precisely timed, minimally processed still capture for scientific imaging on libcamera. Grew out of picamera2; runs on Raspberry Pi OS.
Open-source space software
Fast, dependable libraries for satellite imaging, celestial navigation and space science. Written in Rust where performance and safety matter, Python where the ecosystem wins. Free for astronomers and commercial enterprise alike.
The stack
Each library does one job well, and they compose. Capture a frame, store it in a standard format, work out where you were pointing, reduce it against the catalogues and plot the result, without leaving one toolchain.
Precisely timed scientific stills on libcamera.
scicameraFITS in pure Rust. No C, no unsafe, runs in wasm.
fitsio-pureBlind astrometry from the star pattern alone.
zodiacalCatalogues, frames, time and ephemerides.
starfieldPull-through cache for catalogues and ephemerides.
starfield-datastorematplotlib-style plots, native and in the browser.
rizzmaProjects
Capture
Precisely timed, minimally processed still capture for scientific imaging on libcamera. Grew out of picamera2; runs on Raspberry Pi OS.
Store
The FITS file format in pure Rust. No C dependencies, no unsafe code, no_std core that builds for wasm.
Solve
Blind plate solving: pointing, rotation and plate scale from the pattern of stars alone, no prior pointing required.
Reduce
Star catalogues, coordinate systems, ephemerides and star finding. Inspired by Skyfield, in pure Rust.
Serve
Pull-through artifact cache and ephemeris server: local disk, then mirror, then upstream archives, with fail-closed validation.
Visualise
matplotlib-style plotting in Rust with first‑class WebAssembly. Figures that stay interactive wherever they land.
zodiacal-webUpload a sky image, get back coordinates, orientation, pixel scale and field of view.starfield-datasourcesAstronomical data source clients for the starfield ecosystem.planet9Research and analysis on the hypothesised ninth planet of the outer Solar System.fits-test-casesCurated FITS files for regression testing readers and writers.sky-light-estimatorEstimate light pollution for a given latitude and longitude.Principles
Results are compared against reference implementations like Skyfield and SPICE, benchmarked on fields with known answers, and regression-tested on curated real data.
Pure Rust with no system libraries to install. The same code builds for servers, single-board computers at the telescope, and the browser via WebAssembly.
Permissive MIT, Apache-2.0 and BSD licences. Use it in a university observatory, a CubeSat, a commercial constellation or a telescope in your back garden.
Sky explorer
Every star in these sky maps comes from the Hipparcos catalogue and every planet from JPL’s orbital elements, worked out in your browser for today’s date. The explorer adds search, zoom, planet trails across four years, and zodiacal plate solving compiled to WebAssembly.
Get started
The Rust libraries are on crates.io with API docs on docs.rs, and scicamera is on PyPI. Add what you need and go. Questions, bugs and ideas are welcome on GitHub.
# the whole stack
$ cargo add starfield zodiacal fitsio-pure rizzma
Updating crates.io index
Adding starfield v0.18.2
Adding zodiacal v0.5.1
Adding fitsio-pure v0.13.5
Adding rizzma v1.13.3