kshana 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,12 +10,13 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://ashfordeou.github.io/kshana/"><img src="https://img.shields.io/badge/playground-try%20in%20browser-2dd4bf" alt="Live playground — run in your browser, no install"></a>
13
+ <a href="https://ashfordeou.github.io/kshana/"><img src="https://img.shields.io/badge/playground-try%20in%20browser-c79e63" alt="Live playground — run in your browser, no install"></a>
14
14
  <a href="tests/sgp4_verification.rs"><img src="https://img.shields.io/badge/SGP4-666%2F666%20AIAA%20vectors%20%C2%B7%204.12mm-3fb950" alt="SGP4 validated against all 666 AIAA 2006-6753 vectors, worst 4.12 mm"></a>
15
15
  <a href="https://github.com/ashfordeOU/kshana/actions/workflows/ci.yml"><img src="https://github.com/ashfordeOU/kshana/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
16
16
  <a href="https://github.com/ashfordeOU/kshana/releases"><img src="https://img.shields.io/github/v/release/ashfordeOU/kshana?sort=semver" alt="Release"></a>
17
17
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache-2.0"></a>
18
18
  <a href="Cargo.toml"><img src="https://img.shields.io/badge/rust-1.75%2B-orange.svg" alt="Rust 1.75+"></a>
19
+ <a href="https://doi.org/10.5281/zenodo.20528627"><img src="https://zenodo.org/badge/1256508460.svg" alt="DOI"></a>
19
20
  </p>
20
21
 
21
22
  <p align="center">
@@ -35,7 +36,7 @@ and every sensor parameter is traceable to a published source.
35
36
  *Free and open source under Apache-2.0, professionally developed and maintained by
36
37
  Ashforde OÜ — commercial support, integration, and proprietary extensions available.*
37
38
 
38
- > **Status: v0.9.1 · a simulation substrate, not yet a product.** A validated,
39
+ > **Status: v0.10.0 · a simulation substrate, not yet a product.** A validated,
39
40
  > fully reproducible engine spanning the PNT stack — orbit geometry, inertial
40
41
  > navigation, GNSS/INS fusion, integrity, clocks, and timing. Honest by design:
41
42
  > every figure of merit is labelled *validated* or *not-modeled*, and optical-clock
@@ -103,9 +104,9 @@ capability is documented in [`docs/CAPABILITY.md`](docs/CAPABILITY.md).
103
104
  | **Orbit & geometry** | SGP4/SDP4 propagation (validated to 4.12 mm against all 666 AIAA 2006-6753 vectors), real-TLE or synthetic Walker constellations, multi-constellation visibility, dilution of precision, and GNSS availability. |
104
105
  | **Inertial** | Three-axis strapdown INS — quaternion attitude, WGS-84 NED mechanization, coning/sculling compensation, and a deterministic IMU error model (scale-factor, misalignment, g-sensitivity, quantization, drift). |
105
106
  | **Fusion** | Loosely-coupled GNSS/INS error-state EKF (15-state) with closed-loop feedback that coasts through GNSS outages on a calibrated inertial solution. |
106
- | **Integrity** | Snapshot and solution-separation (ARAIM-style) RAIM with horizontal/vertical protection levels (HPL/VPL), fault detection and identification, and Stanford integrity diagrams. |
107
+ | **Integrity** | Snapshot and solution-separation (ARAIM-style) RAIM with horizontal/vertical protection levels (HPL/VPL) — including levels solved from an explicit ARAIM integrity-risk (P_HMI) budget — fault detection and identification, and Stanford integrity diagrams. |
107
108
  | **Clock & timing** | Two-state Kalman holdover, Allan-family stability (ADEV/MDEV/TDEV/HDEV) with confidence intervals, and optical/RF two-way time transfer. |
108
- | **Interoperability** | RINEX-3 GPS broadcast-ephemeris ingestion with IS-GPS-200 satellite position and clock evaluation. |
109
+ | **Interoperability** | RINEX-3 multi-GNSS broadcast-ephemeris ingestion (GPS, Galileo, QZSS, BeiDou MEO/IGSO via IS-GPS-200; GLONASS via PZ-90 state-vector RK4 propagation), usable as a constellation source that drives a scenario directly (RINEX in, PNT geometry out); RINEX-3/4 observation-file parser (pseudorange, carrier phase, Doppler, and signal strength by observation code); SP3-c/d precise-ephemeris reader/writer for IGS/analysis-centre orbit products, with 9th-order Lagrange interpolation that turns a precise-orbit file into a propagation source; CCSDS OEM 2.0 (Orbit Ephemeris Message) writer that exports a propagated constellation in the standard format flight-dynamics tools (GMAT, Orekit, STK) ingest. |
109
110
  | **Resilience** | Clock-aided spoof-detectability analysis against a configurable time-spoof attack. |
110
111
 
111
112
  Each capability is reachable as a Rust API, a runnable scenario `kind`, or both.
@@ -149,7 +150,10 @@ atmospheric drag and the deep-space lunar-solar and 12 h / 24 h resonance terms
149
150
  matter for ~12 h GNSS orbits — validated against the official AIAA 2006-6753 vectors
150
151
  to a worst-case ≈ 4 mm (`scenarios/orbit-sgp4-gps.toml`). A line-2-only block keeps
151
152
  the analytic two-body propagation (`scenarios/orbit-real-tle.toml`); the two forms can
152
- be mixed in one constellation.
153
+ be mixed in one constellation. A constellation can equally be built from a block of
154
+ **RINEX-3 GPS broadcast-ephemeris** records — the format a receiver decodes —
155
+ propagated by the IS-GPS-200 user algorithm and fed through the same geometry
156
+ (`scenarios/orbit-rinex.toml`).
153
157
 
154
158
  ## Install & build
155
159
 
@@ -174,6 +178,7 @@ cargo run -- scenarios/timetransfer.toml
174
178
  cargo run -- scenarios/hybrid-pnt.toml
175
179
  cargo run -- scenarios/orbit-gnss-challenged.toml
176
180
  cargo run -- scenarios/orbit-sgp4-gps.toml
181
+ cargo run -- scenarios/orbit-rinex.toml
177
182
  cargo run -- scenarios/integrity-raim.toml
178
183
  ```
179
184
 
@@ -563,10 +568,12 @@ entry for every user-visible change. Participation is governed by our
563
568
 
564
569
  If you use Kshana in academic or technical work, please cite it. Machine-readable
565
570
  metadata is in [`CITATION.cff`](CITATION.cff) (GitHub renders a "Cite this repository"
566
- button from it); cite the version you used (e.g. `v0.9.1`) together with the
567
- scenario and seed for full reproducibility. An archival DOI (Zenodo) is planned.
571
+ button from it); cite the version you used (e.g. `v0.10.0`) together with the
572
+ scenario and seed for full reproducibility. Every release is archived on Zenodo with
573
+ a citable DOI — the concept DOI [10.5281/zenodo.20528627](https://doi.org/10.5281/zenodo.20528627)
574
+ always resolves to the latest version.
568
575
 
569
- > Baweja, C. (2026). *Kshana — hybrid quantum/classical PNT performance simulator*. Ashforde OÜ. https://github.com/AshfordeOU/kshana
576
+ > Baweja, C. (2026). *Kshana — hybrid quantum/classical PNT performance simulator*. Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627
570
577
 
571
578
  ## Versioning & releases
572
579
 
package/kshana_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Chakshu Baweja <contact@ashforde.org>"
6
6
  ],
7
7
  "description": "Open hybrid quantum/classical PNT performance simulator",
8
- "version": "0.9.1",
8
+ "version": "0.10.0",
9
9
  "license": "Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",