UnSteadyRing — Ankle Hub · simulated readout

Streaming gait & freezing-of-gait detection · halfmarble Glass Box
● Simulated data — illustrative

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.

Freeze Index threshold: 1.6
— READY —
press play
t
0.0 s
Freeze Index
0.0
Dominant freq
— Hz
Live ankle acceleration
streaming · last 10 s · 50 Hz
acceleration (g) freeze now
Session Freeze Index
power(3–8 Hz) ÷ power(0.5–3 Hz), 4 s window · fills as it plays
freeze index threshold detected freeze
Cadence (walking)
114 /min
Freeze episodes
0
Time frozen
0.0 s
% frozen
0%
Peak freeze index
0.0
How this is computed — the Glass Box

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:

FI(t) =  Σ power[3–8 Hz]  ÷  Σ power[0.5–3 Hz]
  • The locomotor band (0.5–3 Hz) holds normal stepping; the freeze band (3–8 Hz) holds the trembling-in-place that defines a freezing episode.
  • When stepping collapses and trembling rises, the ratio crosses the threshold — drag the slider above and watch detection respond. The rule is visible and tunable; that is the Glass Box principle.
  • A power gate rejects "standing still" so quiet rest is not mistaken for a freeze (Bächlin's Power Index).

Deterministic, seeded synthetic signal — identical every run. Illustrates the measurement pipeline, not any individual.

Your data

what the ankle hub senses · what happens to it

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):

1Raw (on device)
"ankle accel @ 50 Hz · 2 freeze episodes · peak FI 11.0 · 9.8 s frozen (16%) · cadence 114/min · + device id + timestamp"
2Identifiers stripped
"2 freeze episodes · peak FI 11.0 · 9.8 s frozen · cadence 114/min · time-of-day only"
3Binned
"afternoon bin · 1–3 episodes · peak-FI band 8–12 · frozen 5–15 s · cadence 110–120/min"
4Aggregated with others (DP)
"afternoon bin · illustrative cohort (n≈1,200) · median peak FI 4.1 · median 0.14 of session frozen · ε-budgeted"

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.

SignalOn DeviceShared (opt-in)How
Raw acceleration (50 Hz)YESNEVERRaw motion never leaves the device; the Freeze Index is computed on-device
CadenceYESBINNEDStep-rate bands (e.g., 110–120/min), never an exact trace
Postural swayYESBINNEDLow-frequency band power, aggregated
Freeze IndexYESAGGREGATEContributes only to a DP-protected aggregate
Freeze episodesYESBINNEDBinned count / duration, DP-protected aggregate
Time of dayYESBINNED2-hour bins (e.g., "2–4 PM"), never exact timestamps
Identity / device IDNONEVERNot 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.

×We willneversell your data, or share it with insurers, employers, or advertisers.
×We willneverlet a raw motion trace leave your device.
×We willneverlink a shared pattern back to your identity.
×We willnevershare data without your explicit per-category consent.
×We willnevermake opt-in a requirement for using halfmarble.

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 science

the papers we used to verify the method

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.

Foundational papers
01 Ambulatory monitoring of freezing of gait in Parkinson's disease Moore, MacDougall & Ondo — J. Neuroscience Methods, 2008
02 Wearable assistant for Parkinson's disease patients with the freezing of gait symptom Bächlin et al. — IEEE Trans. Info. Tech. Biomedicine, 2010
03 A machine learning contest enhances automated freezing-of-gait detection and reveals time-of-day effects Salomon et al. — Nature Communications, 2024

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.