VertiBand is a closed-loop guidance system for the Epley maneuver. It verifies each positional stage against a reference trajectory from a head-mounted 9-axis IMU sampling at 100 Hz, cues the patient adaptively, and emits a structured session log suitable for chart review or population analysis.
Sensor orientation is resolved by a complementary filter over the gyroscope + accelerometer pair, cross-validated against a reference inclinometer across self-trials. End-to-end latency from pose change to audio cue is below 80 ms.
Each Epley stage unlocks only when head orientation is within ±15° of the target pose and sustained for the configured hold time (default 30 s). Nystagmus band-power (1–3 Hz) is estimated from the yaw-rate spectrum during each hold and logged as a per-stage biomarker.
A post-session VertiScore combines alignment latency, hold compliance, angular stability, precision, and end-of-hold drift into an interpretable 0–100 composite. A recovery-probability estimator maps the feature set to a calibrated probability of resolution.
At the end of each session, Gemini 2.5 generates a plain-language clinical note from the structured log. Here is a real sample from a right-sided session at VertiScore 84, Grade B, 20% predicted resolution.
Every session produces a JSON document conforming to the following shape. All angles in degrees, times in seconds, timestamps ISO-8601.
// session.schema.json { "session_id": "20260418-0703-right", "side": "right", "start_time": "2026-04-18T07:03:22-05:00", "end_time": "2026-04-18T07:06:04-05:00", "device": { "model": "VertiBand V-01", "firmware": "1.3.2" }, "baseline_gyro_noise": { "band_power_1_3hz": 0.041, "noise_floor_deg_s": 0.18 }, "steps": [ { "name": "step1", "description": "Turn head 45° right", "target": { "pitch": 0, "roll": 0, "yaw": 45 }, "hold_target_s": 30, "align_time_s": 1.52, "hold_actual_s": 30.0, "sway": { "sway_area_deg2": 6.8, "path_length_deg": 41.2, "mean_velocity_deg_s": 1.37, "rms_gyro_deg_s": 5.7, "f50_hz": 1.2, "f95_hz": 3.6, "drift_deg": 2.0, "aligned_fraction": 0.92 }, "events": [ { "t": 2.1, "kind": "nystagmus", "detail": "ratio=6.4" } ] } // ...steps 2–5 ], "vertiscore": 84.3, "grade": "B", "recovery_probability": 0.20, "nystagmus_peak_ratio": 94.2, "ai_summary": "Patient completed right Epley..." }
Sessions are exportable as JSON or as a flat CSV of sway metrics for population analysis. A simple HTTP endpoint can POST to any EMR configured to accept custom observations. The device stores the last 20 sessions on-band; sync is opt-in and revocable.
For research partnerships or early-access evaluation, contact clinicians@vertiband.com.