Guardian simulator results

Generated by tools/guardian_sim.py from 40 seeded runs per scenario and design (Python 3.10.12, Linux). The simulator is kinematic and its parameters are illustrative round numbers; the design and evaluation explains each design and what the numbers mean.

Guardians kept clear of every threat

Share of runs in which every airborne guardian stayed outside the 75 m safe radius of every real threat.

Scenario Station only Onboard only Networked Hybrid
intruder 88% 100% 100% 100%
fast_inbound 0% 0% 10% 10%
swarm 55% 100% 100% 100%
birds — — — —
jamming 65% 100% 68% 100%
spoofing — — — —
center_loss 90% 100% 100% 100%
combined 65% 98% 88% 100%

Warning before arrival

Median seconds from the station's RED alert to the threat entering the 100 m protected zone (or its closest approach, if the station moved out of the way); 10th to 90th percentile in brackets.

Scenario Station only Onboard only Networked Hybrid
intruder 1 (0–6) 0 (0–5) 77 (56–96) 75 (56–96)
fast_inbound 0 (0–0) 0 (0–0) 3 (2–4) 3 (2–4)
swarm 1 (0–3) 0 (0–2) 73 (54–85) 73 (54–85)
birds — — — —
jamming 1 (0–5) 0 (0–3) 28 (23–32) 33 (29–59)
spoofing — — — —
center_loss 1 (0–5) 0 (0–4) 74 (61–90) 74 (61–90)
combined 0 (0–1) 0 (0–1) 59 (32–86) 54 (38–85)

Other measures

Measure Station only Onboard only Networked Hybrid
False RED alerts, birds scenario (total) 0 0 0 0
False RED alerts, spoofing scenario (total) 1 2 2 0
Jammed picket acts alone (median s) — — — 2.8
GNSS drag-off detected (median s) — — — 38
Spoofed picket drift (median m) 609 609 609 65
Center could decide in time, low intruder 0% 0% 100% 100%
Healthy guardian flagged as spoofed, all scenarios (total) 0 0 0 0
Worst navigation error of a healthy guardian, all scenarios (m) 0 0 0 0
Runs where a move brought a guardian nearer a real threat, judged on truth 2 18 22 22

Both invariants held in 1280 of 1280 runs (100.0%). First: every keep-clear or dispersal decision, new or kept, opened the range along its whole path to every relevant slow track it was based on (not a bird, predicted to pass within twice the clear radius inside twice the planning horizon), and shortened no steady fast object's predicted miss. Second: no layer took an action outside its authority. Both are properties of the decisions, checked in every run. The row above measures the same thing on truth instead: a run counts if some move brought a guardian more than 25 m nearer a real slow threat that a track was on and that truly passed within the clear radius inside the planning horizon, or shortened a real fast object's true miss by more than 25 m. These come from straight-line predictions of weaving threats at long range; whether any guardian lost its safe radius is what the first table shows.

Layout experiment (hybrid design)

Layout Low intruder warning (s) Fast inbound kept clear Fast inbound warning (s) Swarm warning (s)
baseline: Pickets 900 m out; overwatch hovering over the station. 75 10% 2.9 73
offset overwatch: Overwatch moved 250 m off the station it watches. 77 90% 2.9 73
wide pickets: Pickets 1500 m out instead of 900 m. 103 15% 3.4 100

Reproduce

python3 tools/guardian_sim.py --seeds 40 --workers 8 --output artifacts/guardian

The report records the SHA-256 of tools/guardian.py and tools/guardian_sim.py; a test fails if either changes without regenerating it.