
Sidereon
io.github.neilberkman由 GitHub 账号 neilberkman 发布v3.0.6更新于 Nov 6, 2026
GNSS positioning and astrodynamics: orbit propagation, passes, GNSS solves, and RINEX QC
概览
Sidereon 通过 MCP 向 AI 助手提供 GNSS 定位与航天动力学引擎:轨道推演、卫星过境、GNSS 解算与 RINEX 质量检查。
- 可以做什么
- 推演卫星轨道,计算过境、观测角、地面轨迹与覆盖
- 从 RINEX 数据解算 GNSS 位置(SPP、RTK、PPP、静态、DGNSS),并给出 DOP 与误差界
- 执行 RINEX 观测质量检查,包括完整性、多路径与周跳
- 检查并汇总导航、星历与观测文件
- 计算由协方差导出的误差指标,如 CEP、DRMS 与 R95
- 适用场景
- 适合需要处理卫星轨道数据、GNSS 观测或导航文件以及定位结果的场景,例如检查一段 RINEX 观测、计算静态定位结果或规划卫星过境。
- 运行要求
- 作为本地进程在用户机器上运行,以 MCP 打包形式提供给桌面客户端。未声明认证、环境变量或请求头。底层引擎为 Rust 库,并附带一个通过 MCP 暴露该引擎的命令行工具。
安装
在 SourceWeft 中
- 打开 控制台中的 Sidereon,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
sidereon
GNSS positioning and astrodynamics in Rust, with first-class interfaces in Python, C, Go, WebAssembly, and Elixir. Reference-validated, and bit-exact to public oracles where it counts.
sidereon is one engine: a Rust core for satellite orbit propagation, GNSS positioning, time and frame transforms, atmosphere models, and the standard exchange formats, exposed through idiomatic interfaces in six languages so the same validated math is reachable wherever you work.
Live demo: sidereon.dev: a real-time satellite tracker (globe, ground tracks, coverage, conjunction screening, orbit determination) computed in the browser via the WebAssembly build.
Capabilities
- Orbit propagation: SGP4/SDP4 from TLE/OMM, numerical propagation with a composable force model (spherical-harmonic geopotential to selectable degree and order, solid Earth and pole tides per the IERS conventions, Sun/Moon third-body, solar radiation pressure with conical shadow, Earth albedo and infrared radiation pressure, relativistic correction, NRLMSISE-00 drag), decay/reentry prediction with a post-decay validity latch, Kepler propagation and anomaly conversion, batch/constellation propagation, ground tracks, passes, visibility, and coverage.
- Orbit determination: initial orbit determination (Gibbs, Herrick-Gibbs, Gauss angles-only), batch least-squares fit of the numerical propagator to precise ephemerides with a per-satellite RTN residual ledger, and covariance propagation.
- GNSS positioning: single-point (SPP), RINEX observation to SPP assembly and solve helpers, public multi-epoch
static_positioning/solve_staticsolves with covariance, leave-one-out redundancy diagnostics, and robust weighting (including one-call reference-station static: rover and reference RINEX in, station coordinate with covariance out), Doppler velocity with clock drift, RTK float and fixed (LAMBDA) with baselines built straight from raw RINEX (verified to millimeters against a published ITRF station pair), PPP float and fixed with SSR or Galileo HAS corrections driving the solve over broadcast ephemeris, static PPP with temporal-correlation covariance (calibrated day-length bounds), optional elevation cutoff, and optional tropospheric gradient estimation, DGNSS, across GPS/GLONASS/Galileo/BeiDou/QZSS, with DOP (G/P/H/V/T). - Integrity and error bounds: RAIM fault detection and exclusion, multi-constellation ARAIM (MHSS protection levels), SBAS protection levels (DO-229), classical reliability (per-observation minimal detectable bias, internal/external reliability), observability classification of every solve (rank, redundancy, conditioning), and covariance-derived error metrics (CEP, R95, drms, SEP, error ellipse) that report wide or flagged bounds for weak geometry rather than fabricated confidence, and uncertainty-aware geodesic geofencing (containment and crossing probabilities from a position covariance, with hysteresis).
- GNSS corrections: SBAS message decode and correction application, RTCM SSR and Galileo HAS orbit/clock/bias correction stores with explicit provider reference-point handling, NTRIP client stream handling, and differential code biases (DCB/OSB) from Bias-SINEX and CODE products.
- Ephemeris and time: broadcast and precise (SP3) ephemeris, window-scoped continuity verdicts using the product interpolator's derived stencil reach, RTCM 3 broadcast ephemeris decode for GPS (1019), GLONASS (1020), Galileo (1045/1046), BeiDou (1042), and QZSS (1044), each real-data validated, JPL SPK kernels, source-agnostic satellite state sampling across all three, batched multi-satellite interpolation, scale-aware time (UTC/TAI/TT/UT1/TDB/TCG/TCB and the GNSS system times) with leap-second handling and caller-updatable leap and UT1 tables, and Earth orientation (EOP).
- Timing and clocks: Allan-family stability analysis (ADEV/MDEV/HDEV/TDEV), power-law clock-noise identification with a five-coefficient fit (IEEE 1139), and clock comparison across products.
- Estimation and detection: a covariance-weighted track filter for position fixes (no IMU required: weak-geometry fixes with wide covariances cannot spike the track) with a fixed-interval RTS smoother, scalar Kalman and alpha-beta trackers, innovation gating (NIS), MAD statistics, CFAR detection thresholds, and source localization (ToA/TDOA) from arrival times at known sensors.
- Geodesy and monitoring: geodesic direct and inverse problems on the ellipsoid (Karney), an epoch-aware terrestrial reference frame catalog with published ITRF and ETRF Helmert parameter sets, station displacement corrections (solid Earth tide, pole tide, and ocean loading from caller-supplied BLQ coefficients), station velocity (MIDAS), trajectory fitting with seasonal terms and offsets, step detection, network motion fields with common-mode removal, and repeating-geometry (sidereal) filtering with coverage-aware templates.
- GNSS/INS fusion: field mode for real receivers (zero-velocity and zero-angular-rate updates, non-holonomic vehicle constraints, per-fix-status weighting, IMU-to-body mounting DCM, velocity matching across outages), plus ECEF strapdown mechanization with rigorous attitude integration, an error-state EKF (with a UKF option) using Joseph-form updates, loose and tight coupling (per-satellite pseudorange and range-rate measurements, valid from a single satellite), IGG-III loose updates (measurement reweighting and adaptive prediction scaling behind an outlier guard, from the published schemes), an RTS fixed-interval smoother over recorded histories, time synchronization with checkpointed late-measurement replay, a serializable filter state, and a deterministic IMU error simulator. Field behavior is pinned by simulator-backed tests: fused beats own GNSS under an outlier budget, outages coast within the IMU-grade bound, and sub-4-satellite windows stay covariance-consistent.
- Geometry and events: TEME/GCRS/ITRS/geodetic/topocentric transforms (IAU/IERS), a precise Earth-orientation rotation provider, look angles, eclipse, relative motion in RIC/RTN/LVLH frames with Clohessy-Wiltshire propagation, conjunction screening with collision probability (TCA/Pc), and classical and equinoctial element conversion.
- Observation and almanac: apparent places (geocentric and topocentric RA/Dec and az/el) for the Sun, Moon, and planets, Sun and Moon rise/set, Moon illumination, seasons, moon phases, planetary transits, lunar and solar eclipses, sub-solar/sub-observer and terminator geometry, angular separation and position/phase/beta angles, and satellite visual magnitude.
- Observation quality: RINEX observation QC (completeness, multipath, cycle slips) validated against the standard toolchain, with explicit interval-metadata handling, carrier-phase combinations, and Hatch smoothing.
- Simulation: a deterministic scenario simulator that turns the library into a validation instrument: versioned scenarios with a per-term error budget produce bit-reproducible synthetic observables plus a ground-truth ledger attributing solver error to each budget term.
- Atmosphere and terrain: Klobuchar and full Galileo NeQuick-G ionosphere, IONEX grids (vertical TEC and slant delay), tropospheric delay, NRLMSISE-00 density, DTED terrain elevation lookup with batch probes, a memory-mappable terrain store, EGM96/EGM2008 geoid grids, and a PROJ 9.3-compatible EGM96 GTX loader with explicit fused or separately rounded radian interpolation.
- RF link and signal analysis: free-space path loss, EIRP, carrier-to-noise (C/N0), link margin, and closed-form navigation-signal figures of merit (BPSK/BOC spectra, spectral separation coefficients, DLL thermal-noise jitter, multipath error envelopes) validated against published constants.
- Formats: TLE/OMM (Alpha-5 catalog numbers and CelesTrak GP CSV/JSON), CCSDS OEM/OPM/CDM/TDM, RINEX observation/navigation/clock, CRINEX (Hatanaka encode/decode), SP3, IONEX, ANTEX, Bias-SINEX, CODE DCB, RTCM 3.x, NMEA 0183, with forgiving parsers and round-trippable serializers for the formats that support it.
- Public product distribution: exact GNSS product identity is independent of
its direct archive, NASA CDDIS/Earthdata, local-file, or in-memory source. The
network-free core derives official SP3/IONEX names, source locations, and
collision-resistant cache paths; the Python and Elixir interfaces add
authenticated acquisition, validation, typed failures, and secret-free
provenance. See the design note.
Resilience under analysis-center publication lag: an opt-in cross-line walk
for CODE's predicted ionosphere (
P1thenP2, same map date, provenance naming the line served), a bounded publication-status query (newest published issue per center and line, its archive-reported publication text, and its lag behind nominal - distinguishing "nothing published" from an unreachable archive), a network-free next-issue due-time query with exact identity and observed/predicted coverage, and a wider ultra pool including the IGS combined ultra and Wuhan's hourly MGEX NRT line. Broadcast ephemerides as the resilience floor are a recorded design issue.
Install
More runnable examples, in all six languages, are on the live demo.
The command line
The repo ships a single binary for working without writing code:
Crates
sidereon-core: the engine. SGP4/SDP4 propagation, coordinate and time transforms, RINEX/SP3/ANTEX/OMM/RTCM parsing, broadcast and precise ephemeris, SPP/RTK/PPP/static/DGNSS positioning, DOP and visibility, conjunction assessment, and the supporting numerical kernels.sidereon: the ergonomic Rust interface oversidereon-core. Product loaders, CRINEX encode/decode, Sun/Moon sky helpers, geodetic/topocentric and TLE look-angle/ground-track shortcuts, Doppler helpers, plus SPP/RTK/PPP/static solves with result structs and one error enum. This is the Rust interface, held to the same parity bar as the bindings below.sidereon-cli: thesidereoncommand-line tool over the engine:solve(SPP from RINEX with covariance-derived bounds always shown),qc,metrics,inspect, a terminal solution monitor (tui) that replays a logged RINEX session or watches a live NTRIP/TCP RTCM stream, andserve-mcp, a Model Context Protocol server exposing the engine to AI agents through task tools plus a typed capability graph. Built from this repo withcargo build -p sidereon-cli; not yet on crates.io.trust-region-least-squares: a standalone, independently publishable nonlinear least-squares solver that reproduces SciPy's trust-region-reflectiveleast_squaresbit-for-bit. It does not depend on the engine.
Interfaces
The Rust interface is the sidereon crate above. The other language interfaces live in their own repositories, each over the same core:
- Python:
sidereon-python(PyPI:sidereon) - C:
sidereon-c - Go:
sidereon-go - Elixir:
sidereon-ex(Hex:sidereon) - JavaScript / WebAssembly:
sidereon-wasm(npm:@neilberkman/sidereon)
All Sidereon libraries release at the same version. New API and behavior changes are reviewed for equivalent coverage across the interfaces; see the coordinated release policy.
Validation
Evaluation is deterministic: the same product, the same version, and the same platform give identical bits, and releases that change evaluation bits for an existing surface say so in the changelog. Cross-platform bit identity holds only where a test pins it.
Every numerical routine is cross-checked against the reference implementation or published standard for its domain, not just internal goldens. Each check runs in the test suite against a committed reference fixture whose provenance (tool, version, source) is recorded, and many gates are bit-for-bit.
The per-crate test suites document the exact references, fixtures, and tolerances. The Python oracle version-pinning note records cross-version FITPACK and pseudo-inverse checks and the fixture-regeneration rules they establish.
License
MIT
来源:README.md,提交 592ca2b
工具
0版本历史
7- v3.0.6最新Oct 30, 2026
- v3.0.3Oct 13, 2026
- v3.0.2Oct 6, 2026
- v3.0.1Oct 4, 2026
- v3.0.0Oct 4, 2026
- v2.1.1Sep 23, 2026
- v2.1.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分