Scene Geometry¶
Warning
Pre-implementation. This page describes proposed contracts. Class signatures, parameter types, config field names, and behavior are subject to change before code lands. Once implementation exists, content here will be regenerated from docstrings or sourced from running tests.
Geometry describes the physical place a radio signal travels through when the propagation backend needs an actual three-dimensional scene. It answers questions such as where the transmitter and receiver are, what buildings or walls are nearby, and which antenna arrays and radio materials the ray tracer should use.
In rfgen, geometry is only part of a Scene when the channel uses site-specific ray tracing. Sionna ray tracing (Sionna RT) consumes the 3D scene and computes radio paths through it; rfgen records which scene asset was used and passes it to the channel backend.
Geometry is required for site-specific ray-traced propagation and rejected for statistical propagation presets that do not consume 3D assets. The scene composer should fail fast when geometry and propagation backend are incompatible. See Scenes for the compatibility model.
Source: Sionna RT is a differentiable ray tracer for radio propagation. It is built on Mitsuba 3 scene assets and exposes scene, radio-material, antenna-array, path, and radio-map APIs. The Sionna RT technical report covers the channel impulse response and radio-map algorithms.
What Geometry Does¶
Scene geometry provides:
a Sionna RT scene asset,
transmit (TX) and receive (RX) positions and orientations,
TX and RX antenna arrays,
radio-material assignments, meaning Sionna / Mitsuba material properties used by the ray tracer,
optional movement or Doppler inputs, where Doppler is frequency shift caused by relative motion,
a content hash so the generated dataset records which physical scene was used.
The geometry layer does not implement propagation equations. It prepares assets and metadata for Sionna RT; the channel backend computes paths, delays, angles, Doppler, and complex coefficients.
Source: Sionna RT’s technical report documents ray-tracing algorithms for channel impulse responses and radio maps, including material, antenna, array-geometry, transmitter-position, and receiver-position parameters. rfgen therefore treats geometry as backend input, not as an RF propagation implementation owned by the framework.
Minimal Example¶
These examples are proposed config sketches. See
Reference / Config Schema for the
current GeometryConfig schema.
Use a shipped ray-tracing scene:
geometry = GeometryConfig(
source="sionna_builtin",
scene_name="munich",
carrier_frequency_hz=3.5e9,
tx_array={"pattern": "tr38901", "num_rows": 1, "num_cols": 1},
rx_array={"pattern": "tr38901", "num_rows": 1, "num_cols": 4},
)
Here sionna_builtin selects a packaged Sionna RT scene, munich names a
starter city scene from Sionna, carrier_frequency_hz is the radio-frequency
(RF) carrier in hertz, and tr38901 refers to the intended 3rd Generation
Partnership Project (3GPP) TR 38.901 antenna-pattern convention.
Use a custom scene exported from a mature 3D asset path:
geometry = GeometryConfig(
source="mitsuba_xml",
scene_xml="assets/scenes/campus_quad.xml",
carrier_frequency_hz=5.9e9,
material_policy="use_scene_materials",
)
Available Scene Sources¶
This table compares asset-authoring routes. OpenStreetMap (OSM) is a map-data source, computer-aided design (CAD) and building information modeling (BIM) are engineering asset formats, and Universal Scene Description (USD) is a 3D scene interchange format used by NVIDIA Omniverse.
Source |
Status |
Best use |
Notes |
|---|---|---|---|
Sionna RT shipped scenes |
Default starter path |
Generic urban, street-canyon, and test scenes |
Zero asset pipeline; good first choice |
OSM via Blender-OSM and Mitsuba-Blender |
Recommended custom outdoor path |
Specific streets, campuses, intersections |
Requires manual cleanup; avoids custom OSM conversion code |
CAD / BIM / hand-authored Mitsuba XML |
Advanced path |
Indoor, rooftop, or controlled environments |
Higher effort; needs asset discipline |
NVIDIA USD / Omniverse path |
Open question |
NVIDIA ecosystem scene authoring |
Round-trip fidelity for radio materials needs verification |
Procedural city generation |
Open question |
Synthetic city populations |
Candidate libraries not yet evaluated |
The framework should not write 3D geometry tooling from scratch. Use Sionna RT, Mitsuba, Blender, OSM, CAD/BIM, or another mature asset path.
Source: Sionna RT consumes Mitsuba 3 scene assets, and Mitsuba documents the scene XML format and plugin-based geometry/material model. The detailed asset-path notes are collected in Reference / Scene Geometry Assets.
Sionna RT Ownership¶
rfgen chooses the scene asset, records its content hash and metadata, and passes the geometry configuration to Sionna RT. Sionna RT then computes the ray-traced propagation paths for each transmitter and receiver pair.
A ray-tracing backend loads a scene asset, applies radio materials and antenna arrays, and computes per-path channel information for each TX/RX pair. The returned channel already includes signal weakening over the paths it finds plus geometry interactions such as reflection or diffraction, so adding a separate path-loss model would double count that attenuation.
Source: Sionna RT’s documentation and technical report describe channel impulse response computation from scene geometry, radio materials, transmitter and receiver positions, and antenna arrays. Channels / Channel records the same delegation rule for the SionnaRTChannel backend.
Asset and Material Summary¶
Ray-tracing scenes typically contain:
Sionna
SceneObjects, meaning loaded mesh objects with radio-material assignments,transmitter and receiver nodes with positions and orientations,
rfgen
tx_arrayandrx_arrayconfig fields for antenna definitions,scene frequency,
radio materials from Sionna’s ITU-R P.2040 library or custom material definitions. ITU-R P.2040 is a recommendation for building-material propagation properties.
Custom array geometry should use the propagation backend’s antenna-array interfaces rather than bespoke RF array math.
Detailed notes on Mitsuba, Blender/OSM ingestion, radio materials, antenna arrays, and comparable ray tracers live in Reference / Scene Geometry Assets.
Source: Sionna RT exposes scene objects, radio materials, transmitters, receivers, tx_array, rx_array, and scene frequency as scene-level inputs. Its radio-material model includes ITU-R P.2040 material data, and ITU-R Recommendation P.2040 defines frequency-dependent building-material electrical properties for radio-wave propagation.
With and Without Geometry¶
Switching from a statistical scene to a geometric scene is a propagation-backend change. Everything else stays conceptually the same: planning, emitter generation, TX impairments, receiver summation, RX capture, RX hardware, labels, and storage.
The following block is a full-contract skeleton. It shows where the channel propagation backend changes, while the surrounding transmitter and receiver hardware transformations remain the same.
from rfgen.channels import (
BaseADCQuantization,
BaseAGC,
BaseCFO,
BaseDACQuantization,
BaseIFFilter,
BaseLNANoise,
BasePANonlinearity,
BaseResampler,
BaseRXIQImbalance,
BaseRXMixer,
BaseRXPhaseNoise,
BaseTXIQImbalance,
BaseTXPhaseNoise,
ChannelPipeline,
SionnaRTChannel,
SionnaUMiChannel,
)
tx_impairments = [
BaseDACQuantization(bits=14),
BasePANonlinearity(),
BaseTXPhaseNoise(),
BaseTXIQImbalance(),
BaseCFO(ppm_std=1.0),
]
rx_capture_and_hardware = [
BaseRXMixer(),
BaseIFFilter(),
BaseResampler(),
BaseLNANoise(nf_db=5.0),
BaseADCQuantization(enob=10.0),
BaseRXPhaseNoise(),
BaseRXIQImbalance(),
BaseAGC(),
]
# Statistical scene: no geometry needed.
statistical_channel = ChannelPipeline([
*tx_impairments,
SionnaUMiChannel(carrier_hz=3.5e9),
*rx_capture_and_hardware,
])
# Geometric scene: SionnaRTChannel consumes a 3D scene asset.
geometric_channel = ChannelPipeline([
*tx_impairments,
SionnaRTChannel(
scene_xml="assets/sionna/munich.xml",
max_depth=3,
num_paths=128,
),
*rx_capture_and_hardware,
])
The scene-composition flow is identical in both cases. Choose a statistical propagation backend, such as SionnaUMiChannel, when no geometry asset is needed. Choose a ray-tracing backend, such as SionnaRTChannel, when a 3D scene asset should drive propagation. Generated waveforms, receiver capture, receiver hardware, labels, and storage keep the same record contract.
Backend-specific constructors, asset-resolution helpers, and path conventions belong in Reference / Scene Geometry Assets and the config schema reference.
When to Use Geometry¶
Situation |
Requires |
Recommended source |
|---|---|---|
Generic statistical deployment |
No |
Statistical propagation preset |
Generic urban ray-tracing study |
Yes |
Sionna shipped city scene |
Specific campus, street, intersection, or venue |
Yes |
OSM/Blender or CAD to Mitsuba XML |
Indoor layout with walls and rooms |
Yes |
CAD/BIM or hand-authored Mitsuba XML |
Near-field antenna or circuit-level effects |
Not with Sionna RT alone |
Use a specialized EM/tooling path; treat as open research |
Geometry quality often matters more than fine material tuning. Treat this as a validation hypothesis for each scenario, not a universal law.
Source: the OpenGERT Sionna RT sensitivity study reports channel-statistic sensitivity to building-height and position perturbations, compared with smaller material-parameter perturbations when starting materials are roughly accurate. Treat that result as a scenario-specific heuristic, not as a general RF law.
Open Questions¶
Indoor scene authoring. Matterport, Archicad/Revit, and hand-authored XML workflows need a dedicated verification pass for importing indoor walls, rooms, and material assignments.
Vegetation. Sionna’s shipped ITU material list does not include vegetation; foliage material modeling needs a source-backed policy.
USD / Omniverse interop. USD-to-Mitsuba paths exist, but radio-material fidelity during scene conversion is unverified.
Mobility thresholds. Practical thresholds for when moving transmitters, receivers, or objects require path recomputation need measurement.
References¶
NVIDIA Sionna RT documentation. https://nvlabs.github.io/sionna/rt/
Ait Aoudia, F. et al. Sionna RT: Technical Report. https://nvlabs.github.io/sionna/rt/tech-report/
Mitsuba 3 documentation. Scene format. https://mitsuba.readthedocs.io/en/stable/src/key_topics/scene_format.html
ITU-R Recommendation P.2040. Effects of building materials and structures on radiowave propagation above about 100 MHz. https://www.itu.int/rec/R-REC-P.2040/
Tadik, S. et al. OpenGERT: Open Source Automated Geometry Extraction with Geometric and Electromagnetic Sensitivity Analyses for Ray-Tracing Propagation Models. https://arxiv.org/abs/2501.06945
See Also¶
Scenes for geometry/backend locking rules and fail-fast behavior.
Scene Composition for the statistical multi-emitter composer.
Channels / Channel for SionnaRTChannel and statistical propagation backends.
Reference / Scene Geometry Assets for detailed asset/tooling notes.
Background / Sionna stack for how Sionna maps to the framework.
Reference / Config Schema for
GeometryConfig.