Engine v0.35.0 75 scenario kinds 139 scenario files Real runs
Capabilities

One engine for the whole failure chain.

Interference, spoofing, inertial coasting, clocks, orbits, integrity, telecom timing, positioning around the Moon, Mars and the moons of Jupiter, and quantum-sensor trade studies, with standard exchange formats. Every visual on this page is an engine run you can reproduce. It drives no radio hardware and transmits nothing: at the signal level it writes baseband IQ (in-phase/quadrature) sample files and runs its own software GNSS (Global Navigation Satellite System) receiver on recorded or generated IQ, as analysis tools, not as RF (radio-frequency) signal-generator hardware or a navigation receiver.

kshana solar-system solar-system-tour.toml Real run

The solar system is drawn from the engine's run with JavaScript; the scenario file and command below reproduce it.

Validated orbit (solid) against JPL Horizons (Jet Propulsion Laboratory ephemeris service) Modelled (dashed)

    • Free core

      Everything shown on this page: every scenario kind, scenario file, band, clock and body runs in the open engine under the AGPL-3.0 (GNU Affero General Public License, version 3), with no feature gate.

    • Kshana Pro

      Marked where it builds on a capability: the design optimiser, uncertainty and sensitivity, the mission dossier, calibrated clock twins and ranked trade studies. What Pro adds

    • Custom study

      When it has to be done for you: sensor models calibrated to your hardware, or a Modelled resilience study. Request a study

    01L-band console · spectrum kind
    Free core

    The whole L band, second by second.

    A PSD (power spectral density) waterfall of the GNSS L band from the engine's spectrum kind: frequency across, time down, colour for power above the thermal noise floor. The satellite signals sit below that floor, so what lights up is interference: a chirp jammer, a CW (continuous-wave) tone and narrowband noise. The receiver panel reads each band's C/N0 (carrier-to-noise density) and J/S (jammer-to-signal ratio) for the row on show.

    kshana spectrum · l-band-waterfall-jamming.toml Real run

    The waterfall is drawn from the recorded run with JavaScript. The engine's report, linked below, shows the same run.

    Spectrum analyserthe row on show, whole grid

    floor

    What the spectrum kind models, and what it leaves out

      Kshana Studio runs this scenario in your browser and replays the waterfall; the engine's report and the command reproduce this run exactly.

      02Capability console

      Six consoles, one engine.

      Every capability on one screen: pick a console. Each tab holds real engine runs with their provenance, and every link into this page opens the right tab.

      02Six ways GNSS fails
      Free core

      Six ways GNSS fails.

      Each card replays one recorded run from Kshana Studio: the line draws in and a marker rides the real series. Every card opens its run in Kshana Studio.

      Interference

      Jamming and interference

      A broadband jammer near a receiver: every satellite's effective C/N0 falls far below its nominal value and under the tracking floor, so none of the satellites in view can be tracked.

      Spoofing

      Spoofing and time push

      A spoofer walks the receiver's time off at a steady rate. Each clock's monitor has its own detection bound: the better clock flags the lie far sooner.

      Timing

      Clock holdover

      GNSS time is lost and each clock free-runs. The time error grows until it leaves the guard interval; the log axis shows both clocks at once.

      Orbits

      Orbits and ephemerides

      SGP4 (Simplified General Perturbations 4) propagation of a real two-line element set, drawn as a ground track on real imagery; CCSDS OEM (Consultative Committee for Space Data Systems orbit ephemeris message) and SP3 (Standard Product 3) files in and out.

      Integrity

      Integrity

      RAIM (receiver autonomous integrity monitoring) protection levels against the alert limit. When the protection level crosses the line, the position cannot be trusted.

      Navigation

      Coasting without GNSS

      A small uncrewed aircraft loses GNSS and flies on its INS (inertial navigation system). Two IMUs (inertial measurement units), one position budget.

      08Band atlas
      Free core

      The signals the engine actually models.

      Only the bands the engine models are on the map: a log-scale overview and a zoomed L-band inset with leader lines; S, X and Ka are the DSN (Deep Space Network) allocations. Select a band, on the map or below, to see which bundled scenarios use it, what interference does to it, and each satellite's effective C/N0 by PRN (pseudo-random noise code number). Systems the engine does not model are named under the map, not drawn on it.

      L1 · E1 · GPS · Galileo

      1575.42 MHz · modelled

      The C/A (coarse/acquisition) code carrier for jamming, tracking loops, measurement simulation, Doppler and positioning; Galileo E1 open service as a BOC(1,1) (binary offset carrier) modulation in the anti-jam model.

      Engine source: jamming.rs, tracking_loop.rs, gnss_sim.rs, ephemeris.rs, navsignal.rs

      What interference does

      A jammer sets the jammer-to-signal ratio; processing gain converts it to an effective C/N₀ per satellite, and a satellite loses lock below 25 dB-Hz by default.

      Effective C/N₀ by satellite, from a real run

      Engine v0.35.0 · jamming-demo.toml · seed 1Open in Kshana StudioReport

      Not modelled: GLONASS G1 and G2, BeiDou B1 and B2, Galileo E6. GLONASS (Russia's Global Navigation Satellite System) and BeiDou ephemerides are parsed from RINEX (Receiver Independent Exchange Format) files, but none of these signals is modelled, so they are left off the map.

      03Make it yours · Kshana Studio

      Change any run, in your browser.

      Four steps from a run on this page to a run of your own, then the app that does it: the library, the scenario you are editing and the results, side by side.

      11Make it yours
      Free core

      Any scenario, any constellation, any body.

      Every chart on this page is a scenario file the engine ran. In Kshana Studio you open that same file, change it and run it again, in your browser: the engine is Rust compiled to WebAssembly, and nothing is uploaded.

      1. Start from any scenario

        Pick one of 139 scenario files across 75 kinds, or write your own. kshana kinds --json lists every kind with its fields, and kshana example prints a file to start from.

        The library in Kshana Studio
      2. Set the satellites and constellations

        An orbit scenario describes each constellation as a Walker pattern: altitude_km, inclination_deg, planes, sats_per_plane and phasing_f. Each extra [[constellations]] block adds another one; --export-sp3 writes the result as an SP3 precise-ephemeris file for other tools.

        Two constellations in 3-D
      3. Choose the body

        Earth, the Moon, Mars and every other body of the solar-system run above have their gravity, rotation and pole in the engine, and the Sun's gravity enters as a third-body force. The body-pnt kind positions an orbiter or a lander around any of them; the lunar integrity scenario navigates against a representative LunaNet relay set, the Mars scenarios against a simulated relay constellation.

        MoonMars
      4. Sweep, compare and export

        Sweep one or two fields over a range, pin runs and compare them side by side, then export the run: a reproducible HTML report, the full JSON (JavaScript Object Notation) result, the scenario file and a CSV (comma-separated values) table.

        Exports and report

      One block, a different answer

      Recorded engine runs

      The same user orbit, well inside the GNSS shell, seen by a GPS-like Walker constellation alone, then with a Galileo-like one added as a second block. PDOP is the position dilution of precision: lower is better.

      Loading the recorded run…
      GPS-like + Galileo-likeOpen in Kshana Studio
      Loading the recorded run…

      Engine v0.35.0 · orbit-gnss-challenged.toml + orbit-multignss.toml · seed 7Report, first runReport, second run

      04Reference

      Every scenario, capability and standard.

      The whole catalogue, generated from the engine's own files: the scenario atlas, the capability cards and the standards the engine implements.

      New in v0.35.0

      On the bridge: trust, training and evidence.

      Score whether a vessel's navigation fix can be trusted, train a crew on it, map where reported positions look degraded, prove what the software said and put the answer where the crew already looks. Every capability carries the label the ledger holds for it, and a label names only what was checked. Advisory software, not type-approved navigation equipment: the operator stays responsible. Nothing here transmits or synthesises a radio waveform.

      Modelled

      Receiver-trust score for a vessel

      Scores whether a vessel's navigation fix can be trusted from the NMEA 0183 its receiver and instruments already emit: a 0-100 score, three bands and the reasons behind them, per epoch, in batch, live or as a gate.

      monitor arithmetic checked against pynmea2 and GeographicLib

      Read moreTrust view in Kshana Studio

      Validated

      Crew-training NMEA streams

      Writes synthetic bridge NMEA 0183 for a scripted voyage with instructor-scripted jamming, position drag-off, time-spoof and replay events, with an instructor log, so a crew can see what a degraded fix looks like on their own instruments.

      225,227 sentences parsed and decoded by pynmea2

      Read moreTraining debrief in Kshana Studio

      Validated

      Interference map and route exposure

      Builds a per-day GeoJSON map of where aircraft (ADS-B) and ships (AIS) reported degraded navigation data, from openly licensed inputs, and the share of a route that passes through degraded cells.

      code meanings and geometry checked against pyModeS, pyais, shapely and GeographicLib

      Read moreInterference map in Kshana Studio

      Validated

      Trust telemetry for security operations

      Exports the trust stream as Prometheus metrics, OpenTelemetry (OTLP/HTTP) and CEF or LEEF syslog events over stdout, HTTP, UDP or TCP, so a security operations centre sees a navigation fault next to its other alerts.

      Prometheus, OTLP and CEF read back by independent parsers

      Read more

      Validated

      Signed evidence packs

      Bundles the window around a trust event into a hash-chained, Ed25519-signed pack that anyone can verify offline: a changed, removed, swapped or added file, a re-signed pack or a wrong pinned key is named.

      RFC 8032 vectors byte for byte; a clean-room verifier agrees on 71 packs

      Read more

      Validated

      Test-bench export

      Writes a scenario's vehicle motion and events as a CSV trajectory and NMEA 0183 for a laboratory GNSS simulator: Earth-fixed, geodetic and local-velocity columns, attitude and UTC.

      conversions and encodings checked against PROJ, GeographicLib, pynmea2 and SciPy

      Read more

      Modelled

      Compliance mapping to public frameworks

      Maps Kshana outputs to the clauses of public frameworks (IMO guidance for ships, EU NIS2 Article 21, EN 16803, the US DHS resilient-PNT framework and EASA aviation guidance) by clause number only, filled from the runs you give it, and says which rows a set of runs supports evidence for, with each row's gap.

      Read more

      Validated

      Galileo OSNMA verification

      An open, pure-Rust receiver-side verifier for Galileo Open Service Navigation Message Authentication: it checks which satellites' navigation data a receiver can authenticate from I/NAV pages or a u-blox UBX stream, through the public-key, key-chain and tag checks of the signal-in-space specification, and reports authentication per satellite and per time.

      all 18 official test-vector sets: 186,382 tags authenticated, 0 failed

      Read more

      Modelled

      Signal K, OpenCPN and a reference build

      The trust score and its reasons on a boat's Signal K server and in an OpenCPN panel, and a pinned image that rebuilds the engine.

      Read more

      Every MCP install channel

      Prebuilt binaries for every operating system, the desktop assistant extension, one-click buttons for Cursor and VS Code, npx and uvx, Homebrew, Scoop and winget, the registries and a self-hosted HTTP mode.

      Read more

      13Scenario atlas
      Free core

      Every bundled scenario, on one map.

      All 139 scenario files across 75 kinds, grouped by domain; 132 are bundled into the engine, and celeste-iod-classical-pilot-signals, celeste-iod-end-to-end, celeste-iod-fused-pvt, leo-navmsg-celeste-iod, leo-pass-celeste-iod-multiband, lunar-llr-datum, quantum-pnt-demonstrator.suite run from the repository with the command line. The dot shows the ledger status of the kind's module where the ledger names it. A file with a recorded run opens it in Kshana Studio; the others open their entry in the scenario reference, with the file and the command that runs it.

      Integrity and ARAIM3

      Lunar and cislunar19

      cislunar-arc-recoverycislunar-arc-recoverycislunar-observabilitycislunar-observabilityearth-gnss-lunarearth-gnss-lunarlunar-integritylunanet-araimlunar-attack-surfacelunar-attack-surfacelunar-beaconlunar-beaconlunar-differential-pntlunar-differential-pntlunar-frame-campaignlunar-frame-campaignlunar-frame-realisationlunar-frame-realisationlunar-interop-exportlunar-interop-exportlunar-jamminglunar-jamminglunar-joint-od-clocklunar-joint-od-clocklunar-llr-datumlunar-llr-datumlunar-time-budgetlunar-time-budgetlunar-time-offsetlunar-time-offsetlunar-vlbilunar-vlbilunar-vlbi-fimlunar-vlbi-fimmoonlight-service-volumemoonlight-service-volumerealtime-frame-eoprealtime-frame-eop

      Quantum sensors and trade studies6

      conflict-resilienceconflict-resiliencequantum-anomaly-detectquantum-anomaly-detectquantum-gnss-free-navquantum-gnss-free-navquantum-time-transferquantum-time-transferquantum-tradequantum-tradesweep-ndsweep-nd-inertial
      • Pro: calibrated clock twin builds on clock, lunar-time-offset, timetransfer, quantum-time-transfer, lunar-time-budget, telecom-timing, slot-timing. See what it adds
      • Pro: ranked trade study builds on sweep, sweep-nd, combined-altpnt, quantum-trade, hybrid-optical-rf, conflict-resilience. See what it adds
      • Custom study builds on impairment-eval. See what it adds
      • Pro: design optimiser builds on constellation-design. See what it adds
      • Pro: uncertainty and sensitivity builds on clock, leo-pnt-chain. See what it adds
      • Pro: mission dossier builds on body-pnt, campaign, constellation-design, leo-pnt-chain, spectrum. See what it adds
      • Pro: campaign watch builds on campaign. See what it adds
      • Pro: spectrum coexistence builds on constellation-design, leo-signal. See what it adds

      Kind has validated ledger rowsKind's rows are ModelledNot matched to a ledger module by name