Scenario Presets¶
Named end-to-end Hydra recipes ship as package data under
src/rfgen/cli_data/presets/. Each file carries metadata plus a config that
validates through GenerationConfig.
Canonical preset differences¶
Preset |
|
Density mode |
Channel transformations |
Geometry backend |
Geometry asset kind |
|---|---|---|---|---|---|
|
100000 |
|
|
|
|
|
50000 |
|
|
|
none |
|
100000 |
|
|
|
none |
|
250000 |
|
|
|
none |
|
50000 |
|
|
|
|
|
100 |
|
|
|
none |
|
10000 |
|
none |
|
|
|
10000 |
|
none |
|
|
|
10000 |
|
none |
|
|
rfgen generate --config-dir src/rfgen/cli_data/presets --config-name <name>
dense_urban_2_4ghz¶
Scenario. Dense 2.4 GHz ISM band. Wi-Fi a/g, BLE advertising/data, Zigbee, microwave-oven leakage, plus a handful of LoRa beacons. ~50 emitters per 100 MHz scene.
Channel. Sionna RT over an OSM scene (default: Munich downtown). Multi-bounce reflections enabled.
Annotations. Full suite (caption, QA, reasoning, scene_report, contrastive).
Size. _md 100K samples, _lg 1M, _xl 10M.
Intended downstream task. Wideband detection + dense-emitter coexistence research; CLIP-for-RF training.
narrowband_classifier_baseline¶
Scenario. Single-emitter narrowband classification smoke test. The emitter
zoo is comms_only: binary phase-shift keying (BPSK), quadrature
phase-shift keying (QPSK), 16-state quadrature amplitude modulation (16-QAM),
and 64-state quadrature amplitude modulation (64-QAM).
Channel. TorchSig-compatible impairment preset for quick local checks.
Annotations. None by default. Add annotator=caption_only to append
caption text after Phase 1 generation.
Size. 100 samples in the quickstart, _xs for 10-sample integration
tests, _md for 100K-sample release gates.
Intended downstream task. First-run validation and narrowband modulation classification examples.
contested_ew_lband¶
Scenario. L-band radar (1–2 GHz) under jamming. One pulsed search radar, one tracking radar (FMCW), 2–4 jammers (barrage noise + sweep), occasional comms downlink.
Channel. TDL-A (mostly LOS) + per-emitter AoA via 4-element ULA. Multi-RX.
Annotations. Reasoning + scene_report only (this preset feeds RF-LLM evaluation, not bulk pretraining).
Size. _md 50K samples (smaller because reasoning annotations are expensive).
Intended downstream task. Electronic-warfare scene understanding; multi-RX direction-finding research.
rural_ads_b¶
Scenario. Sparse aviation surveillance. ADS-B 1090 MHz with 1–10 simultaneous aircraft over a 1-second window, plus the occasional mode-S transponder. Realistic 1-Hz emission cadence per aircraft.
Channel. Sionna-backed propagation preset: SionnaRT for geometry-aware runs or SionnaUMi / SionnaUMa for statistical urban runs. Single-RX by default.
Annotations. Caption + scene_report.
Size. _md 100K, _lg 1M.
Intended downstream task. ADS-B baseline + sparse-emitter detection.
device_fingerprint_lora_25¶
Scenario. 25 distinct LoRa devices on a single channel (SF7-SF12, BW 125-500 kHz). Per-device CFO, IQ imbalance, phase noise, PA nonlinearity drawn from a fixed seed table, so the same device produces the same fingerprint across samples.
Channel. AWGN + TorchSig impairments level 2.
Annotations. Caption + attribute QA (with device-level questions).
Size. _md 250K (10K per device).
Intended downstream task. RF fingerprinting and SEI (specific emitter identification) research.
multimodal_drone_sim¶
Scenario. Single drone in flight: OcuSync downlink (video + telemetry) + 2.4 GHz controller uplink, optionally a co-located Wi-Fi access point, simulated in 100 ms windows.
Channel. Sionna RT with a moving TX (the drone) over an outdoor scene. Doppler-aware.
Annotations. Full suite, with reasoning chains that include the drone’s flight state (ascending, hovering, descending).
Size. _md 50K.
Intended downstream task. Drone detection / classification; multimodal RF + telemetry research.
How presets compose¶
Each preset is a Hydra config file under src/rfgen/cli_data/presets/:
# src/rfgen/cli_data/presets/dense_urban_2_4ghz.yaml
defaults:
- /emitter_zoo: heterogeneous_dense_24ghz
- /channel: sionna_rt_munich
- /scene: dense
- /label: joint
- /annotator: full_suite
- /storage: zarr_gcs
- /orchestration: spark_serverless
- _self_
run:
num_samples: ${oc.select:size_lg, 1000000}
shard_size: 1000
scene:
sample_rate_hz: 200e6
bandwidth_hz: 100e6
center_hz: 2.45e9
duration_s: 0.1
density:
mode: poisson
poisson_rate: 50
max_emitters: 100
Override at the CLI:
# Use the small variant
rfgen generate +preset=dense_urban_2_4ghz size=md
# Override one knob
rfgen generate +preset=dense_urban_2_4ghz scene.density.poisson_rate=30
Open questions¶
Variant suffix syntax.
_md/_lg/_xlas preset suffix or as asize=mdoverride? Current lean: suffix in the file name + Hydra-resolvable variable.Should presets ship channel-realization seeds for reproducibility? Pinning a seed makes the preset reproduce identically; it also makes “another sample from the same preset” mean “the same sample.” Lean: don’t pin scene seed; do pin channel-realization-table seed for fingerprint presets.