The approved checks run on recorded or live telemetry.
A deterministic engine evaluates every rule, with no AI in the path. Failures fold into episodes on the mission-time axis: 869 rule spans became 9 episodes on this stretch of ESA's archive.
Steriod turns your specifications into checks your engineers approve, runs them on recorded or live telemetry, and explains every alarm with the channels, commands and requirements behind it. It sits on top of your EGSE, test benches or mission control, on your premises.
The same approved checks run in every offer, so the rule that passed on the bench is the rule that watches in orbit.
Satellite, subsystem and propulsion builders
"More units every year, the same test team."
Requirement-traceable test evidence for every unit and every campaign, from the recordings your checkout system already produces. The same checks carry over to operations at launch.
Evidence for every unit →
Satellite operators and control centres
"Too many false alarms, too few operators."
A second, explainable opinion behind your mission control: one alarm per event, the channels involved, the commands that preceded it, and the document behind every limit.
Fewer, better alarms →
EGSE, test-bench and ground-software vendors
"The same limit check, written three times."
One rule set from the test rig to the ground segment: a deterministic C99 runtime you embed in your controller or product, with verdicts identical to the server.
One rule set everywhere →Real screens from the product: an AOCS and power demonstration mission built from specification documents, and ESA's public Mission 1 archive (ESA Anomaly Dataset: ESA/ESOC, Airbus DS, KP Labs, CC-BY 4.0). Click any screenshot to enlarge it. Or watch the five-minute demo first: a live thruster failure caught, explained and fixed through YAMCS.
Specifications, ICDs and the mission database become a map of your spacecraft: subsystems, components, signals and the rules that check them. No re-modelling of your system in our tool.
Two documents give the same reaction-wheel temperature different limits. Steriod shows both clauses side by side; an engineer records the decision and a rationale. Every rule drafted afterwards cites that decision, and the auditor reads it.
Each drafted rule sits next to the clause it came from, in a language a requirement owner can read. Approve, edit, or reject with a note that the next draft reads. Approval is a human-only action: no agent, tool or API can approve.
48 documented requirements: 45 covered by a check, 3 gaps, 1 that cannot be verified from telemetry at all, and 1 open conflict between sources. Coverage you can show a review board, starting from 0 %.
The AI reads, drafts and investigates. A deterministic engine executes. People decide.
Documents, mission database, recorded runs or a live feed. Read-only.
Rules drafted from the documents; operating envelopes mined from your archive, without labels.
An engineer reviews each rule next to its source and arms it. Every change is audited.
Same verdict on a laptop, the server and the embedded C runtime.
Episodes, investigations, coverage and per-run evidence your process can cite.
Operators, primes and defence programmes need to know why a verdict was given, six months later, inside their own perimeter. That is the design brief.
No agent, tool or API can approve a rule or silence an alarm. A person signs, and the audit trail records who and when.
Pass and fail come from a deterministic engine. The LLM drafts, investigates and narrates; every number it cites was computed by the engine.
One node with Docker Compose and an offline bundle. Language models run on your hardware or a European cloud, your choice.
Steriod consumes decoded parameters behind your mission control or EGSE. It never sends a command.
The same rules on the same recording give the same verdict, byte for byte, on every runtime.
Every step is a REST endpoint, a command-line tool and an MCP tool for your scripts and agents. There is deliberately no "approve" tool.
What Steriod is not: a mission-control system, a checkout system, a packet decoder, flight software or onboard FDIR. It sits on top of yours.
The compiler and runtime run in WebAssembly: no install, no account. Write a check, script a test scenario, and watch the signal timelines and verdicts side by side.
Open the Playground// AOC-T-1, from the AOCS requirements export
rule $"pointing error within limit in imaging mode" is
WHEN attitude_mode = IMAGING FOR 8 seconds
THEN pointing_error_deg <= 0.020
Two spacecraft, 1.39 billion samples, ESA's own scoring code: what we found, what we got wrong, and why a human signature matters.
Read the case study →A candid tour of what works today and what we are building next.
Read the post →We install one node on your premises, import your documents and data, and hand you approved rules, evidence and reports in six weeks. They stay yours, whatever you decide. Or book a meeting with us at Space Tech Expo Europe in Bremen, 17–19 November 2026.