RF Data Generation Framework¶
A single configurable framework for generating synthetic, multimodal RF datasets (emitter scenes, channel propagation, time-frequency labels, and inference-grounded text annotations) under one pipeline.
Warning
Pre-release / design spec. This documentation describes a framework still under design. APIs, config schemas, and behavior are proposals, not shipped. Use this site as a design-review surface; expect changes before v0 lands.
Goal¶
Generate a synthetic multimodal RF dataset for foundation-model training and evaluation.
A single sample is one record that contains:
A scene of one or more coexisting emitters. Narrowband or wideband, drawn from a heterogeneous zoo (comms modulations, radar, drones, IoT, cellular, ADS-B), with realistic channel propagation and per-emitter time-frequency labels.
Paired text annotations. Captions, attribute Q&A, reasoning chains, and scene reports, generated by LLMs from verified ground-truth metadata.
These are components of the same record, not separate datasets. Bandwidth, signal density, single-emitter versus multi-emitter, sim versus HIL, comms-only versus heterogeneous emitter mix, captions-only versus full annotation suite: each is a configuration knob on the one pipeline. Text annotation is a thin layer on top of the metadata the scene generator already produces.
Hypothesis¶
A single configurable framework can generate a synthetic multimodal RF dataset whose every sample is a record combining a multi-emitter scene with paired text annotations, by composing pluggable backends (TorchSig, Sionna, custom generators, inference-grounded annotators) under one configuration system.
What You Get¶
Heterogeneous emitter zoo. Comms modulations, radar, drones, IoT (LoRa, BLE, Zigbee, Wi-Fi), ADS-B, cellular (LTE, 5G NR), all under one BaseEmitter interface.
Sionna-first channel backends. Sionna RT for ray-traced propagation and Sionna PHY for 3GPP statistical scenarios (UMa, UMi, RMa, TDL, CDL), with TorchSig retained for benchmark compatibility.
Multi-emitter scenes with realistic dynamics. Event-timed bursts (radar PRI, ADS-B, drone telemetry), heavy-tailed power, optional multi-RX/array.
Joint label format. Bbox + per-bin segmentation + per-emitter metadata, all in the same record.
Inference-grounded text annotations. Captions, attribute Q&A, reasoning chains, scene reports, with hallucination control.
One configuration system. Hydra config groups + Pydantic validation, every backend swappable by flag.
A Single Sample Is One Record¶
sample = {
iq: Tensor[2, N], # canonical IQ
spectrogram: Tensor[F, T], # optional, on-demand
labels: {
bboxes: [...], # time-freq rectangles per signal
masks: Tensor[F, T], # per-bin segmentation
emitters: [...], # class, SNR, CFO, channel, ...
scene: {...}, # scene-level metadata
},
text: {
caption: "...",
qa: [...],
reasoning: "...",
scene_report: "...",
},
}
Where To Start¶
Install, quickstart, your first scene.
Architecture, core types, emitters, channels, scenes, labels, annotations, and storage.
Generate datasets, add emitters, scale execution, and annotate existing records.
Schemas, CLI, storage, algorithms, operations, determinism, and test contracts.
Proposed abstract classes, records, configs, enums, and extension interfaces.
Design decisions, Sionna mapping, literature review, validation, roadmap, and open questions.
Architecture At A Glance¶
The pipeline is six swappable layers, emitters, channels, scenes, labels, annotations, storage, wrapped by one configuration system. Mature libraries handle specialized RF, DSP, storage, and execution behavior where they fit. Framework contracts define the records, lifecycle, metadata, validation, reproducibility, and backend boundaries.
Configuration (Hydra-style composition + Pydantic-style validation)
emitter | channel | scene | labeler | annotator | storage | executor
Lifecycle
parse CLI
compose and validate config
resolve plugins and external assets
capture environment and tool versions
seed runtime
plan scene geometry, timing, frequency, and power
generate emitter components
apply channel and receiver effects
compose IQ and structured labels
write canonical records and manifests
attach or verify text annotations
export training shards or reports
See Concepts / Architecture for the full scene, emitter, channel, label, annotation, and storage data flow.
Documentation Practice Notes¶
This site follows patterns from mature documentation systems:
Framework documentation separates getting started, concepts, how-to guides, reference contracts, API reference, and background rationale.
Reference pages define implementation contracts; concept pages explain mental models; how-to guides complete one task at a time.
Data generation uses mature tools by default. Custom framework code exists to stabilize records, boundaries, configuration, metadata, validation, reproducibility, and backend switching.