kshana 0.22.0

Open, reproducible PNT-resilience simulator with quantum-sensor performance models
Documentation

Kshana is an open, reproducible PNT-resilience simulator with quantum-sensor performance models — positioning, navigation, and timing. It quantifies, in hard and reproducible numbers, what quantum clocks, quantum inertial sensors, and optical time-transfer buy a navigation system over classical PNT — scored against the operational figures of merit that matter for resilient navigation. Every result is reproducible from scenario + seed + engine version, and every sensor parameter is traceable to a published source.

Validated, not asserted. 666/666 AIAA SGP4 vectors to 4.12 mm · Cowell force model 0.08 m vs Orekit 12.2 · Galileo 0.61 m / Swarm-A 0.10 m vs real ESA precise ephemerides · GCRS→ITRS bit-for-bit vs SOFA/ERFA · ML metrics exact vs scikit-learn · 39 of 89 capabilities validated against independent external oracles; 46 honestly labelled Modelled, 4 partner-owned.

Validated against external oracles — every row CI-gated

Each row is checked against an independent external oracle (real dataset, independent reference implementation, or published reference vectors) and re-checked in CI.

Capability Result External oracle
SGP4/SDP4 propagation 666/666 vectors, worst 4.12 mm AIAA 2006-6753 (Vallado) + independent sgp4 crate
Numerical Cowell force model 0.08 m / 24 h, 275 epochs Orekit 12.2 DormandPrince853 (CS GROUP)
Orbit fit vs precise ephemeris Galileo 0.61 m · Swarm-A 0.10 m ESA/ESOC SP3 precise orbits
GCRS→ITRS frame chain bit-for-bit vs SOFA; ≤ 0.86 m vs SPICE ERFA/SOFA + ANISE (pure-Rust SPICE)
Allan deviations reproduce reference deviations NIST SP 1065 + Stable32 on a real Cs clock
GNSS DOP · ML detector metrics to 1e-6 · to 1e-9 gnss_lib_py · scikit-learn

Install

cargo add kshana            # use the engine as a library
cargo install kshana        # or install the CLI

Usage — library

use kshana::api;

// Run any scenario TOML through the engine; get a reproducible result back.
let toml = std::fs::read_to_string("scenarios/clock-holdover.toml")?;
let result_json = api::run_toml(&toml)?;
println!("{result_json}");
# Ok::<(), Box<dyn std::error::Error>>(())

Usage — CLI

# Dispatches on the scenario's `kind`; writes <scenario>.result.json + .chart.svg
kshana scenarios/clock-holdover.toml
kshana scenarios/orbit-gnss-challenged.toml
kshana --validate scenarios/integrity-raim.toml     # lint without running
kshana --study scenarios/quantum-pnt-demonstrator.suite.toml --study-name "PNT demo"

Every figure of merit is labelled validated or modelled; optical-clock figures are space goals on ground hardware (no strontium optical clock has flown). Maturity is not uniform across domains — Earth PNT is real-data validated; deep-space / Mars navigation is simulation-validated; real-mission deep-space OD is on the roadmap.

Learn more

Licence

Free and open source under the GNU AGPL-3.0-only. A commercial licence is available from Ashforde OÜ for proprietary/closed integration — see LICENSING.md. Professionally developed and maintained by Ashforde OÜ; commercial support, integration, and proprietary extensions available.