3D Map Explorer's C-UAS module ingests radar tracks pushed to a webhook, runs a conservative, rule-based threat assessment against your protected assets, and correlates each detection against live Remote ID — so a drone broadcasting a friendly ID is de-escalated, not engaged. False "hostile" is costly; the classifier is deliberately conservative.
There is no poll loop. The realistic Phase-1 detection source is an external radar pushing tracks to POST /api/cuas/radar, so the service is event-driven: each ingested detection is assessed, correlated against Remote ID, folded into the threat store, and fanned out over SSE.
// radar pushes a track { "lat": 34.05, "lon": -118.25, "type": "FixedWing", "speedKt": 55 } → assessed + correlated + fanned out { "id": "R-1042", "threat": "Hostile", "correlatedRemoteId": null } // → correlated Remote ID would de-escalate to Friendly
A false "Friendly" lets a real threat through; a false "Hostile" triggers a costly response. The classifier is tuned to avoid crying wolf — type, speed, and asset-proximity drive escalation, and a Remote ID correlation is the strongest de-escalator.
FixedWing escalates faster than consumer quadcopters — type inferred from the radar track.
Detections inside a protected-asset zone escalate; consumer types stay Suspect there.
A correlated broadcasting Remote ID track de-escalates the detection toward Friendly.
Each detection persisted, ordered by threat then id for the operator's track table.
Live detections streamed to subscribers; never blocks the ingest path.
POST /api/cuas/detections/test for drills and demonstrations.
| Capability | Endpoint | Notes |
|---|---|---|
| Capability discovery | GET /api/cuas/capabilities | Ingest + Remote ID correlation health |
| Radar ingest (webhook) | POST /api/cuas/radar | External radar PUSHES tracks here |
| Detections | GET /api/cuas/detections | Threat-ordered track table (?staleSec) |
| Live detections (SSE) | GET /api/cuas/events | Real-time fan-out |
| Clear detections | POST /api/cuas/detections/clear | Reset the threat store |
| List / add assets | GET · POST /api/cuas/assets | Protected-asset zones |
| Delete asset | DELETE /api/cuas/assets/{id} | |
| Test detection | POST /api/cuas/detections/test | Drill / demo injector |
Ingest + correlation reflect CuasService + CuasAssetStore on commit e79bb88b9 (feat/c-uas-detection). Phase-1 detection source is radar PUSH; RF-based C-UAS detection (protocol fingerprinting, RF geolocation) is a Phase-2 item. Remote ID de-escalation assumes cooperation — a spoofed ID is not modeled.
Radar-webhook ingest, conservative threat assessment, protected-asset zones, and Remote ID de-escalation — the C-UAS picture with the friendly fire filtered out.