ns3sionna is a software module that brings realistic channel simulation using ray tracing from Sionna (https://nvlabs.github.io/sionna/) to the widely used ns-3 network simulator (https://github.com/nsnam).
![]() |
![]() |
| Outdoor scenario (Munich) | Results from simulation |
More information can be found in our paper: Ns3Sionna paper
We recommend using Linux (e.g. Ubuntu 22 or higher) and a multi-core/GPU compute node.
- Install all dependencies required by ns-3 and those needed by our framework: ZMQ, Protocol Buffers:
apt-get update
apt-get install gcc g++ python3 python3-pip cmake
apt-get install libzmq5 libzmq5-dev
apt-get install libprotobuf-dev
apt-get install protobuf-compiler
apt-get install pkg-config
- Download and install ns3
wget https://www.nsnam.org/releases/ns-allinone-3.40.tar.bz2
tar xf ns-allinone-3.40.tar.bz2
cd ns-allinone-3.40
- Clone ns3sionna repository into contrib directory of ns3:
cd ./ns-3.40/contrib
git clone https://github.com/tkn-tub/ns3sionna.git ./sionna
Note: it is important to use the sionna as the name of the ns3sionna app directory.
- Configure and build ns-3 project:
cd ../
./ns3 configure --enable-examples
./ns3 build
Note: ns3sionna Protocol Buffer messages (C++ and Python) are build during configure.
- Install server component of ns3sionna located in model/ns3sionna (Python3 required)
cd ./contrib/sionna/model/ns3sionna/
python3 -m venv sionna-venv
source sionna-venv/bin/activate
python3 -m pip install -r requirements.txt
python3 tests/test_imports.py # all packages should be correctly installed
or using conda:
cd ./contrib/sionna/model/ns3sionna/
conda create -n sionna-venv python=3.12
conda activate sionna-venv
pip install -r requirements.txt
python3 tests/test_imports.py # all packages should be correctly installed
Note: ns3sionna was tested with Sionna==1.2.1.
- Start server component of ns3sionna
cd ./contrib/sionna/model/ns3sionna
./run.sh
Note: if you experience problems with Protocol Buffers use:
run_python_proto.sh
- Start a ns-3 example script (in separate terminal)
cd ns-3.40/contrib/sionna/examples
./example-sionna-sensing-mobile.sh
Note: you need to have matplotlib installed to see the results.
All examples can be found here.
Using Docker here
Using singularity here
- SISO only
- under development: MIMO
- Anatolij Zubow, TU-Berlin, zubow@tkn
- Sascha Roesler, TU-Berlin, zubow@tkn
- tkn = tkn.tu-berlin.de
Please use the following bibtex:
@techreport{zubow2024ns3-preprint,
author = {Zubow, Anatolij and Pilz, Yannik and R{\"{o}}sler, Sascha and Dressler, Falko},
doi = {10.48550/arXiv.2412.20524},
title = {{Ns3 meets Sionna: Using Realistic Channels in Network Simulation}},
institution = {arXiv},
month = {12},
number = {2412.20524},
type = {cs.NI},
year = {2024},
}


