Recorded protocol

RECORDED · corpus-ipc wire v1

IPC provenance you can check byte for byte.

These are recorded corpus-ipc wire-v1 envelopes, replayed offline from checked-in files. ZeroMQ, the Axum IPC service, and any live transport stay out of the browser. With JavaScript, the page decodes each envelope through the Rust/WASM adapter crate behind the homepage demo, in its labs build.

Locked surface

What decodes these bytes.

Crate
corpus-ipc = "=0.1.0"
Archive SHA-256
eec6624caf88783f1c35109fe1c27615fc85c986249d480c8efabb72d5f92081
Lockfile
crates/neuromorphic-adapter/Cargo.lock
Features
default-features = false (no zmq, no server)
Transport
Offline: checked-in fixture bytes. No ZeroMQ, HTTP service, proxy, or live producer.
Decode
WireEnvelope::<IpcMessage>::decode_json, then Validate::validate()
Package
Labs build of neuromorphic-adapter (--features nir,protocol), /wasm/neuromorphic-adapter-labs/neuromorphic_adapter.js. The homepage package does not include this decode path.
Byte limit
65536 bytes, checked before hashing or parsing
Fixtures
Derived from a deterministic replay of crates/neuromorphic-adapter/tests/fixtures/kinetic-seed9-trace.json (completed step 7), encoded by corpus-ipc in crates/neuromorphic-adapter/tests/protocol_fixtures.rs. Not captured from hardware or a live service.

RECORDED · corpus-ipc wire v1 Recorded IPC envelopes on this page.

LIVE · Rust/WASM The homepage simulation, computed in your browser.

RECORDED · CUDA/FPGA Native captures on the evidence page.

Static view. Each fixture below shows its exact recorded bytes and digest.

Wire v1 fixtures

Stimuli, spikes, and eligibility traces from one replayed tick.

IpcMessage::Stimuli

kinetic-seed9-step7-stimuli

Derived from a deterministic adapter replay, not captured from hardware or a live service. values are the 16 clamped kinetic-signals features the adapter handed to axon-encoder for completed step 7 of the committed contract-5 golden (seed 9). batch_id is assigned (2^53 + 1); timestamp is 0 because replay has no wall clock.

Fixture ID
kinetic-seed9-step7-stimuli
Variant
Stimuli
SHA-256
bd770ba329faddd3285e73355a7281241b7f689f50d54deab8af16d827d7925c out of band, over the exact bytes
Size
446 bytes (pre-parse limit 65536)
Recorded envelope, exact bytes
{"wire_version":1,"payload":{"Stimuli":{"session_id":"kinetic-seed9-golden","batch_id":9007199254740993,"timestamp":0,"values":[1.0,0.22,0.5,1.0,0.0,0.0,0.80000013,1.0,1.0,0.69459486,1.0,0.37973028,0.10783124,0.35768598,0.77675116,0.3539561],"valid_mask":null,"metadata":{"processing_latency_ns":null,"source":"neuromorphic-adapter replay of crates/neuromorphic-adapter/tests/fixtures/kinetic-seed9-trace.json","custom":{"completed_step":"7"}}}}}

Not decoded yet. The bytes above are the reference; the browser view decodes them through the Rust/WASM adapter when JavaScript and WebAssembly are available.

IpcMessage::Spikes

kinetic-seed9-step7-spikes

Derived from the same replay, not captured from hardware or a live service. Each event is a neuromod LIF spike emitted at completed step 7: channel is the neuron index and time is the step. strength 1.0 marks a binary spike; the adapter does not export spike amplitude.

Fixture ID
kinetic-seed9-step7-spikes
Variant
Spikes
SHA-256
1a494c772ee8cc876983993c20d67d2b5473967839f0c2c30ab00a855cfbdb25 out of band, over the exact bytes
Size
928 bytes (pre-parse limit 65536)
Recorded envelope, exact bytes
{"wire_version":1,"payload":{"Spikes":{"session_id":"kinetic-seed9-golden","batch_id":9007199254740993,"timestamp":0,"spikes":[{"channel":0,"time":7,"strength":1.0},{"channel":1,"time":7,"strength":1.0},{"channel":2,"time":7,"strength":1.0},{"channel":3,"time":7,"strength":1.0},{"channel":4,"time":7,"strength":1.0},{"channel":5,"time":7,"strength":1.0},{"channel":6,"time":7,"strength":1.0},{"channel":7,"time":7,"strength":1.0},{"channel":8,"time":7,"strength":1.0},{"channel":9,"time":7,"strength":1.0},{"channel":10,"time":7,"strength":1.0},{"channel":11,"time":7,"strength":1.0},{"channel":12,"time":7,"strength":1.0},{"channel":13,"time":7,"strength":1.0},{"channel":14,"time":7,"strength":1.0},{"channel":15,"time":7,"strength":1.0}],"metadata":{"processing_latency_ns":null,"source":"neuromorphic-adapter replay of crates/neuromorphic-adapter/tests/fixtures/kinetic-seed9-trace.json","custom":{"completed_step":"7"}}}}}

Not decoded yet. The bytes above are the reference; the browser view decodes them through the Rust/WASM adapter when JavaScript and WebAssembly are available.

IpcMessage::EligibilityTraces

kinetic-seed9-step7-eligibility-traces

Derived from the same replay, not captured from hardware or a live service. Rows are neuromod's per-synapse eligibility traces for LIF neuron 0's 16 input channels after completed step 7; last_spike_time is that neuron's neuromod step of its most recent spike.

Fixture ID
kinetic-seed9-step7-eligibility-traces
Variant
EligibilityTraces
SHA-256
f8909b87cf2c85aff113539d10879c612955ddbc622b106c5151d7c4e651fe5b out of band, over the exact bytes
Size
1016 bytes (pre-parse limit 65536)
Recorded envelope, exact bytes
{"wire_version":1,"payload":{"EligibilityTraces":{"session_id":"kinetic-seed9-golden","batch_id":9007199254740993,"traces":[{"channel_id":0,"trace_value":0.01,"last_spike_time":7},{"channel_id":1,"trace_value":0.0,"last_spike_time":7},{"channel_id":2,"trace_value":0.0,"last_spike_time":7},{"channel_id":3,"trace_value":0.01,"last_spike_time":7},{"channel_id":4,"trace_value":0.0,"last_spike_time":7},{"channel_id":5,"trace_value":0.01,"last_spike_time":7},{"channel_id":6,"trace_value":0.0,"last_spike_time":7},{"channel_id":7,"trace_value":0.0,"last_spike_time":7},{"channel_id":8,"trace_value":0.0,"last_spike_time":7},{"channel_id":9,"trace_value":0.0,"last_spike_time":7},{"channel_id":10,"trace_value":0.0,"last_spike_time":7},{"channel_id":11,"trace_value":0.0,"last_spike_time":7},{"channel_id":12,"trace_value":0.0,"last_spike_time":7},{"channel_id":13,"trace_value":0.0,"last_spike_time":7},{"channel_id":14,"trace_value":0.0,"last_spike_time":7},{"channel_id":15,"trace_value":0.0,"last_spike_time":7}]}}}

Not decoded yet. The bytes above are the reference; the browser view decodes them through the Rust/WASM adapter when JavaScript and WebAssembly are available.

Fail closed

Every rejection has a stable reason.

Adapter reason codes
Code Meaning
expected-variant-unsupported The declared variant is not Stimuli, Spikes, or EligibilityTraces.
expected-digest-invalid The out-of-band SHA-256 is not 64 lowercase hex characters.
oversize The bytes exceed the pre-parse limit; nothing is hashed or parsed.
digest-mismatch SHA-256 over the exact bytes differs from the out-of-band digest.
malformed-json The bytes are not one syntactically valid JSON document.
envelope-not-object The document is not a JSON object (for example legacy "Ping").
wire-version-missing No wire_version. Legacy unversioned JSON is not accepted here.
wire-version-null wire_version is null.
wire-version-duplicate wire_version appears more than once.
wire-version-invalid wire_version is not a non-negative integer that fits u32.
wire-version-too-old wire_version is below the oldest version corpus-ipc supports.
wire-version-too-new wire_version is newer than corpus-ipc understands.
payload-missing No payload after the version check.
payload-null payload is null.
payload-duplicate payload appears more than once.
unknown-variant The payload names an IpcMessage variant corpus-ipc does not define.
invalid-typed-data The payload does not match the typed corpus-ipc schema.
validation-failed corpus-ipc validation rejected the payload (finite values, limits, lengths, unique ids).
kind-mismatch The decoded variant differs from the declared one.
canonical-encoding-failed corpus-ipc could not re-encode the accepted envelope.