Scene manifest

Warning

Pre-implementation. This page describes proposed contracts. Class signatures, parameter types, schema fields, and behavior are subject to change before code lands. Once implementation exists, content here will be regenerated from docstrings or sourced from running tests.

A scene manifest is the per-scene provenance record. It is the on-disk evidence that a scene came from a specific frozen rfgen commit, config, and seed, and it carries the realized emitter, channel, and SNR (signal-to-noise ratio) values that LabelExtractor turns into task labels. One scene yields one manifest; a DatasetRecipe yields one manifest per seed.

The serialized form is the SceneManifest Pydantic model. It mirrors the example manifest already shown in Datasets and is the unit content-hashed for bit-for-bit reproducibility. See Reproducibility for how the hash is computed.

Schema fields

Field

Type

Purpose

scene_id

str

Stable per-scene identifier, for example emma-scene-00017a.

generator

str

The generator that produced the scene. Always rfgen for synthetic recipes; the adapter name for real captures.

commit

str

The frozen rfgen git SHA (or capture-testbed record id) the scene was generated from.

config

str

Path to the resolved rfgen GenerationConfig (or capture manifest) used for this scene.

seed

int

The integer seed that parameterized this scene. The seed, plus commit and config, fully determines the I/Q (in-phase and quadrature).

content_hash

str

Content hash of the generated I/Q and metadata, for example sha256:b7e3...f019. The reproducibility anchor.

arrays

list[str]

Receiver array identifiers, for example ["rx-8elem-ura"]. Resolved into ArraySpec at load time.

emitters

list[EmitterRecord]

The realized emitters in the scene, each carrying its family, waveform, aoa_deg, and los_flag. The source of per-task label metadata for E-LOC-AOA and E-LOC-LOS.

channel

str

The channel environment identifier, for example urban-multipath. Maps to an Environment member for OOD (out-of-distribution) splitting.

snr_db

float

The realized signal-to-noise ratio in decibels after the rfgen channel chain. An OOD axis; see Environment reference for the per-task wiring.

Example

This matches the manifest shown in the Datasets registry. Each entry in emitters is an EmitterRecord that promotes the rfgen per-emitter metadata subset EMMA consumes for labeling. The aoa_deg and los_flag fields are the promoted label sources for E-LOC-AOA and E-LOC-LOS; the rfgen metadata paths a recipe’s label_extraction map targets, such as emitters[].aoa_deg and emitters[].los_flag, are listed in Dataset recipe.

# example scene manifest (proposal)
scene_id: emma-scene-00017a
generator: rfgen
commit: a91f3c2
config: scenes/v0.1/urban-mimo.yaml
seed: 17
content_hash: sha256:b7e3...f019
arrays: [rx-8elem-ura]
emitters:
  - {emitter_idx: 0, family: drone-rf, class_name: drone-model-a, waveform: ofdm, aoa_deg: 42,  los_flag: false}
  - {emitter_idx: 1, family: comms,    class_name: qpsk-handset,  waveform: qpsk, aoa_deg: 118, los_flag: true}
channel: urban-multipath
snr_db: 12.0

References

  • NVIDIA Sionna: Hoydis et al., “Sionna: An Open-Source Library for Next-Generation Physical Layer Research,” 2023, arXiv:2203.11854. The ray tracer whose per-emitter arrival-angle and path-class metadata populate the manifest.

See Also