Skip to content

Pipelines Module Capabilities

This document details the capabilities of the DeepMIMO pipelines module, which provides end-to-end workflows for ray-tracing simulation and scene generation.

Overview

The pipelines module supports: - Sionna RT Pipeline: Execute Sionna ray-tracing simulations - Wireless InSite Pipeline: Execute Wireless InSite ray-tracing simulations - Blender OSM: Generate 3D scenes from OpenStreetMap data - TX/RX Placement: Utilities for positioning transmitters and receivers


Sionna RT Pipeline

Executes Sionna ray-tracing simulations with support for both Sionna 0.19.x and 1.x versions.

Feature Support Notes
Execution
Ray tracing computation Compute paths from scene
Batch processing DataLoader for RX batches
GPU acceleration Leverages TensorFlow/Mitsuba GPU
CPU offload Move results to CPU after computation
Progress tracking tqdm progress bars
Version Support
Sionna 0.19.x Legacy version
Sionna 1.x Current version (1.0.0-1.0.2)
Automatic version detection Handles API differences
Version validation Warns on untested versions
Scene Input
XML scene files Load from Mitsuba XML
Mitsuba scene objects Direct scene import
Material assignment ITU/custom materials
Custom geometries Any Mitsuba-compatible scene
TX/RX Configuration
Single TX Single transmitter position
Multiple TXs List of TX positions
TX grid Automated TX placement
RX grid Automated RX placement
Custom positions User-defined coordinates
Antenna patterns ✓ [a] Via Sionna antenna objects
Array configurations Multi-element arrays
Ray Tracing Parameters
Max path depth Total interactions
Reflections Specular reflections
Diffractions Edge diffractions
Scattering Diffuse scattering [b]
Transmissions ✗ [c] Not supported by Sionna
Number of rays Rays per antenna
Synthetic array Enable/disable
Output Options
Export to pickle Via sionna_exporter
Path inspection Custom callback function
Auto-conversion ✓ [d] Optional direct conversion
Multi-scene export Time-varying scenarios
Advanced Features
Path solver configuration Sionna 1.x PathSolver
Scene materialization Sionna 0.19.x
Custom compute params Pass-through parameters
TensorFlow GPU config ✓ [e] Sionna 0.19.x only

Wireless InSite Pipeline

Executes Wireless InSite ray-tracing simulations via command-line interface.

Feature Support Notes
Execution
Ray tracing computation Via calcprop_server
Batch processing Multiple scenarios
Multi-core support ✓ [f] InSite internal parallelization
Progress monitoring ✗ [g] External process
Version Support
Wireless InSite 3.x Tested
Wireless InSite 4.x Tested
Version detection From config
Scene Input
PLY building files From Blender OSM
PLY terrain files From Blender OSM
CITY format Native InSite format
TER format Terrain definition
VEG format Vegetation (foliage)
Custom geometries Any InSite-compatible
TX/RX Configuration
Single TX Single transmitter
Multiple TXs TX grid/list
RX grid Grid with spacing
Custom TX positions GPS or Cartesian
Custom RX positions GPS or Cartesian
Antenna patterns ✓ [h] InSite antenna library
Polarization V/H/Both
File Generation
Setup file (.setup) XML format
TXRX file (.txrx) XML format
Terrain file (.ter) Text format
City file (.city) From PLY
Study area XML For InSite UI
Ray Tracing Parameters
Carrier frequency In Hz
Reflections Max count
Diffractions Max count
Scattering Enable/disable
Transmissions Max count
Terrain interactions Enable/disable
Waveform properties CW/pulse/OFDM
Material Assignment
Building materials From config
Road materials From config
Terrain materials From config
ITU-R materials Built-in library
Custom materials User-defined
Output Options
P2M path files Path data
Study info files Simulation metadata
Auto-conversion ✓ [d] Optional direct conversion
Advanced Features
Multiple study areas Separate simulations
Timestamp naming Avoid overwrite
License management License file path
Executable path Custom InSite location

Blender OSM Pipeline

Generates 3D scenes from OpenStreetMap data using Blender.

Feature Support Notes
Scene Generation
OSM data import Via blosm addon
Bounding box input GPS coordinates
Auto-fetch from OSM Direct download
Output Formats
InSite format (PLY) Buildings and roads
Sionna format (XML) Mitsuba scene
Simultaneous export Both formats at once
Scene Elements
Buildings 3D extruded
Roads Ground-level paths
Terrain Ground plane
Vegetation ✗ [i] Not currently extracted
Processing
Road trimming To bounding box
Road filtering Remove invalid
Material assignment Buildings and roads
Mesh conversion All to mesh objects
Object organization By category
Coordinate Systems
GPS coordinates Input bounding box
Cartesian conversion For simulation
Origin storage GPS reference point
Bounds metadata Saved to file
Visualization
Camera setup Automatic positioning
Scene rendering Before/after processing
Image export PNG format
Lighting setup World lighting
Blender Integration
Addon installation Auto-install blosm
Headless operation Command-line execution
Scene clearing Clean slate for each run
Error logging File and console logs
Output Organization
Folder per scenario Named by bbox
Metadata files Origin, bbox, logs
Figure output Separate figs folder
Skip existing Avoid re-processing

TX/RX Placement Utilities

Helper functions for positioning transmitters and receivers.

Feature Support Notes
TX Placement
GPS coordinates Lat/lon/height
Multiple TXs List of positions
GPS to Cartesian Automatic conversion
Origin reference Relative positioning
RX Grid Generation
Rectangular grid 2D plane
Custom spacing Grid resolution
Height specification Z-coordinate
GPS bounding box Grid area from GPS
Cartesian bounds Direct bounds input
Plane Grid Generation
XY plane (Z-normal) Horizontal plane
XZ plane (Y-normal) Vertical plane
YZ plane (X-normal) Vertical plane
Fixed coordinate Plane position
Min/max coordinates Plane extent
Custom spacing Grid density
Coordinate Conversions
GPS to relative Cartesian From origin
GPS bbox to Cartesian Bounding box conversion
Origin tracking Reference point storage

Usage Examples

Sionna RT Pipeline

from deepmimo.pipelines.sionna_rt import raytrace_sionna

# Run Sionna ray tracing
raytrace_sionna(
    scene_path='./my_scene.xml',
    tx_pos=[[0, 0, 10]],
    rx_pos=rx_grid,
    save_folder='./sionna_output',
    max_depth=6,
    num_samples=1e6
)

Wireless InSite Pipeline

from deepmimo.pipelines.wireless_insite import raytrace_insite

# Run InSite ray tracing
raytrace_insite(
    osm_folder='./my_osm_scene',
    tx_pos=tx_positions,
    rx_pos=rx_grid,
    carrier_freq=28e9,
    max_reflections=5,
    max_diffractions=1,
    wi_exe='/path/to/calcprop_server',
    wi_lic='/path/to/license.lic'
)

Blender OSM

from deepmimo.pipelines.blender_osm import fetch_osm_scene

# Generate scene from OSM
fetch_osm_scene(
    minlat=40.7580,
    minlon=-73.9855,
    maxlat=40.7620,
    maxlon=-73.9800,
    output_folder='./times_square',
    output_formats=['insite', 'sionna']
)

TX/RX Placement

from deepmimo.pipelines.txrx_placement import gen_tx_pos, gen_rx_grid

rt_params = {
    'bs_lats': [40.7589],
    'bs_lons': [-73.9851],
    'bs_heights': [25],
    'origin_lat': 40.7580,
    'origin_lon': -73.9855,
    'min_lat': 40.7580,
    'min_lon': -73.9855,
    'max_lat': 40.7620,
    'max_lon': -73.9800,
    'grid_spacing': 5,
    'ue_height': 1.5
}

tx_pos = gen_tx_pos(rt_params)
rx_pos = gen_rx_grid(rt_params)

Notes

  • [a] Antenna patterns configured via Sionna's Antenna objects; see Sionna documentation.
  • [b] Scattering in Sionna limited to final interaction only (diffuse_final_interaction_only).
  • [c] Transmissions not supported by Sionna RT engine; use AODT or InSite for transmission support.
  • [d] Auto-conversion requires calling converter after pipeline execution.
  • [e] TensorFlow GPU configuration only relevant for Sionna 0.19.x (uses TensorFlow); Sionna 1.x uses dr.jit.
  • [f] Wireless InSite parallelization controlled by InSite settings, not DeepMIMO.
  • [g] Progress monitoring requires external process monitoring; InSite runs as separate process.
  • [h] InSite antenna patterns from InSite library; custom patterns require InSite antenna files.
  • [i] Vegetation extraction from OSM not currently implemented in Blender pipeline.

Common Limitations

These limitations apply across pipeline operations:

  • External dependencies: Each pipeline requires specific software (Sionna, InSite, Blender).
  • Version compatibility: Tested versions documented; others may not work.
  • Sequential execution: Pipelines run sequentially; no built-in parallelization across scenarios.
  • Memory requirements: Large scenes may require significant RAM for geometry processing.
  • Disk space: Ray-tracing outputs can be large (GB per scenario).