FILE 02 / V0.1 BUILD CONTRACT SUMMARY
Numbers to test, not performance to advertise.
Revision 03 replaces the working hypothesis register with a summary of the project's controlled v0.1 build contract (August 2026). Every value carries a requirement state. None has been measured on Norysr hardware, because there is no Norysr hardware.
Not a prescription, safety envelope or regulatory determination. The complete contract with equations, schemas and requirement identifiers lives in the project workspace.
00 / REQUIREMENT STATES
Four words separate what is fixed from what is not yet known.
The contract also rejects the earlier public stimulation, ramp, burst, refractory, charge-cap and gait-window values as controlling requirements; some were mutually incompatible and none was established as a safe pediatric envelope. Literature values are never promoted to requirements automatically.
Locked
Implement and verify now. Changing it creates a new model or controller generation.
Provisional
The current internal target. Clinical, statistical or regulatory review may change it before formal design-input freeze.
TBD-gated
No value is invented. A named owner must approve it before the dependent stage.
Excluded
Not part of v0.1. Surface EMG, online learning, home use and every energized output are in this state.
01 / SENSING
One sensor, one leg, one prediction every ten milliseconds.
| 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/s² and rad/s in a calibrated affected-shank frame recorded in the session manifest | Locked |
| Window | 32 frames (nominal 310 ms span), no look-ahead; a gap, reset or invalid frame restarts it | Locked |
| Surface EMG | Later collection and ablation only | Excluded as a v0.1 dependency |
| Environment | Therapist-supervised straight, indoor, level walking | Locked for first validation |
02 / MODEL 1 CONTRACT
Three probabilities from 1,603 parameters, with a rule-based comparator beside it.
| Item | Value | State |
|---|---|---|
| Input tensor | [32, 6]: ax, ay, az, gx, gy, gz, standardized with training-only constants | Locked |
| Outputs | P(toe-off within 80 ms), P(heel strike within 80 ms), P(stance now, auxiliary) | Locked; the 80 ms horizon is a versioned first choice |
| Architecture | Causal temporal convolutional network: stem Conv1D 6→16 (kernel 2), four 16-channel residual depthwise-separable blocks at dilations 1, 2, 4, 8, linear head 16→3 | Locked reference; 1,603 parameters |
| Calibration | Bound probability-calibration transform fitted on validation participants only | Locked |
| Adaptation | Fixed weights; no online, federated or runtime learning | Locked |
| Target format | Signed INT8 weights and activations, artifact-owned quantization, parity-tested against float | Provisional |
| Comparator | Causal angular-velocity gait-event state machine; ML is adopted only if it passes every absolute gate and the paired baseline gates | Locked policy |
The model reports probabilities. It cannot emit charge, current, voltage, pulse width, frequency, ramp, duration, electrode selection or an actuator command.
03 / SUPERVISOR AND SAFETY
No public value is a safe-use instruction, and no learned value has actuator authority.
Frequency, pulse width, current, electrode placement, command duration and stimulation timing are TBD-gated to qualified electrical, clinical, safety and regulatory owners. They are not on this page because they do not exist as requirements.
Default state
No output after startup, reset, brownout, communication loss, watchdog expiry, sensor fault, stale data or low confidence.
Explicit states
Boot-safe, not-ready, stance tracking, pre-swing armed, assist window, terminating, fault terminating, swing tracking and fault latched. Every state and input combination has a row; a missing row is a fault.
Invalid transitions
Zero, at every stage. Any observed unsafe allow is a release blocker even if the aggregate rate rounds to zero.
Identity
Model, thresholds and configuration are content-identified, and an authenticated release manifest is required before shadow-target work.
04 / PROVISIONAL ACCEPTANCE GATES
Event detection on independent data, judged per participant.
| 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 |
Ground truth must be an independent synchronized reference such as pressure insoles, an instrumented walkway or motion capture. Events derived from the same shank signal are development labels only. These gates validate event detection; they do not establish assist timing or benefit.
05 / TIMING AND RESOURCE GATES
Freshness is measured end to end. The old 23 ms subtotal is retired.
| 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 |
No timing value has been measured on Norysr hardware, because none has been selected.
06 / DATA TIERS
Five tiers, and the workspace is at the first.
| 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 |
Participant ID is the split unit. No session, trial or overlapping window may cross partitions. Random row or window cross-validation is prohibited for product evidence.
07 / STAGE GATES
Eight ordered exits. Two are in progress; none is closed.
Specification
In progress; sufficient to seed implementation, not formally closed.
Replay and schema
In progress; first increment exists with 281 passing synthetic tests.
Rule baseline
Code exists; exit blocked on a licensed participant-grouped dataset.
Model 1 offline
Blocked; no dataset at the required tier, so no gait model has been trained.
Shadow target
Blocked; depends on S3 and hardware selection.
Hardware-in-the-loop
Blocked; non-energized simulator only.
Energized bench
Blocked; separate electrical and safety gate, approved loads only.
Human feasibility
Blocked; separate clinical, ethics and regulatory gate.