Struktura is a deterministic instrument for machine and spacecraft health: it watches a time series' own statistical structure (DFA / Hurst exponent) and flags the moment that structure starts to break down, before a threshold-based alarm would. No training, no black box, one number and its trend. Same method, validated across bearings, cardiac signals, DNA — and real NASA telemetry.
Most anomaly detection is domain-specific: a model trained on bearings doesn't transfer to spacecraft telemetry, and a model trained on spacecraft telemetry doesn't transfer to a heartbeat. Struktura instead measures something structural — the DFA scaling exponent α, a Hurst-family statistic that tracks how self-similar a signal's fluctuations are. Healthy systems tend to hold a stable α; failure shows up as a shift in α before it shows up as an out-of-range reading.
Rust, zero dependencies, no_std-compatible. Sliding-window DFA with a baseline tracker, CLI (demo/check/compare/bench), C FFI for any language, and codegen that turns one DFA spec into a complete monitor for three different flight-software ecosystems.
struktura generate --cfs / --fprime / --ros emits a complete cFS app, fprime component, or ROS 2 node from the same anomaly spec.struktura.h + a static lib — callable from C/C++ flight software directly, not just Rust.No synthetic anomalies. Voyager 1 magnetometer data is public via NASA SPDF; bearing data is the standard CWRU public benchmark. Same binary, same command, four domains.
| Domain | Normal α | Anomaly α | Shift | Verdict |
|---|---|---|---|---|
| Voyager 1 AACS (real NASA SPDF data) | 0.875 | 0.827 | −0.048 | WATCH |
| Bearing (CWRU, inner-race fault) | 0.738 | 0.217 | −0.522 | CRITICAL |
| Cardiac (normal vs. arrhythmic) | 0.695 | 0.483 | −0.212 | structure destroyed |
| Genome (8 chromosomes) | — | — | — | all R² > 0.99 |
Honest reading: α is a structural signature, not a labeled fault classifier — the CRITICAL/WATCH tiers above come from the size of the shift, calibrated per dataset, not from a universal threshold. The Voyager 1 case is the hardest one deliberately shown: a real, ambiguous, in-progress anomaly window on a 46-year-old spacecraft, not a clean textbook fault.
This is an independent contributor's engagement with NASA's public open-source flight-software repos — real commits and real conversation with NASA engineers, reported here exactly as merged or open, nothing rounded up.
| Repo | What | Status |
|---|---|---|
| nasa/fprime | PR #5556 · FileDownlink buffer fix | merged |
| nasa/fprime | PRs #5760–#5771 · bug fixes, defense-in-depth | open, in review |
| nasa/ogma | PR #552 · mergeSpecs data-loss fix | open, awaiting review |
| nasa/ogma | Discussion #557 · DFA custom-codegen template | open |
| nasa/cFS | Proposal #1096 · Structural Health app | open, NASA feedback received |
The crate is public, documented, and free. If you maintain flight software, industrial sensors, or any long-running system with a telemetry stream, the fastest test is your own data.