Kshana Studio
Studio

Maritime trust

Can the bridge trust this fix?

Open a kshana receiver-trust run for a vessel. Kshana scores every position fix from 0 to 100 from what the receiver already puts on the bus, and says which checks reduced it. Files you open here are read in this page and never uploaded.

Advisory software. Kshana is not type-approved navigation equipment (IEC 61108, IEC 61162) and has not been assessed against any performance standard. The score and the gate are aids to the navigator's judgement. The operator stays responsible for the safe navigation of the vessel and for any decision to rely on, or stop relying on, a fix. A fix with no alarm is not thereby a good fix.

Open a run

Pick a result JSON (session.result.json) or the live JSON lines (--json trust.jsonl). A stream carries no position: add the NMEA log it came from to draw the track. A truth file (t_s,true_lat_deg,true_lon_deg) exists only for synthetic data and adds the true track.

or drop them here

Nothing open yet.

    Score an NMEA log here

    Run the engine in this browser on a vessel's NMEA 0183 log and see the result in the view below. The log is read in this page and never uploaded. It must be an excerpt of at most 2 MiB (about 20,000 epochs) and must hold the five-minute calibration window. The settings are the vessel's limits and the score's weights, as in a session file.

    Session settings (TOML)

    Starts from the demo's settings: edit the vessel's speed, acceleration and turn-rate limits to match yours. A settings file for your own vessel can be pasted here.

    Jammertest scorecard

    Open the scorecard kshana jammertest score writes: a receiver-trust run scored against the scheduled slots of a published test plan, per test (detected, late, missed, not evaluable) with latency and recovery, and the false alarms outside the slots. The slots are the plan's, not recorded on-air times, so every figure is MODELLED. The file is read here and never uploaded.

    No scorecard open.

    Generic receiver-trust run (not a vessel)

    For a fixed or unspecified receiver, kshana receiver-trust checks a GNSS log against its own calibration window and says when it stopped looking like itself. It gives states and alarms, not the 0 to 100 vessel score. Run the illustrative example (a made-up log with a jammer from 120 s to 240 s) or your own NMEA log under the same settings. The log is read here and never uploaded.

    Advisory software. Not type-approved navigation equipment. An alarm is an observation about the log, not a finding about the cause, and no alarm is not a guarantee that a fix is good.

    The format is guessed from the file name; change it here when it is wrong, then assess again. NovAtel OEM7, RTCM 3 and Septentrio SBF are binary formats; they are sent to the engine as they are, in this browser.

    IMU file (optional): a second sensor for the heading

    An IMU log on the receiver log's clock fills the heading the heading-versus-course monitor reads wherever the receiver log carries none. Only a vessel session uses it.

    No IMU file.

    Session settings (TOML, the log is supplied inline)

    What this view does and does not show

    • The demo is synthetic text: a made-up NMEA log of a ferry on an illustrative Tallinn to Helsinki route, with a made-up position drag-off partway through. It models no radio signal and is not a measurement or a chart.
    • In the demo the receiver reports a valid fix throughout (GGA quality 1, RMC status A). The trust score is what falls. The gap between the reported and the true track is the point of the view.
    • NMEA-only checks cannot see a spoofer that reproduces the whole constellation with a self-consistent position, velocity, heading, power and clock, nor a replay of recorded real signals. A fix with no alarm is not thereby a good fix.
    • Geometry (runs from engine 0.36): a deduction classed as geometry is a statement about the sky the log reports, not a finding that no attack occurred. A spoofer can fake a poor sky; a stated HDOP the reported sky does not explain is therefore classed as inconsistency, never as geometry. "Geometry unknown" means the log has no GSV or GSA; it is not a good sky.
    • Nothing on this page is a measure of how the checks perform on real interference. The score mapping and every weight are fixed before a log is scored, with no learning and nothing fitted to events.