Skip to content

W9 - ntn-sionna

ntn-sionna is the ns3-ntn-toolkit module that bridges NVIDIA Sionna RT GPU ray tracing into ns-3 as an opt-in propagation loss model for satellite-to-ground and other non-terrestrial links. It streams transmitter, receiver and frequency state into a resident Mitsuba scene on the GPU and returns ray-traced path loss, path counts and full channel impulse response (CIR) taps, composed with the ITU-R atmospheric chain and calibrated against 3GPP TR 38.811.

Why it matters. Closed-form models like TR 38.811 are fast and reproducible, but they collapse every reflective object into a single scalar shadowing term. Physical-layer research on beamforming in clutter, multipath fading on a moving LEO link, or RIS recovery of a blocked NLOS path needs a real ray tracer. ntn-sionna gives ns-3 that fidelity while keeping the closed-form channel as the default.

What it simulates

  • NVIDIA Sionna RT bridge - an opt-in NtnSionnaChannel PropagationLossModel queries a Python server that keeps the Mitsuba 3 scene resident on the GPU, returning {path_loss_db, n_paths, compute_ms} per query with a sub-50 ms loopback round-trip gate.
  • Pluggable transports - UDP to a live GPU server, in-process pybind, a 4-D LRU caching decorator, and a record/replay transport so an entire simulation can run with no live Sionna GPU at all, falling back to closed-form FSPL when nothing answers.
  • Full channel impulse response and Doppler - SionnaCirPropagationLossModel keeps the complete CIR (multipath taps plus per-tap Doppler synthesized by CirDopplerSynthesizer), so measured SINR exhibits genuine constructive and destructive fading a scalar path loss cannot reproduce.
  • ITU-R atmospheric cascade - NtnSionnaCascadeChannel composes the ray-traced geometry with the ITU-R gaseous (P.676), rain (P.618/P.838) and land-mobile-satellite (P.681) chain so the link budget reflects molecular absorption and weather that ray tracing alone does not model.
  • MIMO, RIS and calibration - N×N cross-pol array gain as a per-UE channel plug-in, RIS transmit surfaces installed in the scene per query, and a SionnaCalibrator residual harness checking the ray-traced channel against TR 38.811 within a configurable dB gate (measured max |Δ| of 0.002 dB across a 30-step LEO pass).
  • Measured-radio data plane - example drivers run a real mmwave NR NTN cell (SpectrumPhy + MAC + HARQ + RLC/PDCP + RRC + EPC) with SGP4 Walker satellite mobility, so SINR, TBLER and goodput are measured off the PHY trace, not asserted.
NVIDIA Sionna RT ray-traced NTN channel animated in ns-3
Sionna RT ray-traced satellite-to-ground channel driving an ns-3 link.

Standards & references

  • NVIDIA Sionna RT - GPU ray tracing and channel impulse response generation (Mitsuba 3 differentiable rendering backend).
  • ITU-R P.676 - attenuation by atmospheric gases.
  • ITU-R P.618 / P.838 - rain attenuation prediction and specific attenuation models.
  • ITU-R P.681 - land-mobile-satellite (LMS) shadowing.
  • 3GPP TR 38.811 - non-terrestrial network channel reference used as the calibration baseline.

Use cases

  • Compare GPU ray-traced path loss against the TR 38.811 closed-form reference across a full LEO elevation pass and quantify the residual.
  • Study multipath fading and per-tap Doppler on a moving satellite link where a scalar shadowing term hides constructive and destructive interference.
  • Evaluate RIS-assisted recovery of a blocked NLOS satellite link, measuring SINR and goodput before and after the surface engages.
  • Sweep a convective rain cell over a Ka-band gateway mid-pass and observe live SINR and goodput dips and recovery through the ITU-R cascade.
  • Benchmark SISO versus N×N MIMO terminals on a shared NTN cell with array gain as a measured channel plug-in.

Run it

./ns3 run "ntn-sionna-leo-downlink-traffic --simSeconds=60 --rainMmH=10 --lms=1"

This Ku-band LEO downlink runs the ITU-R cascade (P.676 gaseous, P.618/P.838 rain, optional P.681 LMS) live in the packet path of a real mmwave NR NTN cell and prints per-second elevation, attenuation, SINR, TBLER and goodput. No GPU is required, the channel falls back to closed-form FSPL when no Sionna transport answers.