Open hybrid quantum/classical PNT performance simulator
Project description
क्षण — Sanskrit for the precise instant, the smallest measure of time.
Open, reproducible PNT-resilience simulation with published quantum-sensor performance models.
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.
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
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
- Full README & validation matrix → https://github.com/AshfordeOU/kshana
- Live playground (runs in your browser as WebAssembly) → https://kshana.dev
- Python API → docs/PYTHON_API.md
- Capabilities → docs/CAPABILITY.md
- Validation & provenance → docs/VALIDATION.md · docs/PROVENANCE.md
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kshana-0.25.0.tar.gz.
File metadata
- Download URL: kshana-0.25.0.tar.gz
- Upload date:
- Size: 5.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bbdb357b4847fa40e146a494acd201459b596fb45233d1d92711ad532f07e34
|
|
| MD5 |
18aca05297b7e0f0226f1f1a7a92f572
|
|
| BLAKE2b-256 |
c021456f6e0c878a9b4e9fbece1ef20aacb4c7bd93ea7f1161a7195e7ecd3ef9
|
File details
Details for the file kshana-0.25.0-cp39-abi3-win_arm64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-win_arm64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.9+, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6de0c30bfffebaa2fc8a513976500f6f33f13efacf5ca8ef848dbab204302b91
|
|
| MD5 |
fcf7031de96a4283734bd7eb781cb02f
|
|
| BLAKE2b-256 |
cf2b2bef4d60b6151c5586bf43f45ff77678461985b9dee5d0cdaea1f6acc93d
|
File details
Details for the file kshana-0.25.0-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f51e32ed2034106b94ebe7c0c965a01d3e9991bf5310bbc614a024e9b26e576e
|
|
| MD5 |
c4b79c96d6388aa06c66bf99094d93ea
|
|
| BLAKE2b-256 |
c7c5d4e88ae7db4a441d8eb07d7ced35e404b67f80c9f2987d3f444b1706c036
|
File details
Details for the file kshana-0.25.0-cp39-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.9+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d160a43cea7b48126b24b192d3ca52bb9e9997ad15cf6514770f4ca7a370f7
|
|
| MD5 |
8e67fabf5724e90237206a4e4c1f9111
|
|
| BLAKE2b-256 |
efd9edea7be450eb65b5b3685d6956db480fc786b7baf57272a610ffc9c1ec4a
|
File details
Details for the file kshana-0.25.0-cp39-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.9+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02a8b1c4a91f70f716206e558aba68b9d23117a516fcf38eb1f15a1ee2254a15
|
|
| MD5 |
e50516b8cf4a405b6ab8a4c15d6430b6
|
|
| BLAKE2b-256 |
0e5951ab9bec117f8324a1093ff78fd82a86a45a60c850568bfcaf5b55ddbbdb
|
File details
Details for the file kshana-0.25.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55336a9c6701f7a9cdc5d42004f145cf3d8e39eafe23bf1b6f547ac0db886cf2
|
|
| MD5 |
92908f03e169d138bddbbe6ee0e1b21e
|
|
| BLAKE2b-256 |
a88c938891164f56f3033aaff8d5c745ae9461f3d621d1612e2a266c4962a5bb
|
File details
Details for the file kshana-0.25.0-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: kshana-0.25.0-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6cd4e549f29d5a4d65e3427364c72df1da690fa3f45b3cf838ab6314a6c8ff4
|
|
| MD5 |
be7d886ab06f16c7e7225861659362e3
|
|
| BLAKE2b-256 |
3b38e4448087047bcd19cb402e66c0f2bb8f1aff5424c76792e94f3dab78edc4
|