Engine v0.29.1 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 is not an RF (radio-frequency) signal simulator and not a GNSS (Global Navigation Satellite System) 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.29.1 · 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.29.1 · 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.

      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