Radar fall detection for senior living
Sensitivity was never the bottleneck. Vigil is the intelligence layer between a radar sensor and the nurse-call system: a five-stage cascade that returns ALERT, SUPPRESS, or ROUTE TO HUMAN and logs the feature value behind every one of those decisions. What you can watch here is a runnable demo over a synthetic radar feature stream, not a deployment.
0 vs 7
false alarms on the demo shift
Engine against the naive baseline, one seeded synthetic shift
1.0 vs 0.167
confounder specificity
Fixed 360-event synthetic golden set, not production accuracy
1 of 2
real falls alerted
The second, a multi-occupancy space, was routed to a staff check
The walkthrough replays one seeded synthetic night shift in a memory-care wing. No live radar hardware, no real facility, no residents, no PHI.
Alarm fatigue is the leading reason fall-detection deployments fail. A Director of Nursing choosing between an unmonitored bathroom and a panel that fires on the ceiling fan is choosing between two ways of missing a fall with injury, which averages about $30,000.
It is the highest-risk space and the one place a camera is not a usable option. Nineteen US states have enacted laws governing cameras in nursing-home rooms, generally permitting them in a resident's room with consent, while bathrooms remain excluded in practice on privacy grounds.
Half of elderly people who lie on the floor for over an hour die within six months. A fall found on the 4 AM round is a different clinical event from one dispatched while the resident is still on the floor.
Off-the-shelf motion sensors and bed mats run at 5 to 15 false alarms per room per day. What they cannot do is tell a hard sit onto a toilet from a fall, so night staff mute the panel and the system detects nothing at all.
Vigil runs its cascade over a per-frame radar feature stream and hands the result to a policy gate that sits outside every model. Models advise, code decides: the deterministic narrative conditions have to hold first, and only then is the classifier's confidence consulted, against a fixed floor the model does not set. A model can never manufacture an alert on its own.
01 / FEATURE EXTRACTION
From the synthetic radar feature stream the engine derives descent kinematics (start height, peak velocity, final centroid height), a broadband-energy impact marker, post-impact motion residual, breathing-band energy, and a radar cross-section and aspect-ratio proxy for target class. No image and no video exist at any point in the pipeline.
02 / PER-ROOM CLUTTER MAP
Each space carries its own map. What this build consumes are the fixed-location Doppler masks for ceiling-fan and window-AC entries, masked at their known voxel. Per-room seat and bed heights sit in the room file as calibration data but are not read by any V1 code path, which is a fair picture of how much of per-room calibration is still integration work.
03 / DUAL-STREAM CLASSIFIER
A learned logistic model reads exactly four features (floor proximity, impact energy, descent drop, and radar cross-section) and fuses them into a calibrated P(fall). The fusion step is numpy you can read end to end. The production swap to a CNN, PointNet and attention fusion is documented, and the feature semantics do not change under it.
04 / TEMPORAL NARRATIVE VERIFIER
Deterministic code requires all four to hold inside the same 8-second window, with standing established in its opening fifth: a median centroid above 1.2 m, a descent of more than 0.6 m together with a peak velocity above 1.8 m/s, a sustained broadband impact (a 3-frame rolling mean above 0.50, so a single-frame spike cannot satisfy it), and a centroid that actually reaches floor level below 0.30 m.
05 / DETERMINISTIC POLICY GATE
The decision path outside every model is plain code with fixed, documented thresholds: floor level below 0.30 m, a breathing floor of 0.20, and a fall-confidence floor of 0.70. The gate emits ALERT, SUPPRESS or ROUTE TO HUMAN and arms the escalation ladder (CNA at 0 s, Charge Nurse at 90 s, DON at 180 s). A separate hardcoded confidence threshold in the gate sends a multi-occupancy event to a human check.
06 / DISPATCH AND EVIDENCE
The adapter emits a legacy Rauland dry-contact relay signal (opto-isolated, UL 1069/2560 isolation maintained) and a modern Ascom or Austco MQTT and REST JSON payload. It is a logged adapter stub, not connected hardware. The shift audit JSON covers every alert, route and suppression with its deciding feature; a clinical incident note is composed separately from that structured evidence.
The demo replays a memory-care wing from 02:00 to 06:00 across twelve monitored spaces, scoring the cascade beside a naive incumbent baseline that treats any fast or low motion as a fall. All twelve events are synthetic, labeled, physically grounded scenarios on a fixed seed, and the twelve tiles are twelve events, two of which revisit a space already on the grid, so ten distinct spaces in all. The dashboard grid and the Decision Ledger label those spaces Cam 1 through Cam 12; the underlying room ids appear only in the incident detail, the dispatch payload and the audit record.


Cam 2 is a real fall in the ground truth, and P(fall) reaches 0.99. The space holds two targets, and single-person tracking is outside V1 coverage, so the gate returns ROUTE TO HUMAN at low confidence and does not assert a fall. The naive baseline auto-fires on it. Two real falls occurred in this shift: one alerted, one routed to a staff check. In the fixed benchmark, 40 of 40 multi-occupancy falls route the same way, with no over-alerts and none missed.


The cascade and the naive baseline both score 1.0 fall sensitivity on a fixed set of 360 labeled, noisy synthetic events. What separates them is confounder specificity: 1.0 for the cascade against the baseline's 0.167. The fusion weights were fit on the demo's own scenario generators, the same generators that produce that golden set, which is the first objection a technical reader should raise. The separation is still earned rather than planted: each confounder is generated to overlap a real fall on individual features, which is exactly why the naive detector is genuinely fooled.
| Question | What Vigil does in this demo | What remains outside the demo |
|---|---|---|
| Confounder rejection | Runs the five-stage cascade and logs the deciding feature value for each of the ten suppressions on the shift. | Tuning against a facility's own clutter, gait patterns and furniture, which is per-room calibration work. |
| Multi-occupancy spaces | Routes to a human check at low confidence rather than asserting a fall, 40 of 40 in the fixed benchmark. | Single-person tracking and multi-occupancy disambiguation, deferred to a later version. |
| Survey and QAPI evidence | Exports a shift audit JSON with every alert, route and suppression, its deciding feature values and its policy reason. | Any write into an EHR or MDS record, and any interactive query interface over the audit. |
| Nurse-call dispatch | Emits both a Rauland dry-contact signal and an Ascom or Austco MQTT and REST payload, logged. | Connected nurse-call hardware, live commissioning, and certification of the deployed path. |
It does not use live radar hardware, real 60 GHz chirps, or a deployed sensor: the RF front end is a synthetic feature stream. The nurse-call path is a logged adapter stub with nothing attached. There is no EHR or MDS write of any kind, and no interactive natural-language query over the audit. Predictive gait analytics, Wi-Fi sensing for common areas, multi-occupancy disambiguation and the edge port to embedded silicon are all future work. The memory-care wing, its spaces, its events and the therapy dog are synthetic; there are no residents, no customer, no pilot and no PHI. Vigil is not a medical device and carries no FDA clearance, no 510(k), no clinical validation and no CMS or UL certification of itself; the adapter maintains UL 1069/2560 isolation on the dispatch path. Nothing here replaces staff, clinical judgment or a physician's assessment.
Nobody can answer that honestly from a demo, so judge the assumption behind the number. The 0.0 per room per day figure assumes 30 benign motion triggers per room per day, which is above the 5 to 15 per room per day the literature reports for incumbent sensors, and it comes off a fixed synthetic golden set rather than off a real ward. A real pilot targets under 2 false alarms per room per day after shadow-mode calibration, and that is the number to hold us to.
Radar features carry no image and no video at any point, so there is nothing recognizable to capture, and that is what makes the space reachable. 19 US states have enacted camera laws covering nursing-home rooms, which generally permit a camera in a resident's room with consent and leave bathrooms excluded in practice on privacy grounds. Any deployment still needs your own privacy review and resident consent process.
No. Two real falls occurred on the demo shift. The engine alerted on the Cam 3 bathroom long-lie at 0.99 confidence and routed the Cam 2 event to a staff check at low confidence, because that space held two targets and single-person tracking is outside V1 coverage. A confident fall assertion on a two-target scene is exactly the error that teaches night staff to stop believing the panel, so the ambiguity goes to a person instead.
The exported shift audit JSON carries every alert, route and suppression with its deciding feature values and policy reason, under top-level keys engine, facility, shift, metrics, events and _note. The clinical incident note is composed separately from that structured evidence for a QAPI binder or CMS F689 file and is not inside the export. One detail worth knowing before you hand it to anyone: the export stamps its internal build name on the engine field, not the product name.
No. A model can never manufacture an alert on its own. The deterministic narrative conditions, standing, descent, sustained impact and floor level, must all hold inside the same 8-second window before the classifier's P(fall) is consulted at all, and it is then checked against a fixed 0.70 floor the model does not set. A lower confidence can still turn an alert into a suppression, so the model constrains the decision downward and never upward.
The dispatch adapter emits both shapes, so it can sit in front of either generation of nurse-call system: a legacy Rauland dry-contact relay signal, opto-isolated with UL 1069/2560 isolation maintained, and a modern Ascom or Austco MQTT and REST JSON payload. In this demo it is a logged adapter stub with no nurse-call hardware attached. Vigil is the layer between the sensor and the system you already run, not a replacement for either.
The research behind this demo — the architecture, the verification design, and the enterprise blueprint.
Full solution
Explore the Smart Facility Fall Detection solution →We do not sell sensors. We build the intelligence layer that makes sensors useful, and we built it for senior-living operators and clinical technology teams who already know that catching the fall is the easy half.
With 63% of facilities reporting short staffing, a panel that cries wolf is the first thing a night shift turns off. A useful first conversation covers your floor plan's fixed clutter, the rooms that go unwatched now, and what your last state survey actually asked you to produce. We can work through the calibration and the shadow-mode plan alongside your clinical team.