sidereon · reference-validated GNSS + astrodynamics, in five languages

4 min read Original article ↗

REFERENCE-VALIDATED, MIT-LICENSED GNSS + ASTRODYNAMICS ENGINE

GNSS and astrodynamics primitives. Rust-fast, native to your language.

A Rust core for SGP4, SPP/RTK/PPP, RINEX and observation quality control, real-time RTCM and NTRIP streams, frames and time, ionosphere, and conjunction, checked against Vallado, Skyfield, IGS, teqc, and IERS, with idiomatic interfaces in Rust, Python, C, Elixir, and WebAssembly.

cargo add sidereon crates.io

propagating the live constellation · GPS · Galileo · GLONASS · BeiDou

WASM LIVE · RUNNING IN THIS TAB NET 0

LIVE SPP SOLVE · IGS STATION ABMF (GUADELOUPE) · IN-BROWSER

computing first fix…

The whole engine, running client-side in your browser right now.

TRACK THE LIVE CONSTELLATION

LIVE · WEBASSEMBLY INTERFACE

And the whole engine runs in your browser.

Everything below is the same core compiled to WebAssembly, executing client-side in this tab. Drag the globe, drop an observer, run the solve. Maximize any panel for the full detail and the underlying calculations. After load there are zero server calls.

LIVE GLOBE · CLICK TO SET OBSERVER NET 0

OBSERVER

CLICK THE GLOBE TO DROP AN OBSERVER

drag to orbit · + / − to zoom · click to drop an observer

The live constellation, propagated client-side. Click the globe to set the observer for the skyplot beside it.

OBSERVER · LIVE SKYPLOT REAL-TIME AZ / EL · TOPOCENTRIC LOOK ANGLES

CLICK THE GLOBE TO SET AN OBSERVER

NEXT PASSES · 6H

SGP4 propagation to current UTC, then topocentric az / el from the observer. Arcs are each satellite's real pass over ±45 min.

SOLVE · REAL IGS STATION ABMF (GUADELOUPE) NET 0

computing first fix…

RINEX OBS + BROADCAST NAVsolveBroadcast() · Rust→WASMECEF → LLH

CONFIGURE THE SOLVE · each change re-runs the real WASM fix

ATMOSPHERE CORRECTIONS

Klobuchar ionosphere · Saastamoinen troposphere

ELEVATION MASK 10° satellites above the mask feed the fix

RAW VS ACTIVE CONFIG · same recorded multi-GNSS epoch

CONSTELLATION

DAY / NIGHT TERMINATOR sub-solar point off

TLE · CELESTRAK

IONEX · VERTICAL TEC

TRACK CLEANUP · LIVE PHONE DRIVE NET 0

REAL WASM TRACKFILTER · PER-EPOCH REPLAY

Fixes arrive with covariances; wide-covariance fixes get almost no weight, so spikes cannot pull the track.

STATEPAUSED

PROGRESSloading track…

3D ERROR VS SPAN TRUTH

GSDC · 2020-05-14-US-MTV-1 · Pixel4 · SPAN truth · CC BY 4.0 attribution

RTK - MILLIMETER BASELINE, CLIENT-SIDE NET 0

FLOAT · PER EPOCH FIXED TRUTH

WTZR / WTZZ · 40 EPOCH RINEX + SP3

Parsed, differenced, floated epoch by epoch (the teal path is the float estimate converging on truth), then wide-lane fixed by the WASM engine in this tab.

IDLE

BASELINEwaiting

ERROR VS ITRF TRUTHwaiting

RATIOwaiting

WALL CLOCKwaiting

FLOAT TO WIDE-LANE FIXED

IGS MGEX / EPN WTZR-WTZZ 2020-06-25 trims · GFZ SP3 · public IGS data attribution

Drag to orbit · + / − to zoom · click the globe to set an observer

ASTRODYNAMICS · INTERACTIVE

Drive the engine yourself.

Three more calculations, each run live in this tab against the real constellation: a global coverage map, a close-approach screen between any two satellites, and orbit determination from three position sightings. All client-side, zero server calls.

COVERAGE · SATELLITES IN VIEW NET 0

VISIBLE-SATELLITE COUNT ACROSS THE GLOBE · NOW

grid idle

ELEVATION MASK 10° a satellite counts only above this elevation

CONJUNCTION · CLOSEST APPROACH NET 0

SCREEN ONE SATELLITE AGAINST THE WHOLE CONSTELLATION · ONE BATCHED CALL

pick a satellite and screen it against the fleet

IOD · ORBIT FROM THREE POSITIONS NET 0

GIBBS RECOVERY · RECOVERED VS TRUE ORBIT

SIGHTING SPACING 10 min three positions sampled this far apart

pick a satellite and recover its orbit

LANGUAGE INTERFACES

One engine, five languages.

The same reference-validated core, reachable as idiomatic code in Python, C, JavaScript/WebAssembly, Elixir, and Rust. No reimplementations, no drift between bindings: one solve path, verified once, everywhere you call it.

main.rs

INSTALL cargo add sidereon

CAPABILITIES

A full GNSS and astrodynamics stack.

From a raw element set to a precise position, sidereon covers the working surface of modern satellite navigation and orbital mechanics in one consistent engine.

VALIDATION

Checked against Vallado, Skyfield, IGS, and IERS.

Every subsystem is verified against the reference implementation for its domain, and where that reference is open, sidereon ships the parity trace.