Freezing of gait (FOG) — a Parkinson's symptom where the feet briefly feel "glued" to the floor and the legs tremble in place (3–8 Hz) instead of stepping; a major cause of falls and lost independence.
Nothing here is a black box. The freeze metric is the published Freeze Index (Moore et al. 2008; Bächlin et al. 2010) — a deterministic spectral ratio, traceable from raw signal to result:
threshold — drag the slider above and watch detection respond. The rule is visible and tunable; that is the Glass Box principle.Deterministic, seeded synthetic signal — identical every run. Illustrates the measurement pipeline, not any individual.
How a shared pattern is anonymized — the same pipeline as halfmarble's full data policy, applied to this session's actual summary (the numbers shown in the Session panel above):
halfmarble is the steward of your data, not its owner. The ankle hub senses movement; over time a gait pattern can be identifying, so we treat it as sensitive health data — not analytics exhaust. By default it stays on your device.
| Signal | On Device | Shared (opt-in) | How |
|---|---|---|---|
| Raw acceleration (50 Hz) | YES | NEVER | Raw motion never leaves the device; the Freeze Index is computed on-device |
| Cadence | YES | BINNED | Step-rate bands (e.g., 110–120/min), never an exact trace |
| Postural sway | YES | BINNED | Low-frequency band power, aggregated |
| Freeze Index | YES | AGGREGATE | Contributes only to a DP-protected aggregate |
| Freeze episodes | YES | BINNED | Binned count / duration, DP-protected aggregate |
| Time of day | YES | BINNED | 2-hour bins (e.g., "2–4 PM"), never exact timestamps |
| Identity / device ID | NO | NEVER | Not collected; shared patterns are never linked back to you |
By default, nothing leaves your device. Computation runs on-device, and your raw motion is never required to leave it. Sharing is strictly opt-in, per category, and is never a condition of using halfmarble. If an individual pattern is too unique to be protected, it is never shared.
Differential privacy, under one budgeted total budget. Anything you do choose to share contributes only to aggregates protected by differential privacy — a formal, mathematically provable bound on how much any single person's data can affect a shared result — computed on-device or via federated analytics wherever possible. We hold to a single budgeted total privacy budget (ε) accounted across every release we ever make — not a fresh budget per query. Grouping similar patterns together is one step inside that mechanism, never a standalone promise on its own.
Measurement under the FDA 2019 General Wellness policy — not a medical device, not for diagnosis. · Full data policy: halfmarble.com/glass-box/data.html
The Freeze Index shown above is not our invention — it is a published, peer-reviewed method, implemented here exactly as described. Nothing in the detector is hidden; here is the literature it is built on.
01 defines the Freeze Index — power(3–8 Hz) ÷ power(0.5–3 Hz) — the exact metric computed above. 02 adds the power gate that rejects standing still, validated on a wearable patient cohort. 03 is the community machine-learning contest that advanced accelerometer FOG detection.