Maturity Matrix¶
This page tracks the implementation status of every public surface in the rfgen framework: classes, config fields, scenario presets, signal families, backends, and schema milestones.
How to read the labels. See docs/STYLE.md for the full vocabulary. In brief:
Label |
Meaning |
|---|---|
|
Named roadmap item; no contract yet. |
|
Intended API or schema shape. May still change before code lands. |
|
Code exists; examples are runnable. |
|
Implementation has contract tests or golden validation. |
|
Available only through subprocess, ZMQ, or a license boundary. |
|
Used for validation or explanation, not runtime generation. |
|
Still present but scheduled for removal; use the replacement. |
The framework is pre-implementation. Most rows are proposed-contract or planned. As code lands, rows are updated and a reference test or golden path is added.
Note
This matrix contains both implemented and proposed contracts. The claim-source index described below is implemented and contract-tested; its presence does not promote the maturity of the modules it routes.
Emitters layer¶
Class / Family |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
ABC; full contract documented |
|
TorchSig comms modulations (24 RadioML classes) |
|
v0 |
Via TorchSig v2.1.x adapter |
TorchSig comms modulations (full 60+ class set) |
|
v0.5 |
Extends v0 adapter |
Radar (pulsed Barker, FMCW, PMCW, frequency-hopping) |
|
v1 |
Custom NumPy + optional RadarSimPy |
Drone (OcuSync, Lightbridge, FPV, MAVLink, ELRS) |
|
v1 |
Custom NumPy + hybrid synth+capture |
LoRa (SF7-SF12, 125/250/500 kHz BW) |
|
v1 |
Custom NumPy port of gr-lora_sdr |
BLE (1M, 2M, Coded S=2/S=8 GFSK) |
|
v1 |
Custom NumPy |
Zigbee / 802.15.4 OQPSK |
|
v1 |
Custom NumPy |
Wi-Fi 802.11 a/g/p OFDM |
|
v1 |
Custom NumPy |
ADS-B 1090 MHz Mode-S PPM |
|
v1 |
pyModeS + custom modulator |
Cellular LTE downlink (E-UTRA) |
|
v1 |
srsRAN_4G via ZMQ; |
Cellular 5G NR PUSCH |
|
v1 |
sionna.phy.nr; Apache-2.0 |
GSM / 2G GMSK |
|
v1 |
Custom NumPy |
Captures / SigMF playback |
|
v1 |
SigMF v1.2 + HDF5 round-trip |
802.11n/ac/ax MIMO |
|
v1.5+ |
Out of scope for v1 |
DVB-S/S2 satellite |
|
v1.5+ |
Roadmap candidate |
GPS L1/L2/L5 |
|
v1.5+ |
Roadmap candidate |
Iridium / Globalstar LEO |
|
v1.5+ |
Roadmap candidate |
Tetra / DMR LMR |
|
v1.5+ |
Roadmap candidate |
AIS |
|
v1.5+ |
Roadmap candidate |
Channels layer¶
Class |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
Layer ABC; all 14 per-transformation ABCs inherit from it |
|
|
v0 |
Sequential container with |
|
|
v0.5 |
TX impairments: finite-resolution DAC |
|
|
v0.5 |
TX impairments: power-amplifier nonlinearity (Rapp, Saleh) |
|
|
v0.5 |
TX impairments: Leeson-model TX phase noise |
|
|
v0.5 |
TX impairments: TX I/Q gain and phase mismatch |
|
|
v1 |
TX impairments: per-device carrier-frequency offset |
|
Sionna RT ray-traced propagation |
|
v1 |
Channel propagation: BaseChannel slot; GPU required |
Sionna UMa (3GPP UMa CDL) |
|
v0.5 |
Channel propagation: statistical channel |
Sionna UMi (3GPP UMi CDL) |
|
v0.5 |
Channel propagation: statistical channel |
Sionna RMa (3GPP RMa CDL) |
|
v1 |
Channel propagation: statistical channel |
Sionna TDL (Tapped Delay Line) |
|
v0.5 |
Channel propagation: statistical channel |
Sionna CDL (Clustered Delay Line) |
|
v0.5 |
Channel propagation: statistical channel |
|
v0.5 |
RX capture: per-RX mix from |
|
|
v0.5 |
RX capture: IF / anti-alias filter |
|
|
v0.5 |
RX capture: the one rate transition |
|
|
v0.5 |
RX capture: LNA thermal noise (replaces standalone AWGN) |
|
|
v0.5 |
RX hardware: ADC quantize / clip |
|
|
v0.5 |
RX hardware: Leeson-model RX phase noise |
|
|
v0.5 |
RX hardware: RX I/Q gain and phase mismatch |
|
|
v1 |
RX hardware: AGC dynamics |
|
TorchSig impairments (levels 0/1/2) |
|
v0 |
Bulk-impairment alternative for benchmark-compatible chains |
Scenes layer¶
Class / Config field |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
Primary scenes ABC |
|
|
v0 |
Default placement + event-timing logic |
|
|
v0.5 |
Strategy ABC for per-emitter time placement |
|
|
v0.5 |
Strategy ABC for per-emitter freq placement |
|
|
|
v0 |
Required field |
|
|
v0 |
Required field |
|
|
v0 |
Required field |
|
|
v0 |
Default 0.0 (baseband) |
|
|
v0 |
DensityConfig (fixed/uniform/Poisson) |
|
|
v0.5 |
SCENE vs PER_EMITTER mode |
Multi-RX / ULA array geometry |
|
v1.5 |
RxArrayConfig; multi-RX presets deferred |
Labels layer¶
Class / Config field |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
ABC; label contract documented |
|
|
v0.5 |
Default: bbox + segmentation + metadata |
|
Class label only (v0 subset) |
|
v0 |
No bbox, no segmentation |
BBox labels |
|
v0.5 |
Time-frequency bounding boxes |
Segmentation mask (single-label) |
|
v0.5 |
Per-bin class raster |
Segmentation mask (multi-label) |
|
v1+ |
~10x cost; per-dataset config knob |
Per-emitter metadata |
|
v0 |
Class name, SNR, CFO, channel params |
Per-bin SNR map |
|
v1+ |
Lean: per-emitter scalar for v1 |
|
|
v0.5 |
STFT window for rasterization |
|
|
v0.5 |
STFT hop for rasterization |
Annotations layer¶
Class |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
Primary annotations ABC |
|
|
v0 |
Inference endpoint ABC; injected into annotators |
|
|
v1 |
Phase 2 batch submission ABC |
|
Caption annotator (Gemini Flash) |
|
v0 |
Phase 2; first annotation type |
Attribute QA annotator |
|
v1 |
Phase 2 |
Reasoning chain annotator |
|
v1 |
Phase 2 |
Scene report annotator |
|
v1 |
Phase 2 |
Contrastive annotator |
|
v1 |
Phase 2 |
Verifier (Sonnet 5 % subset) |
|
v1 |
PAES-based hallucination control |
|
v1 |
Vertex AI Batch, Anthropic Batch, local |
Storage layer¶
Class / Config field |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0 |
Primary storage ABC |
|
|
v0 |
Factory + handle pattern; see Concepts / Storage |
|
ZarrStore (local filesystem) |
|
v0 |
Default backend |
ZarrStore (GCS) |
|
v0.5 |
|
ZarrStore (S3) |
|
v1.5 |
|
ZarrStore (Azure Blob) |
|
v2 |
|
WebDataset shards |
|
v0.5 |
|
HDF5 TorchSig interop |
|
v0.5 |
Byte-exact round-trip contract |
|
|
v0 |
Canonical output directory |
|
|
v0 |
Built-in StorageBackend values plus plugin backend names |
|
|
v0 |
Default |
|
|
v0.5 |
|
Backends¶
Backend |
Role |
Status |
Milestone |
Notes |
|---|---|---|---|---|
TorchSig v2.1.x |
Comms emitters, impairments |
|
v0 |
MIT license |
Sionna RT |
Ray-traced propagation |
|
v1 |
GPU required; Apache-2.0 |
Sionna PHY (TDL/CDL/UMa/UMi/RMa) |
Statistical channel models |
|
v0.5 |
Apache-2.0 |
Sionna PHY NR (PUSCH) |
5G NR PUSCH emitter |
|
v1 |
Apache-2.0 |
RadarSimPy |
Radar waveform synthesis |
|
v1 |
GPL-3.0; lazy-imported |
srsRAN_4G / ZMQ |
LTE downlink emitter |
|
v1 |
AGPL-3.0; subprocess boundary |
pyModeS |
ADS-B encoder/decoder |
|
v1 |
GPL-3.0; lazy-imported |
HermesPy |
RX frontend reference |
|
v1 |
Validation use only |
GNU Radio |
RX frontend / cellular |
|
v1 |
GPL-3.0; subprocess boundary |
MATLAB |
RX frontend / validation |
|
v1 |
Commercial license boundary |
Gemini Flash |
Bulk annotation inference client |
|
v0 |
Phase 2 default |
Sonnet |
Verifier inference client |
|
v1 |
Phase 2 verifier |
LocalRunner |
Phase 1 executor |
|
v0 |
Single-process; default |
Managed Spark Serverless |
Phase 1 executor |
|
v0.5 |
GCP Dataproc Serverless |
Apache Spark BYO |
Phase 1 executor |
|
v1 |
Bring-your-own Spark cluster |
EMR |
Phase 1 executor |
|
v1.5 |
|
Dask |
Phase 1 executor |
|
v1 |
Optional |
Ray |
Phase 1 executor |
|
v1 |
Optional |
Vertex AI Batch Prediction |
Phase 2 orchestrator |
|
v1 |
GCP |
Anthropic Batch |
Phase 2 orchestrator |
|
v1 |
Cloud-agnostic |
OpenAI Batch |
Phase 2 orchestrator |
|
v1 |
Cloud-agnostic |
Signal families¶
Drawn from Signal Catalog.
Family |
Classes |
Status |
Milestone |
Notes |
|---|---|---|---|---|
Comms modulations |
PSK, QAM, FSK, OFDM, AM, FM, chirp |
|
v0 (24 classes), v0.5 (60+ classes) |
TorchSig backend |
Radar |
Pulsed (Barker, polyphase), FMCW, PMCW, freq-hopping |
|
v1 |
Custom NumPy |
Drone |
OcuSync, Lightbridge, FPV, MAVLink, ELRS |
|
v1 |
Custom + hybrid capture |
LoRa / IoT |
SF7-SF12 across 125/250/500 kHz BW |
|
v1 |
Custom NumPy |
BLE |
1M, 2M, Coded S=2/S=8 GFSK |
|
v1 |
Custom NumPy |
Zigbee / 802.15.4 |
OQPSK ISM channels |
|
v1 |
Custom NumPy |
Wi-Fi |
802.11 a/g/p OFDM |
|
v1 |
Custom NumPy |
Aviation (ADS-B) |
Mode-S DF11/DF17/DF18 |
|
v1 |
pyModeS + custom modulator |
Cellular LTE |
E-UTRA downlink, 1.4-20 MHz |
|
v1 |
srsRAN_4G via ZMQ |
Cellular 5G NR |
PUSCH; other NR signals open |
|
v1 |
|
GSM |
2G GMSK 200 kHz |
|
v1 |
Custom NumPy |
Captures / playback |
SigMF + HDF5 sources |
|
v1 |
First-class emitters |
Unknown / EW |
Jammers, barrage noise, sweep jammers |
|
v1+ |
Missing from catalog; roadmap item |
Satellite |
DVB-S/S2, GPS, Iridium |
|
v1.5+ |
Roadmap candidates |
Scenario presets¶
Drawn from Scenario Presets.
Preset |
Status |
Milestone |
Notes |
|---|---|---|---|
|
|
v1 |
Sionna RT + dense ISM; requires GPU |
|
|
v1 |
Multi-RX deferred to v1.5 in practice |
|
|
v1 |
ADS-B + Sionna propagation preset |
|
|
v1 |
SEI research; 25-device table |
|
|
v1 |
Sionna RT + Doppler-aware |
|
|
v0 |
First usable preset; TorchSig + AWGN |
|
|
v0.5 |
Multi-emitter detection preset |
Schema milestones¶
Milestone |
Schema version |
Features in scope |
Status |
|---|---|---|---|
v0 |
|
Class label only; single-emitter; ZarrStore local; caption annotation |
|
v0.5 |
|
Full label schema (bbox + seg + metadata); multi-emitter; TorchSig HDF5 interop; Spark |
|
v1 |
|
Heterogeneous zoo; Sionna channels; full annotation suite; fingerprint; taxonomy unifier |
|
v1.5 |
|
HIL validation subset; multi-RX presets; sim2real benchmark |
|
v2 |
|
Public release; license-clean subset; CLIP-for-RF baseline |
|
Claim-source index¶
Contract |
Status |
Scope |
Notes |
|---|---|---|---|
|
|
Release-evidence routing for Layers 1-45 |
Frozen, extra-forbidden RFC 8785 self-hashed index; it does not itself make a release claim. |
|
|
One plan, chapter guide, and typed execution-evidence bundle |
Validates the permanent evidence bundle before reading plan files or interpreting entry points. |
The index is a provenance map, not a new validation system. Its builder first asks the supplied ExecutionEvidenceValidatorV1 to accept the complete typed bundle. It then requires the validator to be bound to the exact resolved plan and chapter-guide paths, and requires every execution manifest to bind the exact bytes of both files. A passing bundle for a different plan or guide is not routeable into this index.
The plan’s claim-source-index dependency list must cover exactly Layers 1 through 45. Direct Layer 1-10 dependencies appear as NOT_ADVERTISED sources and are forbidden from carrying chapter, manifest, gate, module-status, or scientific-result hashes. They provide completeness only, not support for an advertised production claim.
Every Layer 11-45 source must instead have exactly one plan chapter and evidence class, a matching latest module status, a chapter execution manifest, a chapter gate containing that status hash, and one authoritative acceptance gate. Scientific sources additionally require a matching scientific handoff, result, and status hash, and receive CLAIM_REQUIRED. Data-correctness, operational-reliability, and security-release sources must not carry a scientific result and receive OPERATIONAL_EVIDENCE.
Entry-point metadata is checked as selector text only. It must have a unique, nonblank group:name:module:attribute representation; the builder does not load or execute a plugin. Chapter selector rows must be globally unique. A non-advertised selector is valid only when it is optional, UNAVAILABLE, and has no evidence identifiers. This preserves an honest distinction between unavailable optional integrations and evidence for a shipped claim.
The index intentionally stops at evidence routing. It does not run tests, recompute scientific results, invoke plugins, select a deployment, or upgrade the maturity status of any routed module. Consumers must evaluate the bound execution evidence and the underlying module contract for those decisions.
Release support inventory¶
Contract |
Status |
Scope |
Notes |
|---|---|---|---|
|
|
Installed managed-provider and HIL advertisement |
Intersects packaged production configuration with installed entry points and records canonical, self-hashed capability metadata. |
|
|
Release support matrix |
Revalidates the execution-evidence chain, claim-source index, and scientific coverage before producing a self-hashed support inventory. |
The support inventory does not itself execute a test, load a provider, run a
hardware capture, or publish an artifact. It makes the release decision
auditable by binding the retained results of those processes. Every static,
advertised managed-provider, and advertised HIL support row is required and
SUPPORTED; advertised rows additionally retain passing SCIENTIFIC evidence.
Optional rows with unavailable or skipped evidence remain explicit as
UNSUPPORTED, rather than being silently omitted.
Benchmark qualification¶
Contract |
Status |
Scope |
Notes |
|---|---|---|---|
|
|
Reference-host baseline admission |
Uses the Layer 14 Sigstore DSSE adapter and PASS support evidence; candidate qualification cannot update a baseline. |
|
|
Chapter 7 benchmark release gate |
Computes fixed five-sample gates, binds Layer 11 Wave 4 evidence, and permits only a verified PASS report to create the Wave 5 candidate manifest. |
Memory p95 is stored as a float to preserve the required inclusive statistic.
This reconciles the former integer annotation with real integer observations
whose inclusive p95 can be fractional, for example 4.8 bytes.
Release-evidence assembly¶
Contract |
Status |
Scope |
Notes |
|---|---|---|---|
|
|
Offline release-evidence closure through the Chapter 7 Wave 6 checkpoint |
Requires the complete passing Layer 11 record universe, exact persisted artifact bytes, control-artifact hashes, and cross-bound support, benchmark, rehearsal, science, HIL, DR, and supply-chain evidence. It publishes and signs nothing. |
|
|
Signed release-manifest lifecycle |
Canonicalizes and hashes only the unsigned manifest; Layer 14 Sigstore DSSE signing is immediately verified before bundle persistence, and later verification rechecks bundle, policy, and canonical predicate bytes. |
Release-evidence assembly is a closure boundary, not a substitute for a
release decision. It rejects missing, duplicate, stale, cross-bound, or
non-passing evidence with ReleaseEvidenceValidationError and produces no
unsigned or final manifest. The two execution-evidence control artifacts are
inserted exactly once and cannot be treated as distributable artifacts. Later
Chapter 7 Wave 7 and 8 records, the final chapter gate, and Layer 52
release-qualified statuses remain external verifier outputs so that the signed
input cannot certify itself.
See Release-evidence assembly and manifest signing for the operational lifecycle and retained-evidence rules.
Consumer Access layer¶
Class |
Status |
Milestone |
Notes |
|---|---|---|---|
|
v0.5 |
ABC; yields |
|
|
v0.5 |
ABC; turns Record list into batched tensors |
|
|
v0.5 |
Default sampler; |
|
|
v0.5 |
Deterministic random order |
|
|
v0.5 |
Equal counts per |
|
|
v1 |
SNR-bucket stratified sampling |
|
|
v1 |
Emitter-count stratified sampling |
|
|
v1 |
Per-sample importance weights |
|
|
v0.5 |
YOLO-format; padded bboxes |
|
|
v0.5 |
STFT-based seg mask |
|
|
v0.5 |
Single-label per record |
|
|
v1 |
PAES-style attribute targets |
|
|
v1 |
SSL pairs |
|
|
v1 |
Multi-head foundation-model training |
|
|
v0.5 |
|
See Also¶
Background / Roadmap - milestone features and acceptance criteria.
Reference / Config Schema - normative config surface per layer.
Reference / Storage Layout - on-disk schema and shard structure.
Signal Catalog - per-family parameter ranges and backends.
Scenario Presets - named end-to-end Hydra recipes.
docs/STYLE.md - maturity label vocabulary.