Masintõlge, mida emakeelne kõneleja pole üle vaadanud. Võrdlusallikaks on ingliskeelne versioon.

API-d ja integratsioonidMuuda GitHubisAllikas: docs/ARCHITECTURE.md

Kshana — arhitektuur

Kshana on üks mootor, mis on jagatud tuumale kihtidena organiseeritud: sensoripaketid (kell, inertsiaal, aja edastamine, hübriid); astrodünaamika / numbriline kiht (analüütiline SGP4/SDP4 (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4), numbriline Cowelli propagaator oma seitsme häiringu jõumudeliga, manöövri kavandamine, orbiidi määramine maajaama kaugustest ja jõumudeli sobitamine agentuuride täppisefemeriidide vastu); aja ja tugisüsteemi kiht (IERS (International Earth Rotation and Reference Systems Service) ajaskaalad, IAU (International Astronomical Union) 2006/2000A pretsessioon–nutatsioon ja CIO (Celestial Intermediate Origin) GCRS↔ITRS (GCRS: Geocentric Celestial Reference System; ITRS: International Terrestrial Reference System) redutseerimine); sulandamise kiht (GNSS/INS (GNSS: ülemaailmne satelliitnavigatsioonisüsteem; INS: inertsiaalnavigatsioonisüsteem) hinnangud); ning terviklikkuse, vastupidavuse, alt-PNT (PNT: positsioneerimine, navigatsioon ja aeg) ja Kuu kihid (RAIM/ARAIM/SBAS (RAIM: receiver autonomous integrity monitoring; ARAIM: advanced receiver autonomous integrity monitoring; SBAS: satellite-based augmentation system), segamise ja mitmekihilise spuufimise tuvastamine, gravitatsiooni/maastiku/magnetkaardi sobitamine ning tsislunaarne PNT); ja uuemad LEO-PNT (madala Maa orbiidi PNT), spektri, päikesesüsteemi ja konstellatsiooni kavandamise, võrguajastuse ja kampaania kihid, koos aruande, animatsiooni ja koostalitluse kirjutajatega, mida iga käivitus saab kasutada (§1d). Kõigi nende kaudu ei tea mootor midagi „quantum“ vs „classical“ kohta: see juhib sensorite veamudeleid läbi GNSS-i katkestuse stsenaariumi, käivitab hinnangu ja skoorib tulemuse. Kvant- ja klassikalist seadet võrreldakse seega samal stsenaariumil, kus neid eristavad ainult nende (avaldatud, viidatud) veaparameetrid ja sõltumatud mürapõhjad (seed).

See dokument koondab struktuursed ja käitumuslikud diagrammid. §1 on sensoripaketi tuum; §1a vastendab astrodünaamika, sulandamise ja alt-PNT kihid, mis on sellest ajast lisatud; §1b–§1d uuringu-, valdkonna- ja väljundikihid. Kasutuse kohta vt README; selle kohta, mis on ja mis ei ole valideeritud, vt VALIDATION; võimekuse kaupa küpsustabeli kohta vt CAPABILITY.

Lühendid, mida diagrammides kasutatakse ja mida ei ole seal, kus need esinevad, lahti kirjutatud: ADEV, Alani hälve; BW, ribalaius; CAI, külmaatomite interferomeeter; CZML, Cesium Language; Δ-DOR, delta differential one-way ranging; DO-229E, RTCA (Radio Technical Commission for Aeronautics) SBAS-vastuvõtja standard; EKF, laiendatud Kalmani filter; FM, sagedusmodulatsioon; GSE, maapealne tugiseadmestik; HPL/VPL, horisontaalne/vertikaalne kaitsetase; IMU, inertsiaalmõõteseade; IOAG, Interagency Operations Advisory Group; IQ, faasis/kvadratuuris näidised; ISL, satelliitidevaheline link; ITU-T, Rahvusvahelise Telekommunikatsiooniliidu telekommunikatsiooni standardimissektor; J2–J6, Maa tsonaalsed gravitatsiooniharmoonikud astmetel 2 kuni 6; KIF, Kshana Interchange Format; KML, Keyhole Markup Language; KPI, põhinäitaja; L1/L5, GNSS-i kandjaribad (CR3BP halo orbiitide L2 on selle asemel Maa–Kuu Lagrange'i punkt 2); LEO, madal Maa orbiit; LOO, leave-one-out; LTC, koordineeritud Kuu aeg; MEO, keskmine Maa orbiit; MTIE, maksimaalne ajaintervalli viga; N2, 2. järku Hilli mitmekesisuse arv; NED, põhi-ida-alla; NTN, mittemaapealne võrk; OD, orbiidi määramine; OPS-SAT, Euroopa Kosmoseagentuuri orbiidil asuv tarkvaralabori satelliit; PPP, täppispunktpositsioneerimine; PSD, võimsusspektri tihedus; PVT, asukoht, kiirus ja aeg; RINEX, Receiver Independent Exchange Format; RK4 / RK5(4), neljandat järku ja sisseehitatud viiendat (neljandat) järku Runge–Kutta integraatorid; SH, sfääriline harmoonik; SigMF, Signal Metadata Format; SIR, sampling importance resampling; SRIF, ruutjuure infofilter; SRP, päikesekiirguse rõhk; SSC, spektraaleraldus koefitsient; STK, Systems Tool Kit; SVG, Scalable Vector Graphics; TDEV, ajahälve; TDM, CCSDS (Consultative Committee for Space Data Systems) Tracking Data Message; TLE, kahereaelementide kogum; TPL, ajastuse kaitsetase; UBX, u-blox binaarprotokoll; UHF, ülikõrgsagedus; VLBI, väga pika baasjoonega interferomeetria; VRW / ARW, kiiruse / nurga juhuslik kõnd; WASM, WebAssembly.


1. Moodulistruktuur#

flowchart TD
    main["main.rs<br/>CLI (thin wrapper)"]
    py["python.rs<br/>PyO3 (feature)"]
    wasm["wasm.rs<br/>wasm-bindgen (feature)"]
    api["api.rs<br/>run_toml: parse · dispatch by kind · json+svg+summary"]

    subgraph shared["Shared core"]
      types["types.rs<br/>Seconds · TimeGrid · ModelSpec"]
      scenario["scenario.rs<br/>GnssState · GnssTimeline · ClockCfg · Scenario"]
      allan["allan.rs<br/>overlapping Allan deviation"]
    end

    subgraph pack1["Pack 1 · Clock holdover"]
      models["models.rs<br/>ErrorModel · ClockModel (incl. flicker FM)"]
      estimator["estimator.rs<br/>HoldoverEstimator"]
      kalman["kalman.rs<br/>KalmanClock → Integrity bound"]
      security["security.rs<br/>clock-aided spoof detection → Security"]
      fom["fom.rs<br/>Sample · FoMScores · score · worst_case_holdover"]
      report["report.rs<br/>RunResult · hash · to_svg"]
      run["run.rs<br/>run / run_clock / run_orbit_clock"]
    end

    inertial["inertial/<br/>Pack 2 · AccelModel (accel + gyro + bias instability/RW) · run_inertial · quantum_imu CAI + QuantumNavBudget dead-reckoning-over-holdover"]
    timetransfer["timetransfer.rs<br/>Pack 3 · TimeTransferLink · run_timetransfer"]
    hybrid["hybrid.rs<br/>Pack 4 · run_suite · score_hybrid · run_hybrid (+ integrity/security)"]
    fusion["fusion/<br/>joint Kalman PNT estimator · run_fusion"]
    orbit["orbit.rs<br/>Propagator (Kepler | SGP4) · Walker / TLE / multi-constellation · visibility · DOP"]
    tle["tle.rs<br/>two-line element parsing (line 2 → Kepler, full TLE → SGP4)"]
    sgp4mod["sgp4.rs<br/>SGP4 / SDP4 propagator (deep-space + resonance)"]
    ensemble["ensemble.rs<br/>Monte Carlo confidence bands"]
    sweep["sweep.rs<br/>trade-study parameter sweeps"]
    spoof["spoof.rs<br/>active spoofing-attack demonstrator"]
    jamming["jamming.rs<br/>link-budget anti-jam C/N₀ (J/S · processing gain · Q)"]
    navsignal["navsignal.rs<br/>signal level: BPSK-R / BOC PSD · SSC κ · Gabor BW · DLL jitter · multipath · ranging-code (m-seq/Gold) design-trade"]
    holdover["holdover.rs<br/>GNSS-denied clock holdover: van-Loan coast → holdover-to-threshold · quantum-clock classes"]
    verification["verification.rs<br/>machine-checked requirement→module→test→oracle→status matrix"]

    main --> api
    py --> api
    wasm --> api
    api --> run
    api --> inertial
    api --> timetransfer
    api --> hybrid
    api --> ensemble
    api --> sweep
    api --> fusion
    api --> spoof
    spoof --> security
    api --> jamming
    api --> holdover
    api --> verification
    navsignal -. derives anti-jam Q (κ → Q=1/(R_c·κ)) .-> jamming
    jamming -. uses PSD / SSC .-> navsignal
    holdover -. coast-variance vs van-Loan recursion .-> kalman
    ensemble --> run
    sweep --> run
    orbit --> tle
    tle --> sgp4mod
    orbit -. SGP4 propagator .-> sgp4mod
    fusion -. composes .-> models
    fusion -. composes .-> inertial
    fusion --> kalman

    run --> models
    run --> estimator
    run --> kalman
    run --> security
    run --> fom
    run --> report
    run --> orbit
    models --> types
    scenario --> types
    inertial --> scenario
    timetransfer --> types
    orbit --> scenario
    hybrid -. composes .-> models
    hybrid -. composes .-> estimator
    hybrid -. composes .-> inertial
    hybrid -. composes .-> timetransfer
    pack1 --> shared
    inertial --> allan

CLI (käsurealiides) ja mõlemad sidemed suunduvad läbi ühe api::run_toml sisenemispunkti, nii et need ei lahku kunagi. Paketid taaskasutavad jagatud tuuma (types, scenario, allan); pakett 4 (hybrid) komponeerib pakettide 1–3 mudelid ja hinnangud, mitte ei teosta neid uuesti; orbit tuletab geomeetriast GNSS-i ajajoone, mis seejärel toidab paketi 1 käivitust. Moodul navsignal asub signaalitasemel lingibilansi ja mõõtmisdomeeni vahel: see tuletab spektraaleraldus koefitsiendi κ tegelikest signaali ja segaja võimsusspektritest, millest jamming arvutab nüüd oma anti-jam Q = 1/(R_c·κ), mitte ei võta esinduslikku konstanti (ristkontrollitud CI-s (pidev integratsioon)); see kannab ka kauguskoodi (m-jada/Gold) kavandi kompromissi.

Kolm täiendavat moodulit moodustavad GNSS-ita vastupidavuse selgroo. holdover vastab operatiivsele küsimusele otse — kui kaua võib see kell vabalt töötada, enne kui selle ajaviga ületab eelarve? — eksponeerides van-Loani väljarändevea kinnise vormi holdover-i-läveni pöördvõrdena, ristkontrollituna mitmeastmelise clock_state kovariatsioonirekursiooni vastu. Selle inertsiaalne kaksik asub failis inertial::quantum_imu (QuantumNavBudget), mis komponeerib külmaatomite interferomeetri valge müra triivi nihke ja skaalategurivea abil asukohatriivi eelarveks holdover-i jooksul (nihketerm on ristkontrollitud sõltumatu AccelModel integraatori vastu). verification renderdab kogu mootori nõude–mooduli–testi–sõltumatu etaloni–oleku maatriksi, ühikutestitud invariantidega, mis keelavad sildi valideeritud ilma sõltumatu välise etaloni olemasoluta — nii et kinnitusväide ei saa koodist lahku triivida.

1a. Astrodünaamika, sulandamise ja alt-PNT kihid#

Lisaks sensoripaketi tuumale jagavad kolm alamsüsteemi sama jagatud tuuma ja toidavad (või neid toidab) orbit. Astrodünaamika / numbriline kiht lisab mitteanalüütilise Cowelli propagaatori analüütilise SGP4/SDP4 tee kõrvale; sulandamise kiht kannab GNSS/INS hinnanguid; ja alt-PNT kiht on GPS-ita (GPS: Global Positioning System) gravitatsioonikaardi sobitamine. Need on teegi/stsenaariumi võimekused (vt CAPABILITY, millised on stsenaariumi kind külge ühendatud ja millised kättesaadavad Rusti API-na (rakendusliides)).

flowchart TD
    subgraph astro["Astrodynamics & numerical"]
      orbit2["orbit · sgp4 · tle · walker<br/>analytic SGP4/SDP4 · Walker design"]
      prop["propagator<br/>Cowell driver (accel_at / accel_rv)"]
      forces["forces<br/>two-body · J2–J6 · EGM2008 d/o-70 · 3rd-body · SRP · drag · Schwarzschild + Lense–Thirring · tides"]
      integ["integrator<br/>RK4 step-doubling · Dormand–Prince RK5(4)"]
      ephem["ephem<br/>low-precision Sun & Moon"]
      man["maneuver<br/>impulsive/finite burns · Izzo Lambert · porkchop"]
      od["orbit_determination<br/>Gauss–Newton batch (batch_ls) · sequential UKF"]
    end
    subgraph fusion["Fusion (GNSS/INS)"]
      ekf["fusion/gnss_ins_ekf · closed_loop · pack<br/>15-state loosely-coupled EKF"]
      tc["fusion/tightly_coupled (8-state)<br/>fusion/tightly_coupled17 (17-state, quantum-CAI)"]
      ukf["fusion/ukf — sigma-point core"]
      coup["fusion/coupled — clock+position cross-covariance"]
    end
    subgraph alt["Alt-PNT (GPS-denied)"]
      grav["gravimeter<br/>cold-atom model + SH anomaly field + mascons"]
      pf["particle_filter — SIR"]
      mm["mapmatch — field-match likelihood"]
    end
    prop --> forces
    prop --> integ
    forces --> ephem
    man --> integ
    od --> forces
    od --> integ
    od --> ukf
    tc --> ukf
    tc -. coasts on .-> forces
    grav --> pf
    mm --> pf
    grav --> mm
    ekf -. drives .-> strap["inertial/ strapdown (quaternion · NED · IMU errors)"]
    tc -. drives .-> strap
    grav -. CAI floor .-> strap

Numbrilise propagaatori jõuliikmed on vaikimisi välja lülitatud, nii et nende lubamine ei häiri kunagi väljalaskega seotud kuldseid. 17-olekuline tihedalt seotud unscented Kalmani filter (UKF) hoiab GNSS-i katkestust kvant-CAI kiirendusmõõturi tuletatud kiiruse juhusliku kõnni peal; orbiidi määramine taaskasutab sama forces/integrator, et propageerida kandidaatolekut jälgimiskaarel.

Sama jagatud tuum kannab ka nelja täiendavat alamsüsteemi, mida ülal ei ole joonistatud (nende paketid ilmuvad §4 väljasaatmises): aja ja tugisüsteemi kiht (timescales, jd2, precession, nutation, cio, frames, eop), mis redutseerib TEME↔GCRS↔ITRS (TEME: true equator, mean equinox) ja toidab ephemeris/maajälje paketti; terviklikkuse kiht (raim, sbas) RAIM/ARAIM/SBAS jaoks; vastupidavuse kiht (jamming, spoof, spoof_detect, spoof_monitors, detection) segamise ja mitmekihilise spuufimise tuvastamiseks, koos navigatsioonisignaali kihiga (navsignal) signaalitasemel — BPSK-R (BPSK: binary phase-shift keying) / sine-BOC (BOC: binary offset carrier) võimsusspektri tihedused, spektraaleraldus koefitsient κ, mis nüüd tuletab jamming anti-jam Q, RMS (Gabori) kauguse ribalaius, koherentne early–late DLL (delay-locked loop) koodi jälgimise värin ja mitmeteelevi vea ümbrik (signaali toimivuse analüüs, mitte RF-kasuliku koormuse (RF: raadiosagedus) / antennisüsteemi riistvara kavandamine — kasuliku koormuse partneri roll); ning Kuu / tsislunaarne kiht (lunar, lunar_frame, lunar_od, cr3bp) CR3BP (ringpiiratud kolme keha probleem) dünaamika jaoks — sealhulgas 6×6 olekuülemineku maatriks ja ühekordse laskmisega diferentsiaalparanduspõhine meetod (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), mis annab tõeliselt perioodilisi halo/NRHO (NRHO: peaaegu sirgjooneline halo orbiit) orbiite, taastoodab avaldatud L2 lõunapoolse 9:2 NRHO (Gateway orbiit) perioodil ≈ 6,57 d / perilunil ≈ 3 250 km (avaldatud ≈ 6,56 d / ≈ 3 370 km); parandatud orbiidi selenotsentriline MCI/MCMF (MCI: Kuu-keskne inertsiaal; MCMF: Kuu-keskne, Kuuga seotud) teisendus ja perekonna jätkamine jäävad järgnevateks töödeks ning NRHO on CR3BP (ringjooneline, Päikeseta) lahend, mida ei ole valideeritud päris LANS/Gateway (LANS: Lunar Augmented Navigation Service) efemeriidi vastu — ja LunaNeti terviklikkus. Agentuuride efemeriidi jõumudeli sobitus (precise_od, lunar_od, tides, gravity_sh) ja täielik alt-PNT väljade komplekt (igrf, altpnt/terrain, gravimeter) täiendavad moodulite loendit; mooduli kaupa küpsuse kohta vt CAPABILITY.

1b. Vastupidavuse uuringud, masinõppe hindamine ja reprodutseeritavad artefaktid#

Viis täiendavat moodulirühma moodustavad projekti uurimisartiklite taga oleva avatud, reprodutseeritava uuringu kihi. Erinevalt stsenaariumi kind-idest jõutakse nendeni cargo run --example / --bin generaatorite kaudu, mis kirjutavad bait-baidilt deterministlikke artefakte (fikseeritud algväärtused, registreeritud mootori versioon + konfiguratsiooni räsi). Kõik on MODELLED (sünteetiline või avaliku andmestiku kalibreerimine) ja kannavad ausaid valideerimissilte — ükski neist ei ole sertifikaat.

flowchart TD
    gen["study generators<br/>examples/ · bin/ (cargo run) → byte-deterministic artifacts"]

    subgraph timing["Timing integrity"]
      tplm["tpl<br/>conditional Timing Protection Level: k-σ floor · van-Loan coast · CUSUM"]
    end
    subgraph resilm["Resilience scoring & decision-instability"]
      arch["resilience/arch · score<br/>architecture model + RPCF-aligned scoring"]
      stats["resilience/stats<br/>Dirichlet · Kendall-τ · flip-rate · bootstrap"]
      div["resilience/diversity · timeline<br/>Hill-N2 common-mode collapse · KPIs"]
      study["resilience/study · report · panel<br/>instability study + integrity-hashed assurance report"]
    end
    subgraph aiml["RF-impairment optimism-gap (Machine learning)"]
      ie["impairment_eval<br/>labelled synthetic corpus · ROC/AUC harness"]
      is["impairment_study<br/>13-detector panel · scaling laws · LOO predictor"]
      ml["impairment_ml<br/>logistic-regression + one-hidden-layer MLP"]
      es["eval_stats<br/>bootstrap CI · DeLong · Spearman · ridge"]
      sdrm["sdr · realdata<br/>IQ/IF → E/P/L taps → SQM + ingest adapters"]
    end
    subgraph trade["Quantum-vs-classical"]
      cross["crossover<br/>resilience crossover map under parameter uncertainty"]
      qt["quantum_trade<br/>measured-ADEV holdover benefit vs classical"]
    end

    gen --> timing
    gen --> resilm
    gen --> aiml
    gen --> trade
    tplm -. cross-checked vs .-> recursion["holdover · clock_state · allan"]
    is --> ie
    is --> ml
    is --> es
    ie -. real recordings via .-> sdrm
    cross -. composes .-> packs2["clock · inertial packs"]
  • tpl — tingimuslik ajastuse kaitsetase: holdover-iga piiratud piir tuvastamata ajaveale spuufimise all, komponeerides k-σ monitori põranda, van-Loani väljarändevea dispersiooni tuvastusviivituse jooksul ja CUSUM (cumulative sum) aja-alarmini; kalibreeritud päris salvestatud spuufimisel (JammerTest 2024). Lõplikku tingimusteta piiri ei ole — TPL on tingimuslik sellel, et sõltumatu ristkontroll tuvastab rünnaku.
  • resilience/ — raamistikuga ühtlustatud PNT-vastupidavuse skoorimismootor (DHS (Department of Homeland Security) RPCF (Resilient PNT Conformance Framework) kategooriad) pluss otsuse ebastabiilsuse uuring: Dirichlet' kaalumissimpleks, Kendall-τ järjestuse ebastabiilsus, top-1 võitja ümberminemise määr ja ühisrežiimi mitmekesisuse kollaps (Hill-N2), terviklikkuse räsiga kinnitusaruande ja 35 käsitsi tuletatud sõltumatu etaloni testiga. Vt RESILIENCE-CROSSWALK. Sünteetilised arhitektuurid, mis on ühtlustatud RPCF v2.0-ga — enesehinnang, mitte sertifikaat.
  • impairment_eval / impairment_study / impairment_ml / eval_stats — RF-häirete optimismilõhe uuring: märgistatud sünteetiline korpus ja detektoriagnostiline ROC/AUC (ROC: receiver operating characteristic; AUC: area under the curve) raamistik, 13-detektoriline paneel (energia/AGC/SQM/pariteet (AGC: automaatne võimenduse reguleerimine; SQM: signaalikvaliteedi monitooring) pluss algväärtustatud logistilise regressiooni ja ühe peidetud kihiga MLP (MLP: mitmekihiline pertseptron) detektorid), jaotusesisesed vs jaotusevälised skaleerumisseadused permutatsiooninulliga ning jaotusevälise halvenemise leave-one-out ennustaja. Hindamismõõdikud on bait-baidilt valideeritud scikit-learn'i vastu.
  • sdr / realdata — tarkvaraliselt defineeritud vastuvõtja esiots (töötlemata IQ/IF (IQ: faasis/kvadratuuris; IF: vahesagedus) → korrelaatori early/prompt/late kraanid → SQM) ja sissevõtuadapterid (RINEX, u-blox UBX, GnssLogger, JammerTest, Yunnan, SatGrid), mis lasevad samadel detektoritel töötada kohapeal esitatud salvestistel; hoidlasse ei ole sisse kantud ühtegi andmestikku.
  • crossover / quantum_trade — kvant- ja klassikalise vastupidavuse ristumiskaart parameetrite määramatuse all ning mõõdetud ADEV holdover-i kasu kompromiss; kompromissi numbrilised tuumad on valideeritud scipy vastu.

1c. Terviklikkuse, GNSS-i, sügava kosmose, Kuu ja missiooni kihid#

Ülejäänud valdkonnad ühendatakse sama api väljasaatmisega ja taaskasutavad jagatud tuuma, tugisüsteeme ja geomeetriat. Kõik siin on MODELLED, kui just verification-maatriksi rida ei viita välisele sõltumatule etalonile (RAIM tuum vs SciPy, SBAS vs RTKLIB (avatud lähtekoodiga reaalajas kinemaatilise positsioneerimise teek) fork, gnss_lib_py DOP (täpsuse halvenemise tegur) tuum, OPS-SAT hindamine, Kuu ARAIM kaitsetaseme tuum, tarnijate vaheline Kuu efemeriidi kooskõla) — ülejäänud Kuu komplekt ja kvantdemonstraator on modelleeritud, illustratiivsed, avaliku allikaga ega kanna TRL (tehnoloogia valmidustase) / pärandi / agentuuri kinnituse väidet.

flowchart TD
    api["api.rs — run_toml / run_scenario · 92 kinds"]

    subgraph gnss["Integrity & GNSS measurement"]
      raim["raim — RAIM/ARAIM · HPL/VPL (kernel vs SciPy)"]
      sbas["sbas — DO-229E PL · L1/L5 (vs RTKLIB fork)"]
      meas["gnss_sim · ionex · pvt · glonass — pseudorange · iono maps · single-point PVT"]
      imp["integrity_impact · frugal — miss→integrity · cost-per-coverage"]
    end

    subgraph deep["Deep-space & Mars"]
      core2["body · ephem_provider · clock_state — multi-body · ephemeris seam · onboard clock"]
      radio["radiometric · ccsds_tdm — light-time · Doppler/range · Δ-DOR · TDM"]
      mars["deepspace_od · mars_frame · mars_atmos · mars_pnt · linkbudget · gse_sim — SRIF OD · Mars frame · relay-PNT · GSE sim"]
    end

    subgraph lunar["Lunar PNT suite (evidence tier per piece in the matrix · illustrative public-source)"]
      cis["cr3bp · lunar · lunar_frame · lunar_od — CR3BP · halo/NRHO · cislunar ARAIM · MCI↔MCMF"]
      suite["lunar_time · lunar_vlbi · lunar_combination · lunar_frame_realise — LTC time · VLBI · joint OD+clock · frame realisation"]
      suite2["lunar_service · lunar_dpnt · lunar_interop — Moonlight service-volume · differential PNT · LunaNet/IOAG interop"]
    end

    subgraph quantum["Quantum-Enabled PNT demonstrator (MODELLED)"]
      qd["quantum_devices · quantum_faults · quantum_nav_od — device error models · fault catalogue · GNSS-free OD"]
      qt["qtrade · timetransfer_chain · representativeness — unified trade · time-transfer chain · gaps-to-flight ledger"]
    end

    subgraph mission["Mission analysis, environment & interop"]
      ma["launch · reentry · eo_payload · attitude_budget · passes · linkbudget — first-order budgets"]
      env["space_weather — Jacchia-71 density"]
      iop["rinex · rinex_obs · sp3 · oem · omm · ccsds_tdm · space_packet · interchange · permalink — interop formats + KIF"]
      ver["verification — requirement→module→test→oracle→status matrix"]
    end

    api --> gnss & deep & lunar & quantum & mission
    raim -. reuses .-> meas
    suite -. reuses validated DOP / SBAS kernels .-> gnss
    qt -. rides validated kernels (scipy / sklearn) .-> quantum

1d. LEO PNT, spekter, päikesesüsteem, võrguajastus, kampaaniad ja väljundid#

Uusimad kihid järgivad sama mustrit: igaüks on üks või mitu stsenaariumi kind-i, mis saadetakse välja failist api, ehitatud jagatud tuumale ja MODELLED, kui just maatriksi rida ei nimeta välist sõltumatut etaloni.

flowchart TD
    api["api.rs — run_toml / run_scenario"]

    subgraph leo["LEO PNT (low Earth orbit positioning, navigation and timing)"]
      lsig["leo_signal — signal design: acquisition, code tracking, GNSS compatibility, band trade"]
      lpass["leo_pass · leo_link (geometry · antenna · itu · iono · energy · spoof · presets) — pass and per-band link budget"]
      lnav["leo_navmsg (elements · fit · codec · sisre · services · text) — broadcast ephemeris and clock message"]
      lfus["leo_fusion (doppler · joint_pvt · ppp · ntn · timing · polar · presets) — fused MEO+LEO PVT · PPP · 5G NTN"]
      lchain["leo_pnt_chain — one system end to end, each stage handing its output to the next"]
    end

    subgraph rf["Spectrum"]
      spec["spectrum · navsignal — L-band (and UHF/S/C) PSD waterfall under a jammer timeline"]
      sig["sigmf — SigMF recording read/write · Welch PSD of complex IQ"]
    end

    subgraph sky["Solar system & constellations"]
      ss["solar_system · body · ephem · ephem_provider — bodies, constants, light time at one epoch"]
      bp["body_pnt — positioning around any body with a local constellation"]
      cd["constellation · walker — Walker delta/star, multi-shell, published GNSS slots, coverage/DOP maps"]
    end

    subgraph net["Network timing"]
      tel["telecom_timing — time error, MTIE, TDEV vs ITU-T masks"]
      slot["slot_timing — seconds until a free-running clock leaves a slot guard"]
    end

    subgraph comp["Composition & outputs"]
      camp["campaign · study · suite — chained phases, sweeps, Monte Carlo, shared conditions"]
      rep["advanced_report — report.html + report.json with a reproducibility record"]
      anim["animation — SVG / HTML / frame animations"]
      iop["interop (czml · kml · geojson · stk) · sigmf — exchange files for --export"]
    end

    api --> leo & rf & sky & net & comp
    lchain -. composes .-> lsig & lpass & lnav & lfus
    lsig -. SSC chain .-> spec
    lfus -. GNSS presets .-> cd
    bp -. reuses .-> ss
    camp -. runs other kinds through .-> api

Liigipõhine detail on failides LEO-PNT, LEO-SIGNAL, LEO-PASS, LEO-NAVMSG, LEO-PNT-FUSION, SPECTRUM, CONSTELLATION-DESIGN, TELECOM-TIMING, SLOT-TIMING, CAMPAIGNS, REPORTS, ANIMATION ja INTEROP.

1e. Vastuvõtja usalduse, tõendite, telemeetria, väljaõppe ja compliance-kihid (0,35)#

Need kihid loevad vastuvõtja enda logi või kirjutavad faile teiste tööriistade jaoks; ükski neist ei sünteesi ega edasta raadiosageduslikku signaali. Need asuvad api kõrval, mitte stsenaariumi liikide all, välja arvatud receiver-trust ise, mis on stsenaariumi liik. Kõik on MODELLED, kui just maatriksi rida ei nimeta välist sõltumatut etaloni, ja merendusväljundid on nõuandvad, mitte tüübikinnitust omav navigatsiooniseade.

Moodul Mida see teeb Dokumenteeritud failis
receiver_trust skoorib vastuvõtja logi epohhi kaupa usaldusmonitoridega; laevaplatvorm lisab merendusmonitorid ja skoori vahemikus 0–100 koos põhjustega RECEIVER-TRUST, MARITIME-TRUST
receiver_trust::live sama skoorimine voos selle saabudes (stdin, lisatav fail, TCP või UDP), lause $PKSHT ja valikuline värav; LiveEngine on selle kogu sisu ilma sisendi ja väljundita MARITIME-TRUST
evidence allkirjastatud, räsiahelaga logi akna, selle konfiguratsiooni ja mootori tulemuse pakett, kontrollitav võrguühenduseta; valikuline RFC 3161 ajatempli token EVIDENCE-PACKS
telemetry usaldusvoog Prometheuse mõõdikutena, syslog-sündmused (CEF või LEEF) ja valikuline OpenTelemetry (funktsioon otlp, vaikimisi väljas) TRUST-TELEMETRY
nmea_synth sünteetiline sillasüsteemi NMEA 0183 stsenaarne segamise (jamming), kõrvalejuhtimise (drag-off), aja spuufimise ja taasesituse sündmustega ning juhendaja logiga meeskonna koolituseks (ainult tekst) NMEA-TRAINING
interference_map koondatud halvenenud navigatsiooni kaardid avatud litsentsiga õhusõidukite ja laevade aruannetest ning marsruudi kokkupuude nendega; ainult kohalikud failid INTERFERENCE-MAP
osnma Galileo OSNMA vastuvõtjapoolne verifitseerija: loeb I/NAV-lehti (tavalehed, vektor-CSV, UBX-voog), kontrollib allkirjastatud võtit, TESLA ahelat ja MAC-e ning teatab satelliidi kaupa, kas navigatsiooniandmed on autenditud; osnma::cli::verify_report on ainus tee, mida jagavad käsurida, Python ja WebAssembly; ainult autentimise olek, mitte terviklikkuse teenus OSNMA
compliance seostab Kshana väljundid avalike vastupidavusraamistikega ja täidab seose tulemusdokumentidest; run_from_text ja assess_texts võtavad sisendiks tekste, mitte teid compliance/
interop::testbench stsenaariumi sõiduki liikumine ja sündmused liikumis-CSV-na, NMEA-na, teekonnapunktide tekstina ja sündmuste failidena laboratoorse GNSS-simulaatori jaoks; signaali ei kirjutata TEST-BENCH

Paatide integratsioonid (Signal K plugin, OpenCPN gate mode ja viiteversioon) kutsuvad käsurearistvahendit; vt MARINE-INTEGRATIONS.

2. Mootori konveier (käivituse kohta)#

Iga käivitus juhib ühte andurimudelit läbi ajavõrgu, distsiplineerides seda alati, kui GNSS on nominaalne, ja lastes sel katkestuse ajal vabalt töötada (holdover / dead-reckoning).

flowchart TD
    A["for each time step t"] --> B{"i &gt; 0 ?"}
    B -- yes --> C["model.step(dt, rng)<br/>evolve noise state"]
    B -- no --> D
    C --> D{"GNSS state at t ?"}
    D -- "Nominal" --> E["discipline to truth<br/>(estimator sync / dead-reckoning reset)<br/>error = 0"]
    D -- "Denied/Degraded" --> F["estimator predicts;<br/>error = truth − prediction"]
    E --> G["record Sample(t, error, gnss)"]
    F --> G
    G --> A
    A -. after loop .-> H["score(series, spec)<br/>→ figures of merit"]
    H --> I["assemble Result<br/>(specs · series · FoM · scenario hash)"]

Stsenaarium käivitab selle konveieri kaks korda — üks kord kvantanduri ja teine kord klassikalise anduri jaoks — sõltumatute algväärtustega (seed) (classical_seed = seed + 0x9e3779b97f4a7c15), et kaks müra realisatsiooni ei oleks omavahel korreleeritud.

3. Veamudeli liides (laiendamispunkt)#

Iga andur realiseerib sama mõtte: olekuga objekt, mille step() edendab selle sisemist stohhastilist viga ja mille kogunenud olek loetakse välja igal taktil. Kellad annavad kogunenud faasi; kiirendusmõõturid annavad kahekordselt integreeritud asukoha; lingid annavad mõõtmise kohta värina.

classDiagram
    class ErrorModel {
      <<trait>>
      +step(dt, rng)
      +spec() ModelSpec
    }
    class ClockModel {
      +y0, q_wf, q_rw, drift, flicker
      +phase() s
      +det_freq()  +drift_rate()
    }
    class AccelModel {
      +bias, q_va, gyro_bias, q_arw
      +pos() m  +theta() rad
      +reset()
    }
    class TimeTransferLink {
      +sigma_j
      +sample(rng) s
    }
    ErrorModel <|.. ClockModel
    ClockModel : white FM + random-walk FM + flicker FM + aging
    AccelModel : accel bias + VRW + gyro bias + ARW (gravity-tilt)
    TimeTransferLink : white timing jitter

ModelSpec { id, kind, provenance, params } liigub tulemusse kaasa, nii et iga väljundi arv on jälgitav väljaandes provenance nimetatud avaldatud allikani.

Analüütilise HoldoverEstimator kõrval käivitab kellapakett kahe olekuga (faas, sagedus) Kalmani filtri (KalmanClock), mille protsessimüra vastab tõelisele mudelile. Katkestuse ajal inertsist liikudes kasvab selle faasivea dispersioon täpselt väärtuseni q_wf·T + q_rw·T³/3 — analüütiline holdover-i seos — ning selle veebipõhist 1-σ piiri kasutatakse terviklikkuse kvaliteedinäitaja (figure of merit) täitmiseks (nende katkestusvalimite osakaal, mille viga jääb k-σ piiri sisse).

4. Suunamine (CLI ja sidemed)#

api::run_toml(src) on ainus sisenemispunkt: see vaatab ülemise taseme välja kind, deserialiseerib sobiva stsenaariumi, käivitab paketi ja tagastab { json, svg, summary, csv } (csv on olemas ainult nende liikide puhul, mis avaldavad reprodutseeritavuse tabeli). CLI kirjutab need failidesse, lisaks aruande (report.html, report.json) ja mis tahes väljundi --export / --animate; Pythoni ja WebAssembly sidemed tagastavad need peremeesrakendusele. Üks suunamine, ei mingit lahknevust.

flowchart TD
    F["api::run_toml(src) · run_scenario(src)"] --> K{"ScenarioKind::classify<br/>typed · exhaustive · 92 kinds<br/>(absent kind → clock; unknown kind → InvalidInput)"}
    K --> G1["Timing<br/>clock · timetransfer · quantum-time-transfer · telecom-timing · slot-timing"]
    K --> G2["Inertial & fusion<br/>inertial · hybrid · hybrid-ukf · fusion · gnss-ins · quantum-gnss-free-nav · ins-trn-coast · hybrid-optical-rf"]
    K --> G3["Orbit, geometry & positioning<br/>orbit · ephemeris · constellation-design · gnss-sim · pvt"]
    K --> G4["Integrity<br/>integrity · lunar-integrity · araim-reference-check"]
    K --> G5["Resilience & spectrum<br/>jamming · spoof · spoof-detect · quantum-anomaly-detect · tracking-loop · spectrum · conflict-resilience"]
    K --> G6["Alt-PNT (GPS-denied)<br/>gravity-map · terrain-nav · terrain-slam · combined-altpnt"]
    K --> G7["LEO PNT<br/>leo-signal · leo-pass · leo-navmsg · leo-pvt · leo-ppp · ntn-positioning · leo-pnt-chain"]
    K --> G8["Lunar / cislunar suite (MODELLED)<br/>lunar-time-offset · lunar-time-budget · lunar-vlbi · lunar-vlbi-fim · lunar-joint-od-clock<br/>lunar-frame-realisation · lunar-frame-campaign · lunar-llr-datum · realtime-frame-eop<br/>moonlight-service-volume · lunar-differential-pnt · lunar-interop-export · lunar-beacon<br/>lunar-jamming · lunar-attack-surface · earth-gnss-lunar · cislunar-observability · cislunar-arc-recovery"]
    K --> G9["Deep space & solar system<br/>mars-pnt · solar-system · body-pnt"]
    K --> G10["Machine learning & trade<br/>impairment-eval · quantum-trade"]
    K --> G11["Mission analysis & environment<br/>launch-window · reentry · eo-coverage · attitude-budget · aperture-duty-cycle<br/>passes · link-budget · space-packet · space-weather"]
    K --> G12["Trade studies, campaigns & interop<br/>sweep · sweep-nd · campaign · oem-interop"]
    G1 & G2 & G3 & G4 & G5 & G6 & G7 & G8 & G9 & G10 & G11 & G12 --> W["RunOutput { json, svg, summary, csv }<br/>+ SHA-256 scenario_hash"]

Suunamine toimub tüübitud enum-i ScenarioKind alusel, mida sobitatakse ammendavalt (vt järgmist alajaotust), nii et paketi lisamine on kompilaatori kontrollitud muudatus. Puuduv kind langeb tagasi paketile clock, nii et olemasolevad ühe liigi stsenaariumid deserialiseeruvad muutumatult (serde ignoreerib iga stsenaariumistruktuuri välja kind). Tundmatu kind lükatakse tagasi veaga KshanaError::InvalidInput, mis nimetab lähima sisseehitatud liigi, kui nimi näib olevat kirjaviga.

Tüübitud suunamine ja struktureeritud API#

Suunamine toimub tüübitud enum-i ScenarioKind alusel, mitte toorsõne sobitamisega: ScenarioKind::classify(src) lahendab välja kind variandiks ja dispetšer sobitab seda ammendavalt — paketi lisamine on kompilaatori kontrollitud muudatus, mitte sõnevea küsimus. Stringi tagastava run_toml kõrval (säilitatud CLI ja olemasolevate sidemete jaoks) on kaks tüübitud liidest:

  • run_scenario(src) -> Result<RunOutput, KshanaError> — tüübitud sisenemispunkt struktureeritud veaklassifikatsiooniga (InvalidInput, NonConvergence, Unsupported, IoError). Iga viga kannab stabiilset kind_tag(), nii et kutsuja saab hargneda tõrkekategooria järgi, selle asemel et sõnumit parsida. Sidemed pakuvad seda kui error_kind(toml).
  • list_scenario_kinds() -> Vec<ScenarioMeta> (ja list_scenario_kinds_json(), mis on sidemetes avatud kui list_kinds()) — programmeeritav introspektsioon: iga liigi nimi, kirjeldus ning kohustuslikud ja valikulised väljad kasutajaliidese (UI) ja märkmikuga automaatse täitmise jaoks.

Kshana laiendamine välise paketiga#

Kolmanda osapoole pakett realiseerib kaks väikest, semver-stabiilset tunnust (trait) moodulist api:

use kshana::api::{ExternalPack, KshanaError, RunOutput, Scenario, ScenarioMeta};

struct MyPack {
    threshold: f64, // the deserialized scenario fields
}

impl Scenario for MyPack {
    fn run(&self) -> Result<RunOutput, KshanaError> {
        // Run the model, then build the unified output envelope.
        Ok(RunOutput {
            json: format!("{{\"threshold\": {}}}", self.threshold),
            svg: String::from("<svg xmlns=\"http://www.w3.org/2000/svg\"/>"),
            summary: format!("my-pack | threshold {}", self.threshold),
            csv: None,
        })
    }
}

impl ExternalPack for MyPack {
    fn kind_name(&self) -> &'static str {
        "my-pack"
    }
    fn meta(&self) -> ScenarioMeta {
        ScenarioMeta {
            name: "my-pack",
            description: "An out-of-tree example pack.",
            required_fields: &["threshold"],
            optional_fields: &[],
        }
    }
}

ExternalPack sisaldab ka vaikemeetodit register_into(&mut PackRegistry), mis ei tee midagi, kui pakett ei vali registri suunamisõmblust failis src/registry.rs. Sisseehitatud pakett jamming on ühendatud tunnuse Scenario kaudu kui läbitöötatud näide; puust väljaspool olevad paketid järgivad sama lepingut ilma tuuma hargnemata (peegeldades laiendamispunkti ErrorModel jaotises §3, mida kasutab privaatne vastupidavuskiht).

Kshanal on seega kaks stabiilset laiendusõmblust — lisa andur, realiseerides ErrorModel (§3), või lisa tervikuna stsenaariumi liik, realiseerides Scenario + ExternalPack — mõlemad on semver-stabiilsed ja kumbki ei nõua tuuma hargnemist:

classDiagram
    class ErrorModel {
      <<trait — sensor seam>>
      +step(dt, rng)
      +spec() ModelSpec
    }
    class Scenario {
      <<trait — pack seam>>
      +run() RunOutput
    }
    class ExternalPack {
      <<trait : Scenario>>
      +kind_name() str
      +meta() ScenarioMeta
    }
    ErrorModel <|.. ClockModel
    ErrorModel <|.. AccelModel
    ErrorModel <|.. TimeTransferLink
    Scenario <|.. ExternalPack
    Scenario <|.. JammingPack : worked example
    ExternalPack <|.. ThirdPartyPack : out-of-tree, no core fork

5. Hübriidne kulminatsioon#

Hübriidpakett käivitab komplekti (üks kell + üks inertsiaalandur) ja nõuab, et nii ajastus kui ka asukoht püsiksid spetsifikatsioonis; pnt_holdover on aeg, kuni üks neist rikub piiri. Valikuliselt sünkroniseerib optiline satelliitidevaheline link katkestuse ajal kella uuesti — ainult aja abistamine; asukohta uuesti ei sünkroniseerita, sest aja edastamine annab aja, mitte asukoha. Just see eristab inertsiaalanduri piiravaks teguriks.

flowchart LR
    subgraph suite["PNT suite (per technology)"]
      clk["clock → timing error"]
      acc["inertial sensor → position error"]
      isl["optical ISL<br/>re-sync clock at interval"] -. aids .-> clk
    end
    clk --> J["both within spec ?"]
    acc --> J
    J --> P["pnt_holdover = first breach<br/>(timing OR position)"]

6. Geomeetriast tuletatud GNSS-i kättesaadavus#

orbit.rs on deterministlik, sõltuvusteta geomeetriakiht. Propagator on kas analüütiline Kepleri Orbit (kahe keha, valikuliselt sekulaarse J2-ga) või täielik Sgp4 propageerija, mis on ehitatud täielikust kaherealisest elemendikomplektist; Walkeri delta generaator toodab sünteetilisi konstellatsioone ning silmapiirinähtavus = Maa varjutus + kõrgusmaskeering. Nähtavate satelliitide arv seotakse GNSS-i olekuga (≥4 = nominaalne, 1–3 = halvenenud, 0 = keelatud) ja build_timeline muudab selle kättesaadavuse ajajoonaks, mis juhib standardset kella holdover-i käivitust. Kättesaadavus on seega tuletatud geomeetriast, mitte käsitsi koostatud, samal ajal kui käivitus, hindaja ja punktiarvestus jäävad muutumatuks.

Täieliku TLE-na antud konstellatsiooni propageeritakse SGP4/SDP4 mudeliga failis sgp4.rs (kontrollitud AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 vektorite vastu); ainult rea 2 elementidega satelliidid kasutavad edasi analüütilist kahe keha rada. Neid kahte võib ühes konstellatsiooniplokis segada.

flowchart LR
    U["user orbit"] --> V
    C["Walker constellation"] --> V["visible_count(t)<br/>occultation + mask"]
    V --> S["gnss_state: ≥4 / 1–3 / 0"]
    S --> T["build_timeline → GnssTimeline"]
    T --> R["run_orbit_clock → clock holdover"]

7. Sidemed#

Tuum kompileerub muutmata natiivseks, Pythoni laiendiks ja WebAssembly-ks. Pythoni (python.rs, PyO3 abi3) ja WebAssembly (wasm.rs, wasm-bindgen) moodulid on valikulised, funktsiooniga lülitatavad sõltuvused (--features python / --features wasm): vaikeversioon ja testikomplekt ei kompileeri neid kunagi, samas kui sõltuvusauditi värav (cargo deny --all-features) kontrollib nende sõltuvuspuid, sest need kastid (crates) tarnitakse wheel-paketis ja npm-paketis. Mõlemad kutsuvad api::run_toml, nii et iga pind tagastab identsed tulemused. WebAssembly moodul toetab brauseri mänguväljakut kaustas web/ ja ekspordib kolmteist funktsiooni: run, run_all (üks mootori käivitus, mis tagastab tulemuse, graafiku, kokkuvõtte ja tabeli koos), chart_svg, summary, table_csv, list_kinds, error_kind, version, jagatava URL-i (URL: veebiaadress) kodek encode_permalink / decode_permalink ja kolm eksportijat export_sp3 / export_omm / export_oem, mis toetavad mänguväljaku eksporditavalikut. Kaks täiendavat sissepääsu viivad sama api juurde: MCP (Model Context Protocol) server (mcp/kshana-mcp, tööruumist välja jäetud rmcp kast, mis pakub viisteist tööriista — run_scenario, list_scenario_kinds, validate_scenario, list_example_scenarios, get_example_scenario, report_scenario, animate_scenario, list_export_formats, export_interop, import_route, export_sp3, export_omm, export_oem, export_table_csv, assess_receiver_log; kaks näitetööriista loevad komplekteeritud stsenaariume teegi vaikimisi väljalülitatud funktsiooni bundled-scenarios kaudu, mille lülitab sisse ainult see server) ja JetBrains IDE (integrated development environment) plugin (ide/jetbrains, Kotlini projekt, mis kutsub välja CLI kshana, mitte ei seo teeki).

flowchart LR
    cli["CLI · main.rs<br/>native binary"] --> api
    py["Python · python.rs (PyO3 abi3)<br/>RunOutput class + run · run_full · run_typed · scenario_kinds · list_kinds · validate_toml · error_kind · version"] --> api
    wasm["WebAssembly · wasm.rs (wasm-bindgen)<br/>run · run_all · chart_svg · summary · table_csv · list_kinds · error_kind · version · encode/decode_permalink<br/>export_sp3 · export_omm · export_oem"] --> api
    mcp["MCP server · mcp/kshana-mcp (rmcp)<br/>tools: run_scenario · list_scenario_kinds · validate_scenario<br/>list_example_scenarios · get_example_scenario<br/>report_scenario · animate_scenario<br/>list_export_formats · export_interop · import_route<br/>export_sp3 · export_omm · export_oem · export_table_csv"] --> api
    ide["JetBrains plugin · ide/jetbrains (Kotlin)"] -- spawns process --> cli
    api["api::run_toml / run_scenario / list_scenario_kinds"] --> out["identical { json, svg, summary } on every surface"]

Funktsioonipõhine lülitamine: Python ja WASM on --features python / --features wasm; komplekteeritud stsenaariumide tabel on --features bundled-scenarios (MCP serveri ainus kasutus); MCP server ja ristkontrollid xval/* on tööruumist VÄLJA JÄETUD kastid; IDE plugin ei seo midagi — see käivitab CLI.

8. Determinism ja reprodutseeritavus#

  • Kogu juhuslikkus liigub läbi ühe algväärtustatud (seeded) ChaCha8Rng käivituse kohta; sammude järjekord on fikseeritud, seega (scenario, seed, engine version) → identical bits.
  • Tulemus kannab SHA-256 (SHA: Secure Hash Algorithm) väärtust scenario_hash; scripts/check-reproducible.sh käivitab viitestsenaariumi kaks korda ja kinnitab baidi baidi haaval identset väljundit.
  • Sama mootor kompileerub natiivseks, Pythoni laiendiks ja sihtmärgiks wasm32-unknown-unknown brauserisisesteks käivitusteks, mis annavad samad arvud.

9. Edasilükatud / tulevane struktuur#

Astrodünaamika, liitmise (fusion) ja alt-PNT kihid jaotises §1a — täielik SGP4/SDP4 propageerija, numbriline Cowelli propageerija seitsme häiringu jõumudeli ja kahe adaptiivse integraatoriga, manöövri/trajektoori kavandamine, orbiidi määramine, 15-/8-/17-olekulised GNSS/INS hindajad, seotud kella+asukoha filter ning gravitatsioonikaardi sobitamine — on kõik valmis, koos Security kvaliteedinäitajaga (FoM) aktiivse spuufimise demonstraatoriga, päris TLE/mitme konstellatsiooni geomeetriaga, Monte Carlo ribadega, kompromissiuuringute pühkimistega, prinditava HTML-aruandega (HyperText Markup Language) koos selle masinloetava kaksikuga ning release/publish/wheels/pages töövoogudega.

Mitu siia kunagi tulevase tööna kantud võimekust on vahepeal valmis saanud ja on käsitletud eespool või jaotises VALIDATION: täielik IAU 2000A nutatsioon ja pööripunktivaba CIO GCRS↔ITRS / ITRF (International Terrestrial Reference Frame) redutseerimine (kontrollitud bitthaaval SOFA/ERFA (SOFA: Standards of Fundamental Astronomy; ERFA: Essential Routines for Fundamental Astronomy) vastu), EGM2008 (Earth Gravitational Model 2008) geopotentsiaal astme/järguni 70, Lense–Thirringi raamikaasaviimise liige, tahke/ookeani/atmosfääri looded, DE-klassi (DE440/ANISE (DE440: Development Ephemeris 440; ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — puhas Rusti planeetide geomeetria tööriistakomplekt)) efemeriidi ristvalideerimine, numbrilise Cowelli propageerija väline Orekit 12,2 ristvalideerimine (0,08 m 24 h jooksul) ning partii- ja järjestikuse orbiidi määramise ristvalideerimine, ja 17-olekuline tihedalt seotud navigaator, mis on avatud stsenaariumi liigina hybrid-ukf.

Ülejäänud jätkutööd on jälgitavad failis CHANGELOG [Unreleased] ning võimekuse kaupa teekaart failis CAPABILITY: välise sõltumatu etaloni väärtus EGM (Earth Gravitational Model) kõrgastme hindaja jaoks täpselt polaarteljel ja pyshtools-puhas pooluse lähedane võrdlus (hindaja astmeni 2190 ja selle käitusaegne .gfc laadija on olemas, MODELLED; vt xval/high-degree-gravity/), ajas muutuv kosmoseilma draiver valikulise NRLMSISE-00 (NRLMSISE: Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model) pidurdustiheduse taseme jaoks (vaikimisi pidurdustihedus on staatiline eksponentmudel ning liigi space-weather Jacchia-71 tihedust iseloomustatakse NRLMSISE-00 suhtes, kuid ei asendata sellega), valikulise päikese servapimenemise varju väline kontroll, kandelaine faasi GNSS/INS tihe sidumine ning päris EGM2008/EIGEN (EIGEN: European Improved Gravity model of the Earth by New techniques) gravitatsioonikaart alt-PNT sobitaja jaoks.

Privaatne kattekihi hoidla sisaldab ekspordipiirangutega vastupidavuse süvendust; see ühendub sama liidese ErrorModel kaudu (ja lepingu ExternalPack kaudu jaotises §4) avalikku mootorit muutmata.