kshana 0.8.0 → 0.9.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
@@ -1,7 +1,13 @@
1
+ <p align="center">
2
+ <img src="docs/assets/kshana-mark.svg" alt="Kshana mark — a precision reticle hung from the Devanagari shirorekha" width="104" height="104">
3
+ </p>
4
+
1
5
  <h1 align="center">
2
6
  <img src="docs/assets/kshana-banner.svg" alt="Kshana — the precise instant. Open, reproducible hybrid quantum/classical PNT performance simulation." width="760">
3
7
  </h1>
4
8
 
9
+ <p align="center"><em><strong>Kshana</strong> · <span lang="sa">क्षण</span> — Sanskrit for <em>the precise instant</em>, the smallest measure of time.</em></p>
10
+
5
11
  <p align="center">
6
12
  <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>
7
13
  <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>
@@ -28,7 +34,7 @@ and every sensor parameter is traceable to a published source.
28
34
  *Free and open source under Apache-2.0, professionally developed and maintained by
29
35
  Ashforde OÜ — commercial support, integration, and proprietary extensions available.*
30
36
 
31
- > **Status: v0.8.0 — a simulation substrate, not yet a product.** Four sensor packs
37
+ > **Status: v0.9.0 — a simulation substrate, not yet a product.** Four sensor packs
32
38
  > that each report all six operational figures of merit (including a clock-stability-based
33
39
  > spoof-*detectability* bound — analytic, meaningful only with a configured attack —
34
40
  > demonstrated by an active spoofing-attack scenario), two independent Kalman error
@@ -36,15 +42,25 @@ Ashforde OÜ — commercial support, integration, and proprietary extensions ava
36
42
  > self-consistency bound, multi-constellation geometry-derived GNSS availability *and*
37
43
  > dilution of precision from orbits — synthetic Walker, Keplerian mean elements, or
38
44
  > full two-line element sets propagated with **SGP4/SDP4** (validated against the AIAA
39
- > 2006-6753 vectors) — a single-axis (1-DOF) IMU error budget (velocity/angle random
40
- > walk and bias-instability), Monte Carlo confidence bands, trade-study parameter
41
- > sweeps, and a shareable HTML scorecard — all calibrated to published data and
45
+ > 2006-6753 vectors) — a single-axis (1-DOF) IMU error budget in the shipped
46
+ > inertial pack (velocity/angle random walk and bias-instability), Monte Carlo
47
+ > confidence bands, trade-study parameter sweeps, and a shareable HTML scorecard.
48
+ > As of v0.9.0 the library also carries a genuine **three-axis strapdown INS**
49
+ > (quaternion attitude, WGS-84 NED mechanization, coning/sculling, a five-term IMU
50
+ > error model), a **loosely-coupled GNSS/INS error-state EKF** with closed-loop
51
+ > feedback, **real snapshot and solution-separation (ARAIM-style) RAIM** with
52
+ > HPL/VPL and a runnable `integrity` scenario, and **RINEX-3 GPS ephemeris
53
+ > ingestion** (broadcast orbit + clock). All calibrated to published data and
42
54
  > validated against the standard relations, with optional Python and WebAssembly
43
55
  > bindings and a browser playground. Read [`docs/VALIDATION.md`](docs/VALIDATION.md)
44
56
  > before citing any number — each noise term is labelled `validated` or `not modeled`,
45
57
  > and optical-clock figures are *space goals on ground hardware* (no strontium optical
46
- > clock has flown). What it is **not**: a 3-axis IMU triad, a coupled GNSS/INS filter, a
47
- > first-principles quantum simulator, or aviation-grade RAIM/HPL/VPL integrity. The full
58
+ > clock has flown). What it is still **not**: the shipped `inertial` scenario pack
59
+ > remains the 1-DOF budget (the three-axis navigator is library-level, not yet wired
60
+ > into a pack); the GNSS/INS filter is *loosely* coupled only (tight/pseudorange
61
+ > coupling is a documented stub); the RAIM is real but **not** formally certified to
62
+ > DO-229/DO-178C aviation standards; and the quantum models are phenomenological, not
63
+ > a first-principles quantum simulator. The full
48
64
  > honest scope map is in [`docs/CAPABILITY.md`](docs/CAPABILITY.md); see also
49
65
  > [`docs/INTEGRITY.md`](docs/INTEGRITY.md) and the claims table in
50
66
  > [`docs/VALIDATION.md`](docs/VALIDATION.md).
@@ -159,6 +175,7 @@ cargo run -- scenarios/timetransfer.toml
159
175
  cargo run -- scenarios/hybrid-pnt.toml
160
176
  cargo run -- scenarios/orbit-gnss-challenged.toml
161
177
  cargo run -- scenarios/orbit-sgp4-gps.toml
178
+ cargo run -- scenarios/integrity-raim.toml
162
179
  ```
163
180
 
164
181
  Example output (clock holdover — note the Integrity and Security figures of merit):
@@ -177,9 +194,16 @@ accuracy — alongside the clock result.
177
194
  > **Read these two numbers carefully.** `security` is an *analytic spoof-detectability
178
195
  > bound* derived from each clock's stability — it is meaningful only against a
179
196
  > configured spoofing scenario and is **not** a multi-satellite RAIM detector. `integrity`
180
- > is the filter's *self-consistency* (fraction of outage samples inside its own k-sigma
197
+ > here is the filter's *self-consistency* (fraction of outage samples inside its own k-sigma
181
198
  > bound), **not** an aviation HPL/VPL integrity figure. See
182
199
  > [`docs/INTEGRITY.md`](docs/INTEGRITY.md).
200
+ >
201
+ > For genuine receiver-autonomous integrity, the **`integrity` scenario kind**
202
+ > (`scenarios/integrity-raim.toml`) runs real snapshot and solution-separation
203
+ > (ARAIM-style) RAIM over the propagated constellation geometry: it computes
204
+ > horizontal/vertical **protection levels (HPL/VPL)** per epoch and reports the
205
+ > fraction of epochs that meet the configured alert limits, with a Stanford
206
+ > integrity diagram for error-vs-PL classification.
183
207
 
184
208
  ### Python
185
209
 
@@ -259,8 +283,16 @@ Optional fields (off when absent): a clock may add `flicker_floor` (1/f FM Allan
259
283
  floor); an inertial sensor may add `gyro_bias` and `q_arw` (gyro bias and angular
260
284
  random walk), and `bias_instability` and `q_aa` (the Allan bias-instability floor and
261
285
  acceleration random walk) — together a **single-axis (1-DOF) accelerometer error
262
- budget** (VRW/ARW and bias-instability), *not* a 3-axis IMU triad: scale-factor,
263
- misalignment, g-sensitivity, and cross-axis coupling are not modelled. A
286
+ budget** (VRW/ARW and bias-instability). This is the error budget the shipped
287
+ `inertial` scenario *pack* runs. Separately, the library now carries a verified
288
+ **3-axis strapdown navigator** (`src/inertial/{attitude,mechanization,imu_errors}.rs`):
289
+ quaternion attitude with coning/sculling compensation, a full NED mechanization
290
+ (Earth-rate and transport-rate terms, WGS-84 Somigliana gravity), and a
291
+ deterministic IMU error model in which **scale-factor, misalignment,
292
+ g-sensitivity, quantization, and rate-ramp are modelled** (IEEE Std 952-1997
293
+ §A.2; Groves 2013 §4.3). That 3-axis path is **not yet wired into the scenario
294
+ pack/FoM** — switching the pack over, with a loosely-coupled GNSS/INS filter, is
295
+ the next inertial milestone. A
264
296
  clock-holdover scenario may add `runs` (> 1) to run a **Monte Carlo ensemble** — each
265
297
  figure of merit is then reported as a mean with a 5th–95th-percentile spread and the
266
298
  chart shades the error confidence band (see `scenarios/clock-ensemble.toml`).
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.8.0",
8
+ "version": "0.9.0",
9
9
  "license": "Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",