struktura playground

The real Rust monitor (struktura guard), compiled to WebAssembly and running in your browser, next to a plain limit check on the same stream.

calibration (learned as healthy) where the stream changes struktura alarm limit-check alarm

struktura guard

…

limit check (1.5 × p95, 3 in a row)

…
seed
what this shows, and what it doesn't

Streams are synthetic: 2,000 samples, the change at sample 1,000, calibration on the first 768. They show the kind of change each method can see, not performance on a real system.

A limit check alarms when a value leaves a band learned from healthy data. It is fast when a fault makes values bigger, blind when a fault changes how values follow each other at the same spread, and it false-alarms on healthy signals that wander slowly.

In the correlation-change case struktura mostly alarms on its residual-CUSUM leg, not on DFA. With fewer than 768 calibration rows its level-shift leg raises more false alarms.

Same generator and seeds as examples/structure_vs_amplitude.rs, whose 30-seed numbers are checked in CI (claims.tsv).