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 56 of 102 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 · 56 of 102 capabilities validated against independent external oracles; 42 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 102 capabilities: 56 Validated, 42 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.26.0

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.26.0
File Size Uploaded
kshana-0.26.0.tar.gz 5.7 MB Details

Built distributions (wheels)

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

Total release size: 16.4 MB

Release files / kshana-0.26.0.tar.gz

Download URL kshana-0.26.0.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
7ddf77bbc22ced61f3ebe6961d7d753910cb3dba90f43a72bc025a6d4d775980
BLAKE2b-256 checksum
How to use checksums
0041af455db30e1f3a1aed648225058324548d699677afc5f8213282f1b85da4
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.26.0-cp39-abi3-win_arm64.whl

Download URL kshana-0.26.0-cp39-abi3-win_arm64.whl
Size 1.6 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
237b70e45f033cb907af7facfeda52edb5f99093e194df9d1ad7b6cde3bcf6ba
BLAKE2b-256 checksum
How to use checksums
ea420f765699b607776b58522a0d210071b8af6afd24b165b5adb62a9633dfe7
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.26.0-cp39-abi3-win_amd64.whl

Download URL kshana-0.26.0-cp39-abi3-win_amd64.whl
Size 1.8 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
22e79c9d11d6f329cc787694e609f5159f7c3850b80ea026be7e6f877920e9da
BLAKE2b-256 checksum
How to use checksums
ba9ee855074ab15e9282cf27ea9e524beb6fc04fcabad89897aefaeebde2ff0c
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.26.0-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL kshana-0.26.0-cp39-abi3-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
99175d0814c8e8e46ccfd5748aa542ff3dc59e1ea493e39988e8ef8bee15422d
BLAKE2b-256 checksum
How to use checksums
e2fbd76bf3bf5ae33c9d766d09dac037485b17c8f37107b5c3be92afbd5819d5
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.26.0-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL kshana-0.26.0-cp39-abi3-manylinux_2_28_aarch64.whl
Size 1.8 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
a6ff996f0dee06309498968a6e175a5a48256bf5d1e9caa580910f0f591f74e3
BLAKE2b-256 checksum
How to use checksums
cccde87087ec98d789e486cce8823f727375f5055b2ec0cf252b8b97e21232ee
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.26.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL kshana-0.26.0-cp39-abi3-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c997ed372ae46c1ffb077a936b74360e8f78fc7472fb3890528c14de532d82ac
BLAKE2b-256 checksum
How to use checksums
9bfd074bf7686833d20076ecbdcee3787b9a599fea25f841e4ed279b84b7eafa
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.26.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL kshana-0.26.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 1.8 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
cdc7a8fa40bc4cea8fc470f5df32cbe366592008767f3424a7098f9cd434de8b
BLAKE2b-256 checksum
How to use checksums
3a60baff909bb026e7412f64d7de0267587dfa7a8bb2dad1cfd03dc2bae3ca86
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