The research instrument
From radio to evidence.
Follow the data through capture, storage, processing and evaluation. Inspect a component for its readings, dependencies and the evidence behind its status.
The interactive map adds component selection, zoom and a guided walkthrough when JavaScript is available.
- Radios & recorders Channel measurements are recorded to local binary captures.
- Capture archive Sealed segments are uploaded to object storage.
- Decode & ingest Binary records become rows.
- Measurement lake Parquet tables hold queryable measurements.
- Minute reductions Decoded records become per-receiver summaries in blocks; motion is another derived product.
- Detection & fusion Baselines, detection methods and receiver aggregation produce estimates.
- Evaluation Labels, episodes, empty-night false alarms and drift diagnostics support interpretation.
- Research portal Snapshots and experiments publish the resulting evidence.
- Radio 11 nodes reporting
- Sealed 25,076 segments the lake knows
- Never decoded 49 not yet decoded into packet rows
- Below current schema 0 decoded, awaiting re-reduction
- Queryable 25,027 at the current reduction schema
99.8% of sealed segments are at the current reduction schema. The rest are queued; the decoder works through them continuously.
The ingest lock is free. No writer is holding the lake.
| Node | Doing now | Estimates/s | Segments | Decoded | Queued | Progress |
|---|---|---|---|---|---|---|
| monad-knowledge | No capture reported | — | — | — | — | — |
| monad01 | Capturing at 0.2 Hz | 0.2 | 2,869 | 2,868 | 1 | |
| monad02 | Capturing at 250.2 Hz | 250.2 | 2,373 | 2,368 | 5 | |
| monad03 | Capturing at 250.1 Hz | 250.1 | 2,591 | 2,583 | 8 | |
| monad04 | Capturing at 250.1 Hz | 250.1 | 2,656 | 2,653 | 3 | |
| monad05 | Capturing at 250.1 Hz | 250.1 | 2,695 | 2,688 | 7 | |
| monad06 | Capturing at 250.2 Hz | 250.2 | 2,434 | 2,425 | 9 | |
| monad07 | Capturing at 250.0 Hz | 250.0 | 2,558 | 2,557 | 1 | |
| monad08 | Capturing at 250.1 Hz | 250.1 | 2,409 | 2,406 | 3 | |
| monad09 | Capturing at 250.0 Hz | 250.0 | 2,039 | 2,031 | 8 | |
| monad10 | Capturing at 250.3 Hz | 250.3 | 2,452 | 2,448 | 4 |
What the lake holds — 5 tables
| Table | Files | Size | Average file |
|---|---|---|---|
| sessions | 42 | 0.1 GB | 1.5 MB |
| timesync | 4,563 | 71.3 GB | 15.6 MB |
| ble | 3,773 | 3.5 GB | 0.9 MB |
| packets | 25,427 | 249.2 GB | 9.8 MB |
| fleet_ops | 760 | 0.0 GB | 0.0 MB |
A lake table is Parquet on object storage. Many small files are slower to read than few large ones, because each is a separate request over the network — which is why the average-file column is here and not a detail.
Pipeline figures built 12 s ago. Node state is live at 30 s.
Processing and evaluation
Published analysis snapshot: 4 methods, 4 labels, 555 detection episodes. This is output inventory, not a validation verdict.
Source build: .
- Envelope, our transmitter only
- Doppler 20–60 Hz, our transmitter only
- Delivered-rate collapse
- Envelope, every transmitter
Three clocks. Fleet telemetry refreshes at 30 s. Lake inventory is built every minute and marked stale after three minutes. Processing and evaluation read a separately built analysis snapshot; its build time is shown explicitly.
What a status means. A queue is work waiting, a lock can be useful work, and a published output is not a validation verdict. Unknown readings stay unknown. Open the detector instrument for methods and evaluation, or the published JSON for the readings behind this map.