Skip to main content

Kshana

क्षण — Sanskrit for the precise instant, the smallest measure of time.
Open, reproducible PNT-resilience simulation with published quantum-sensor performance models.

SGP4 validated against all 666 AIAA 2006-6753 vectors, worst 4.12 mm 64 of 168 capabilities validated against independent external oracles ~96% line coverage, gated at 85% in CI Release v0.26.0 Live playground — run in your browser, no install License: AGPL-3.0-only DOI 10.5281/zenodo.20528627

Kshana is an open, reproducible PNT-resilience simulator with quantum-sensor performance models — positioning, navigation, and timing. This package is a thin PyO3 (abi3) wrapper over the same Rust engine: you pass a scenario TOML string in and get a reproducible JSON result back. It quantifies, in hard numbers, what quantum clocks, quantum inertial sensors, and optical time-transfer buy a navigation system over classical PNT. 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 · 64 of 168 capabilities validated against independent external oracles; 100 honestly labelled Modelled, 4 partner-owned.

Kshana system overview: five front doors (CLI, Python wheel, WebAssembly playground, MCP server, JetBrains plugin) converge on a single api::run_toml dispatch, through the engine, to a reproducible result.json + chart.svg

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

Verification status across all 168 capabilities: 64 Validated, 100 Modelled, 4 Partner-owned

Install

pip install kshana

Wheels are built for Linux, macOS, and Windows on each release tag. To build from source instead, use maturin: pip install maturin && maturin develop --features python.

Usage

import json, kshana

result = json.loads(kshana.run(open("clock-holdover.toml").read()))
print(result["quantum"]["fom"]["integrity"])

# JSON, SVG chart, and a one-line summary at once:
result_json, chart_svg, summary = kshana.run_full(open("orbit-gnss-challenged.toml").read())
print(kshana.version(), summary)

Beyond run / run_full / version, the module exposes run_typed (a structured result object), validate_toml (lint → list of error strings), list_kinds / scenario_kinds (the dispatchable kinds), and error_kind (the KshanaError tag for a rejected scenario) — see docs/PYTHON_API.md.

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.

Metadata

Release files for kshana 0.27.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kshana 0.27.1
File Size Uploaded
kshana-0.27.1.tar.gz 7.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for kshana 0.27.1
File
kshana-0.27.1-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
kshana-0.27.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
kshana-0.27.1-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details
kshana-0.27.1-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
kshana-0.27.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
kshana-0.27.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 22.9 MB

Release files / kshana-0.27.1.tar.gz

Download URL kshana-0.27.1.tar.gz
Size 7.2 MB
Tags Source
SHA-256 checksum
How to use checksums
077a1cfc21dd6577dec6a640e8e3cc52360512a973e3c20ea48e080311d96705
BLAKE2b-256 checksum
How to use checksums
e0c35cca896ef3037690482097aa2d71084c64119cb35b266da052311e931c7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-win_arm64.whl

Download URL kshana-0.27.1-cp39-abi3-win_arm64.whl
Size 2.5 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
aea6bb3c8bbb52a1238bc798b128d619d790e8c88b889a009ef2f48d2e4ecde2
BLAKE2b-256 checksum
How to use checksums
755b486e70d23d0a360742e5e5859aa9bc4a8bc9855c567b3365d9c0cf7bd551
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-win_amd64.whl

Download URL kshana-0.27.1-cp39-abi3-win_amd64.whl
Size 2.7 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
eb0f1c823fd7a3a145bfbc7c140cc924228ae7abd323afceb7391958f4f9cb83
BLAKE2b-256 checksum
How to use checksums
829017d55db7d41d613faf747a364d8a6117aeae898dbf3ebd0740c9e053391e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL kshana-0.27.1-cp39-abi3-manylinux_2_28_x86_64.whl
Size 2.8 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
46cb62245d01cd86d4f3fb0103d49468bc9b013b3b1ff2881086c93bcf3191ae
BLAKE2b-256 checksum
How to use checksums
071ab90b6cc74fe5d04ab3c86aa92bd3814c94d27885e82a606d82aada106169
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL kshana-0.27.1-cp39-abi3-manylinux_2_28_aarch64.whl
Size 2.6 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
77a4e19fd1d31bc3a19a097a603f6da43b94b42b30ca3a57c5b76f0fbdf5a649
BLAKE2b-256 checksum
How to use checksums
c56083341ed097d6c52fd33b4360b7b549026fd15283fed95579e031de421f6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL kshana-0.27.1-cp39-abi3-macosx_11_0_arm64.whl
Size 2.5 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab82e1c2cfc276ff096ccda197335d6882efd1dcfa658e696d16d50cf4ae7202
BLAKE2b-256 checksum
How to use checksums
b09b2322cf564d787291ca95a0ef71698c65ae58f9912433423c64e498b3e951
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / kshana-0.27.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL kshana-0.27.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 2.6 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3d969187dce88dca025e350ce99420a4dff4cb52edf624206d0c033b72ac7c96
BLAKE2b-256 checksum
How to use checksums
fbc9a697778bf16417126f8854867dded1e9542d49b894c9a55ac0310e0f5e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page