New library: seiza (星座 — “constellation”), a Rust astronomical plate solver. Give it an image of the night sky and it figures out exactly where the telescope was pointing — star detection, TAN WCS fitting, and both hinted and blind solving — built to power the astrometric features in tenrankai and, eventually, PSF Guard.
The speed story
Plate solving has a reputation for being slow. It doesn’t have to be. Measured on a 16-core desktop, no GPU, everything from a cold start:
- A 24 MP wide field blind-solves in under 2 seconds against a 2.5M-star Tycho-2 catalog — including building the entire 2M-pattern whole-sky index from scratch (1.2s) before searching it (0.4s).
- A 61-megapixel raw FITS frame goes from file-open to hinted solution in 0.7 seconds — load, autostretch, star detection, solve.
- Hinted solving itself runs in tens of milliseconds, with typical RMS of 0.2–0.5″ on real frames.
Those numbers came from a day of optimization passes that took the blind index build alone from 13.5s to 1.6s. The tricks: star unit vectors so every radius test is a dot product (no per-pair trigonometry), boundary-aware descriptor hashing (1–4 probes per quad instead of 3⁵), a frozen sorted-array index with branchless binary search, uniform-grid matching, rayon across all cores, and SIMD kernels with runtime AVX2 dispatch so released binaries stay portable.
More than stars
Getting started is one command: seiza download-data prebuilt pulls
SHA-256-verified star and object catalogs from the CDN — Tycho-2 (2.5M
stars, 25 MB), Gaia DR3 (36.7M stars), a 314k-entry object store, and a
transient catalog refreshed nightly. Building your own deeper sets from
primary sources stays supported, but nobody should have to spend hours
against the ESA archive just to solve their first image.
The object catalogs pack NGC/IC/Messier, Sharpless, Barnard, LDN, vdB,
UGC, PGC galaxies, Green’s supernova remnants, Wolf-Rayet stars, named
stars — plus live transient lists and comet/asteroid orbital elements
(from JPL SBDB, apparition-specific for past dates) propagated to each
image’s capture time, so an active supernova or a passing comet is an
object like any other. Each minor body even carries its characteristic
direction — the anti-solar position angle for a comet’s tail, the
apparent-motion bearing for an asteroid’s trail — with propagation
validated against JPL Horizons. Solve an image, and it tells you everything
in the footprint with full ellipse geometry. There’s also seiza-fits, a
dependency-free FITS reader with exact single-pass statistics, MTF
autostretch, and OSC debayering (a 26 MP sub loads in ~75ms).
Drop-in for N.I.N.A.
The newest trick: an ASTAP-compatible mode. Name a copy of the binary
astap (or hand N.I.N.A. the path) and seiza reads ASTAP’s command line —
flags, unit conventions and all — resolves its own star catalog, solves
hinted with a blind fallback for wide search radii, and writes exactly the
.ini result file N.I.N.A. parses. Your imaging rig gets the sub-second
solver with zero configuration changes.
It’s on crates.io (0.2.2 as of this writing), with deb and RPM packages on GitHub releases.
The tenrankai integration
This is why seiza exists. With seiza wired in, tenrankai plate-solves astro images and draws object overlays: an “Objects” toggle on the image detail page reveals labeled markers for everything in frame — with collision-nudged labels, a frame-encompassing badge for the big stuff, zoomable views with touch-safe controls, and solutions persisted into the same markdown metadata sidecars everything else lives in. Solve once, flat files forever.
Here it is running against my shot of SN 2026sqf — a real screenshot, solved from the Tycho-2 catalog in well under a second:

My favorite part is that magenta label: transient overlays. The object store carries a live, reloading supernova catalog scoped to each image’s capture date — the solver knew that SN 2026sqf, type II, discovered 2026/07/08, was active in this frame on that night, automatically. When the catalog updates, persisted overlays regenerate.
Flat files in, annotated sky out.