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

planned

Named roadmap item; no contract yet.

proposed-contract

Intended API or schema shape. May still change before code lands.

implemented

Code exists; examples are runnable.

verified

Implementation has contract tests or golden validation.

runtime-isolated

Available only through subprocess, ZMQ, or a license boundary.

reference-only

Used for validation or explanation, not runtime generation.

deprecated

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

BaseEmitter

proposed-contract

v0

ABC; full contract documented

TorchSig comms modulations (24 RadioML classes)

proposed-contract

v0

Via TorchSig v2.1.x adapter

TorchSig comms modulations (full 60+ class set)

proposed-contract

v0.5

Extends v0 adapter

Radar (pulsed Barker, FMCW, PMCW, frequency-hopping)

proposed-contract

v1

Custom NumPy + optional RadarSimPy

Drone (OcuSync, Lightbridge, FPV, MAVLink, ELRS)

proposed-contract

v1

Custom NumPy + hybrid synth+capture

LoRa (SF7-SF12, 125/250/500 kHz BW)

proposed-contract

v1

Custom NumPy port of gr-lora_sdr

BLE (1M, 2M, Coded S=2/S=8 GFSK)

proposed-contract

v1

Custom NumPy

Zigbee / 802.15.4 OQPSK

proposed-contract

v1

Custom NumPy

Wi-Fi 802.11 a/g/p OFDM

proposed-contract

v1

Custom NumPy

ADS-B 1090 MHz Mode-S PPM

proposed-contract

v1

pyModeS + custom modulator

Cellular LTE downlink (E-UTRA)

proposed-contract

v1

srsRAN_4G via ZMQ; runtime-isolated

Cellular 5G NR PUSCH

proposed-contract

v1

sionna.phy.nr; Apache-2.0

GSM / 2G GMSK

proposed-contract

v1

Custom NumPy

Captures / SigMF playback

proposed-contract

v1

SigMF v1.2 + HDF5 round-trip

802.11n/ac/ax MIMO

planned

v1.5+

Out of scope for v1

DVB-S/S2 satellite

planned

v1.5+

Roadmap candidate

GPS L1/L2/L5

planned

v1.5+

Roadmap candidate

Iridium / Globalstar LEO

planned

v1.5+

Roadmap candidate

Tetra / DMR LMR

planned

v1.5+

Roadmap candidate

AIS

planned

v1.5+

Roadmap candidate


Channels layer

Class

Status

Milestone

Notes

BaseChannel

proposed-contract

v0

Layer ABC; all 14 per-transformation ABCs inherit from it

ChannelPipeline

proposed-contract

v0

Sequential container with ChainKind (PRE_SUM / POST_SUM) validation

BaseDACQuantization

proposed-contract

v0.5

TX impairments: finite-resolution DAC

BasePANonlinearity

proposed-contract

v0.5

TX impairments: power-amplifier nonlinearity (Rapp, Saleh)

BaseTXPhaseNoise

proposed-contract

v0.5

TX impairments: Leeson-model TX phase noise

BaseTXIQImbalance

proposed-contract

v0.5

TX impairments: TX I/Q gain and phase mismatch

BaseCFO

proposed-contract

v1

TX impairments: per-device carrier-frequency offset

Sionna RT ray-traced propagation

proposed-contract

v1

Channel propagation: BaseChannel slot; GPU required

Sionna UMa (3GPP UMa CDL)

proposed-contract

v0.5

Channel propagation: statistical channel

Sionna UMi (3GPP UMi CDL)

proposed-contract

v0.5

Channel propagation: statistical channel

Sionna RMa (3GPP RMa CDL)

proposed-contract

v1

Channel propagation: statistical channel

Sionna TDL (Tapped Delay Line)

proposed-contract

v0.5

Channel propagation: statistical channel

Sionna CDL (Clustered Delay Line)

proposed-contract

v0.5

Channel propagation: statistical channel

BaseRXMixer

proposed-contract

v0.5

RX capture: per-RX mix from realized_carrier_hz to rx.center_freq_hz

BaseIFFilter

proposed-contract

v0.5

RX capture: IF / anti-alias filter

BaseResampler

proposed-contract

v0.5

RX capture: the one rate transition R_emitter -> R_rx

BaseLNANoise

proposed-contract

v0.5

RX capture: LNA thermal noise (replaces standalone AWGN)

BaseADCQuantization

proposed-contract

v0.5

RX hardware: ADC quantize / clip

BaseRXPhaseNoise

proposed-contract

v0.5

RX hardware: Leeson-model RX phase noise

BaseRXIQImbalance

proposed-contract

v0.5

RX hardware: RX I/Q gain and phase mismatch

BaseAGC

proposed-contract

v1

RX hardware: AGC dynamics

TorchSig impairments (levels 0/1/2)

proposed-contract

v0

Bulk-impairment alternative for benchmark-compatible chains


Scenes layer

Class / Config field

Status

Milestone

Notes

BaseSceneComposer

proposed-contract

v0

Primary scenes ABC

DefaultSceneComposer

proposed-contract

v0

Default placement + event-timing logic

BaseTimePlacement

proposed-contract

v0.5

Strategy ABC for per-emitter time placement

BaseFrequencyPlacement

proposed-contract

v0.5

Strategy ABC for per-emitter freq placement

SceneConfig.sample_rate_hz

proposed-contract

v0

Required field

SceneConfig.duration_s

proposed-contract

v0

Required field

SceneConfig.bandwidth_hz

proposed-contract

v0

Required field

SceneConfig.center_hz

proposed-contract

v0

Default 0.0 (baseband)

SceneConfig.density

proposed-contract

v0

DensityConfig (fixed/uniform/Poisson)

SceneConfig.channel_application

proposed-contract

v0.5

SCENE vs PER_EMITTER mode

Multi-RX / ULA array geometry

proposed-contract

v1.5

RxArrayConfig; multi-RX presets deferred


Labels layer

Class / Config field

Status

Milestone

Notes

BaseLabeler

proposed-contract

v0

ABC; label contract documented

JointLabeler

proposed-contract

v0.5

Default: bbox + segmentation + metadata

Class label only (v0 subset)

proposed-contract

v0

No bbox, no segmentation

BBox labels

proposed-contract

v0.5

Time-frequency bounding boxes

Segmentation mask (single-label)

proposed-contract

v0.5

Per-bin class raster

Segmentation mask (multi-label)

planned

v1+

~10x cost; per-dataset config knob

Per-emitter metadata

proposed-contract

v0

Class name, SNR, CFO, channel params

Per-bin SNR map

planned

v1+

Lean: per-emitter scalar for v1

LabelConfig.seg_n_fft

proposed-contract

v0.5

STFT window for rasterization

LabelConfig.seg_hop

proposed-contract

v0.5

STFT hop for rasterization


Annotations layer

Class

Status

Milestone

Notes

BaseAnnotator

proposed-contract

v0

Primary annotations ABC

BaseInferenceClient

proposed-contract

v0

Inference endpoint ABC; injected into annotators

BaseBatchAnnotationOrchestrator

proposed-contract

v1

Phase 2 batch submission ABC

Caption annotator (Gemini Flash)

proposed-contract

v0

Phase 2; first annotation type

Attribute QA annotator

proposed-contract

v1

Phase 2

Reasoning chain annotator

proposed-contract

v1

Phase 2

Scene report annotator

proposed-contract

v1

Phase 2

Contrastive annotator

proposed-contract

v1

Phase 2

Verifier (Sonnet 5 % subset)

proposed-contract

v1

PAES-based hallucination control

AnnotationOrchestratorConfig

proposed-contract

v1

Vertex AI Batch, Anthropic Batch, local


Storage layer

Class / Config field

Status

Milestone

Notes

BaseStore

proposed-contract

v0

Primary storage ABC

StoreHandle

proposed-contract

v0

Factory + handle pattern; see Concepts / Storage

ZarrStore (local filesystem)

proposed-contract

v0

Default backend

ZarrStore (GCS)

proposed-contract

v0.5

rfgen[gcp] extra

ZarrStore (S3)

proposed-contract

v1.5

rfgen[aws] extra

ZarrStore (Azure Blob)

proposed-contract

v2

rfgen[azure] extra

WebDataset shards

proposed-contract

v0.5

.tar shards alongside Zarr

HDF5 TorchSig interop

proposed-contract

v0.5

Byte-exact round-trip contract

StorageConfig.path

proposed-contract

v0

Canonical output directory

StorageConfig.backend

proposed-contract

v0

Built-in StorageBackend values plus plugin backend names

StorageConfig.compression

proposed-contract

v0

Default "blosc", rewritten per built-in backend

StorageConfig.record_axis

proposed-contract

v0.5

PER_RX vs JOINT


Backends

Backend

Role

Status

Milestone

Notes

TorchSig v2.1.x

Comms emitters, impairments

proposed-contract

v0

MIT license

Sionna RT

Ray-traced propagation

proposed-contract

v1

GPU required; Apache-2.0

Sionna PHY (TDL/CDL/UMa/UMi/RMa)

Statistical channel models

proposed-contract

v0.5

Apache-2.0

Sionna PHY NR (PUSCH)

5G NR PUSCH emitter

proposed-contract

v1

Apache-2.0

RadarSimPy

Radar waveform synthesis

proposed-contract

v1

GPL-3.0; lazy-imported

srsRAN_4G / ZMQ

LTE downlink emitter

runtime-isolated

v1

AGPL-3.0; subprocess boundary

pyModeS

ADS-B encoder/decoder

proposed-contract

v1

GPL-3.0; lazy-imported

HermesPy

RX frontend reference

reference-only

v1

Validation use only

GNU Radio

RX frontend / cellular

runtime-isolated

v1

GPL-3.0; subprocess boundary

MATLAB

RX frontend / validation

reference-only

v1

Commercial license boundary

Gemini Flash

Bulk annotation inference client

proposed-contract

v0

Phase 2 default

Sonnet

Verifier inference client

proposed-contract

v1

Phase 2 verifier

LocalRunner

Phase 1 executor

proposed-contract

v0

Single-process; default

Managed Spark Serverless

Phase 1 executor

proposed-contract

v0.5

GCP Dataproc Serverless

Apache Spark BYO

Phase 1 executor

proposed-contract

v1

Bring-your-own Spark cluster

EMR

Phase 1 executor

planned

v1.5

rfgen[aws] extra

Dask

Phase 1 executor

planned

v1

Optional

Ray

Phase 1 executor

planned

v1

Optional

Vertex AI Batch Prediction

Phase 2 orchestrator

proposed-contract

v1

GCP

Anthropic Batch

Phase 2 orchestrator

proposed-contract

v1

Cloud-agnostic

OpenAI Batch

Phase 2 orchestrator

proposed-contract

v1

Cloud-agnostic


Signal families

Drawn from Signal Catalog.

Family

Classes

Status

Milestone

Notes

Comms modulations

PSK, QAM, FSK, OFDM, AM, FM, chirp

proposed-contract

v0 (24 classes), v0.5 (60+ classes)

TorchSig backend

Radar

Pulsed (Barker, polyphase), FMCW, PMCW, freq-hopping

proposed-contract

v1

Custom NumPy

Drone

OcuSync, Lightbridge, FPV, MAVLink, ELRS

proposed-contract

v1

Custom + hybrid capture

LoRa / IoT

SF7-SF12 across 125/250/500 kHz BW

proposed-contract

v1

Custom NumPy

BLE

1M, 2M, Coded S=2/S=8 GFSK

proposed-contract

v1

Custom NumPy

Zigbee / 802.15.4

OQPSK ISM channels

proposed-contract

v1

Custom NumPy

Wi-Fi

802.11 a/g/p OFDM

proposed-contract

v1

Custom NumPy

Aviation (ADS-B)

Mode-S DF11/DF17/DF18

proposed-contract

v1

pyModeS + custom modulator

Cellular LTE

E-UTRA downlink, 1.4-20 MHz

runtime-isolated

v1

srsRAN_4G via ZMQ

Cellular 5G NR

PUSCH; other NR signals open

proposed-contract

v1

sionna.phy.nr

GSM

2G GMSK 200 kHz

proposed-contract

v1

Custom NumPy

Captures / playback

SigMF + HDF5 sources

proposed-contract

v1

First-class emitters

Unknown / EW

Jammers, barrage noise, sweep jammers

planned

v1+

Missing from catalog; roadmap item

Satellite

DVB-S/S2, GPS, Iridium

planned

v1.5+

Roadmap candidates


Scenario presets

Drawn from Scenario Presets.

Preset

Status

Milestone

Notes

dense_urban_2_4ghz

proposed-contract

v1

Sionna RT + dense ISM; requires GPU

contested_ew_lband

proposed-contract

v1

Multi-RX deferred to v1.5 in practice

rural_ads_b

proposed-contract

v1

ADS-B + Sionna propagation preset

device_fingerprint_lora_25

proposed-contract

v1

SEI research; 25-device table

multimodal_drone_sim

proposed-contract

v1

Sionna RT + Doppler-aware

narrowband_classifier_baseline

proposed-contract

v0

First usable preset; TorchSig + AWGN

wideband_detection_baseline

proposed-contract

v0.5

Multi-emitter detection preset


Schema milestones

Milestone

Schema version

Features in scope

Status

v0

0.x (pre-release)

Class label only; single-emitter; ZarrStore local; caption annotation

proposed-contract

v0.5

1.0.0

Full label schema (bbox + seg + metadata); multi-emitter; TorchSig HDF5 interop; Spark

proposed-contract

v1

1.0.0 frozen

Heterogeneous zoo; Sionna channels; full annotation suite; fingerprint; taxonomy unifier

proposed-contract

v1.5

1.1.0

HIL validation subset; multi-RX presets; sim2real benchmark

planned

v2

2.0.0 (candidate)

Public release; license-clean subset; CLIP-for-RF baseline

planned


Claim-source index

Contract

Status

Scope

Notes

ClaimSourceIndexV1

verified

Release-evidence routing for Layers 1-45

Frozen, extra-forbidden RFC 8785 self-hashed index; it does not itself make a release claim.

ClaimSourceIndexBuilder

verified

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

AdvertisedInventoryV1 and collect_advertised_inventory

verified

Installed managed-provider and HIL advertisement

Intersects packaged production configuration with installed entry points and records canonical, self-hashed capability metadata.

ReleaseSupportInventoryV1 and build_release_support_inventory

verified

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

BenchmarkBaselineSetV1 and attest_benchmark_baseline_set

verified

Reference-host baseline admission

Uses the Layer 14 Sigstore DSSE adapter and PASS support evidence; candidate qualification cannot update a baseline.

BenchmarkQualificationReportV1, qualify_benchmarks, and seal_benchmark_wave

verified

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

ReleaseArtifactV1, UnsignedReleaseManifestV1, and assemble_unsigned_release_manifest

verified

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.

ReleaseManifestV1, finalize_release_manifest, and verify_release_manifest_hash

verified

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

BaseSampler

proposed-contract

v0.5

ABC; yields sample_id strings

BaseCollator

proposed-contract

v0.5

ABC; turns Record list into batched tensors

SequentialSampler

proposed-contract

v0.5

Default sampler; sample_idx order

RandomSampler

proposed-contract

v0.5

Deterministic random order

ClassBalancedSampler

proposed-contract

v0.5

Equal counts per class_name; RadioML benchmark parity

SnrStratifiedSampler

proposed-contract

v1

SNR-bucket stratified sampling

DensityStratifiedSampler

proposed-contract

v1

Emitter-count stratified sampling

WeightedSampler

proposed-contract

v1

Per-sample importance weights

DetectionCollator

proposed-contract

v0.5

YOLO-format; padded bboxes

SegmentationCollator

proposed-contract

v0.5

STFT-based seg mask

ClassificationCollator

proposed-contract

v0.5

Single-label per record

AttributeRegressionCollator

proposed-contract

v1

PAES-style attribute targets

ContrastiveCollator

proposed-contract

v1

SSL pairs

MultiTaskCollator

proposed-contract

v1

Multi-head foundation-model training

RfgenTorchDataset

proposed-contract

v0.5

IterableDataset bridge; behind rfgen[torch]


See Also