# Norysr v0.1 contract summary

**Revision:** 03 (September 2026)
**Project state:** controlled specification v0.1 and a log-only software scaffold; no completed prototype, no trained gait model, no hardware selected
**Initial intended population (provisional):** ambulatory children aged 6 to 17 with unilateral spastic cerebral palsy and foot drop, GMFCS I to II, supervised indoor level walking
**Evidence status:** citation verification in progress; no Norysr device or participant result exists

This file summarizes the project's controlling build contract for benchtop planning. It is not a prescription, a safe-use envelope, a regulatory determination, or a report of measured device performance. Requirement states: **Locked** (implement and verify now), **Provisional** (current internal target; clinical or regulatory review may change it), **TBD-gated** (no value is invented; named approval required), **Excluded** (not part of v0.1).

The earlier public research paper remains withdrawn after release review found citation identifiers that resolved to unrelated works. Literature values are never promoted to requirements automatically.

## System concept

`calibrated distal-shank IMU -> timestamp and validity checks -> causal preprocessing -> Model 1 probabilities and rule-baseline events -> deterministic supervisor -> disabled output or simulator -> append-only audit log`

- Surface electrodes only for the initial concept; the learned model never chooses current, pulse width, frequency, waveform, ramp, duration or electrode placement.
- The hot path is local and causal; no cloud dependency is permitted for real-time inference.
- Output is log-only or simulated through the shadow stages; no energized driver exists in the default build.

## Sensing

| Item | Value | State |
|---|---|---|
| Sensor | One 6-axis inertial sensor on the affected distal shank | Locked |
| Sampling | 100 Hz nominal, one prediction per accepted frame | Locked |
| Units and frame | m/s2 and rad/s in a calibrated affected-shank frame recorded in the session manifest | Locked |
| Surface EMG | Later collection and ablation only | Excluded as a v0.1 dependency |
| Model adaptation | No online weight or threshold learning | Locked |

## Model 1 contract

| Item | Value | State |
|---|---|---|
| Input tensor | 32 most recent frames x 6 channels (ax, ay, az, gx, gy, gz); nominal 310 ms span; no look-ahead | Locked |
| Outputs | probability of toe-off within 80 ms, probability of heel strike within 80 ms, probability of stance now (auxiliary) | Locked; the 80 ms horizon is a versioned first-experiment choice |
| Architecture | causal temporal convolutional network: stem Conv1D(6 to 16, kernel 2), four 16-channel residual depthwise-separable blocks at dilations 1, 2, 4, 8, linear head 16 to 3 | Locked reference; 1,603 trainable parameters, 32-frame receptive field |
| Calibration | bound probability-calibration transform fitted on validation participants only | Locked |
| Target format | signed INT8 weights and activations with artifact-owned quantization | Provisional |
| Comparator | `RuleBaselineV1`, a causal angular-velocity gait-event state machine; ML is adopted only if it passes every absolute gate and the paired baseline gates | Locked policy |

## Supervisor and safety

- Safe, default, reboot and brownout state is no output; stale, invalid, low-quality or out-of-scope input inhibits.
- States: `BOOT_SAFE`, `NOT_READY`, `STANCE_TRACKING`, `PRE_SWING_ARMED`, `ASSIST_WINDOW`, `TERMINATING`, `FAULT_TERMINATING`, `SWING_TRACKING`, `FAULT_LATCHED`; every state and input combination has an explicit row; a missing row faults.
- Invalid decoded or supervisor transitions: zero, at every stage (Locked).
- Model, thresholds and configuration are content-identified; an authenticated release manifest is required before shadow-target work.
- The earlier stimulation frequency, pulse-width, amplitude, ramp, burst, refractory, charge-cap and gait-window values are **not** controlling requirements. Electrical design inputs are TBD-gated to qualified electrical, clinical, safety and regulatory owners.

## Provisional acceptance gates (event detection on independent data)

| Gate | Threshold | State |
|---|---|---|
| Toe-off and heel-strike sensitivity and precision | at least 0.95 each | Provisional |
| Equal-participant median absolute timing error, each event | at most 20 ms | Provisional |
| Equal-participant p95 absolute timing error, each event | at most 50 ms | Provisional |
| Absolute median signed bias, each event | at most 10 ms | Provisional |
| False events | at most 1 per 100 reference strides | Provisional |
| Expected calibration error (10 bins) | at most 0.05 | Provisional |
| Valid runtime fraction | at least 95 percent | Provisional |
| Paired baseline gates | sensitivity difference lower bound at least -0.02; false-event difference upper bound at most +0.5 per 100 strides; a material timing or coverage advantage for each event type | Provisional |

These gates validate event detection only. They do not establish assist timing, biomechanical benefit, clinical benefit or human-use safety.

## Timing and resource gates

| Item | Gate | State |
|---|---|---|
| Update period | one accepted frame per 10 ms nominal | Locked |
| Model inference execution p99 | at most 5 ms | Provisional |
| Newest sample to supervisor decision p99 | at most 30 ms | Provisional |
| Maximum newest-source to decision age | 50 ms; older results inhibited, no catch-up processing | Provisional hard freshness gate |
| Model weights | expected under 4 KiB INT8; actual reported | Provisional |
| Model constants plus tensor arena | at most 16 KiB | Provisional |
| Firmware memory, current, runtime, temperature | measured after hardware selection | TBD-gated |

The earlier latency ledger and its 23 ms subtotal are retired; end-to-end freshness is measured instead.

## Data tiers

| Tier | Purpose | Claims allowed |
|---|---|---|
| D0 synthetic | schema, timing, state, metric and fault tests | software correctness only |
| D1 development-derived | pipeline feasibility, pretraining, debugging | no independent performance claim |
| D2 independent retrospective | algorithm selection and internal generalization | internal development performance |
| D3 prospective external | locked validation | preclinical validation within declared scope |
| D4 clinical | biomechanical and clinical safety and benefit | prespecified regulated or peer-reviewed claims only |

Current state: D0 only. Participant ID is the split unit; no session, trial or overlapping window may cross partitions; independent ground truth is required for product validation.

## Stage gates and current state

| Stage | Deliverable | State (September 2026) |
|---|---|---|
| S0 specification | controlled documents and traceability skeleton | in progress; adequate to seed S1 |
| S1 replay and schema | validator, deterministic causal preprocessing, synchronized replay | in progress; first increment exists with 281 passing synthetic tests |
| S2 rule baseline | causal FSM comparator and grouped development report | code exists; exit blocked on a licensed participant-grouped dataset |
| S3 Model 1 offline | trained TCN, calibration, immutable run bundle, acceptance or no-ship decision | blocked: no dataset at the required tier |
| S4 shadow target | quantized authenticated inference on target, no output | blocked |
| H hardware-in-the-loop | supervisor with a non-energized simulator | blocked |
| E energized bench | isolated output stage on approved loads only | blocked; separate electrical and safety gate |
| C human feasibility | approved protocol and controlled prototype | blocked; separate clinical, ethics and regulatory gate |

## Side study (not a Norysr requirement)

A computational study on public healthy-adult EEG produced the workspace's first measured result: a channel-agnostic denoising network evaluated on five held-out people improved signal-to-noise ratio by 14.4 dB against 7.1 dB for a standard band-pass filter. It uses no Norysr hardware, no cerebral-palsy data and no participant of the project, and it changes no statement in this summary.
