Metadata-Version: 2.1
Name: sionna
Version: 0.19.0
Summary: Sionna -- A TensorFlow-based open-source library for simulating the physical layer of wireless communication systems
Home-page: https://nvlabs.github.io/sionna/
Download-URL: https://github.com/NVlabs/sionna/releases
Author: The Sionna contributors
Author-email: sionna@nvidia.com
License: Apache 2.0
Project-URL: Bug Tracker, https://github.com/NVlabs/sionna/issues
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: Apache Software License
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tensorflow<2.16.0,>=2.13.0
Requires-Dist: numpy
Requires-Dist: matplotlib
Requires-Dist: scipy>=1.6.0
Requires-Dist: importlib-resources
Requires-Dist: mitsuba>=3.2.0
Requires-Dist: pythreejs>=2.4.2
Requires-Dist: ipywidgets>=8.0.4
Requires-Dist: ipydatawidgets==4.3.2
Requires-Dist: jupyterlab-widgets==3.0.5

<!--
SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->
# Sionna: An Open-Source Library for Next-Generation Physical Layer Research

Sionna&trade; is an open-source Python library for link-level simulations of digital communication systems built on top of the open-source software library [TensorFlow](https://www.tensorflow.org) for machine learning.

The official documentation can be found [here](https://nvlabs.github.io/sionna/).

## Installation

Sionna requires [Python](https://www.python.org/) and [Tensorflow](https://www.tensorflow.org/).
In order to run the tutorial notebooks on your machine, you also need [JupyterLab](https://jupyter.org/).
You can alternatively test them on [Google Colab](https://colab.research.google.com/).
Although not necessary, we recommend running Sionna in a [Docker container](https://www.docker.com).

Sionna requires [TensorFlow 2.13-2.15](https://www.tensorflow.org/install) and Python 3.8-3.11. We recommend Ubuntu 22.04. Earlier versions of TensorFlow may still work but are not recommended because of known, unpatched CVEs.

To run the ray tracer on CPU, [LLVM](https://llvm.org) is required by DrJit.  Please check the [installation instructions for the LLVM backend](https://drjit.readthedocs.io/en/latest/what.html#backends).

We refer to the [TensorFlow GPU support tutorial](https://www.tensorflow.org/install/gpu) for GPU support and the required driver setup.

### Installation using pip

We recommend to do this within a [virtual environment](https://docs.python.org/3/tutorial/venv.html), e.g., using [conda](https://docs.conda.io).
On macOS, you need to install [tensorflow-macos](https://github.com/apple/tensorflow_macos) first.

1.) Install the package
```
    pip install sionna
```

2.) Test the installation in Python
```
    python
```
```
    >>> import sionna
    >>> print(sionna.__version__)
    0.19.0
```

3.) Once Sionna is installed, you can run the [Sionna "Hello, World!" example](https://nvlabs.github.io/sionna/examples/Hello_World.html), have a look at the [quick start guide](https://nvlabs.github.io/sionna/quickstart.html), or at the [tutorials](https://nvlabs.github.io/sionna/tutorials.html).

The example notebooks can be opened and executed with [Jupyter](https://jupyter.org/).

For a local installation, the [JupyterLab Desktop](https://github.com/jupyterlab/jupyterlab-desktop) application can be used which also includes the Python installation.

### Docker-based installation

1.) Make sure that you have [Docker](<https://docs.docker.com/engine/install/ubuntu/>) installed on your system. On Ubuntu 22.04, you can run for example

```
    sudo apt install docker.io
```

Ensure that your user belongs to the `docker` group (see [Docker post-installation](<https://docs.docker.com/engine/install/linux-postinstall/>))

```
    sudo usermod -aG docker $USER
```
Log out and re-login to load updated group memberships.

For GPU support on Linux, you need to install the [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-docker).


2.) Build the Sionna Docker image. From within the Sionna directory, run

```
    make docker
```

3.) Run the Docker image with GPU support

```
    make run-docker gpus=all
```
or without GPU:
```
    make run-docker
```

This will immediately launch a Docker image with Sionna installed, running JupyterLab on port 8888.

4.) Browse through the example notebooks by connecting to [http://127.0.0.1:8888](http://127.0.0.1:8888) in your browser.

### Installation from source

We recommend to do this within a [virtual environment](https://docs.python.org/3/tutorial/venv.html), e.g., using [conda](https://docs.conda.io).

1.) Clone this repository and execute from within its root folder
```
    make install
```
2.) Test the installation in Python
```
    >>> import sionna
    >>> print(sionna.__version__)
    0.19.0
```

## License and Citation

Sionna is Apache-2.0 licensed, as found in the [LICENSE](https://github.com/nvlabs/sionna/blob/main/LICENSE) file.

If you use this software, please cite it as:
```bibtex
@article{sionna,
    title = {Sionna: An Open-Source Library for Next-Generation Physical Layer Research},
    author = {Hoydis, Jakob and Cammerer, Sebastian and {Ait Aoudia}, Fayçal and Vem, Avinash and Binder, Nikolaus and Marcus, Guillermo and Keller, Alexander},
    year = {2022},
    month = {Mar.},
    journal = {arXiv preprint},
    online = {https://arxiv.org/abs/2203.11854}
}
```
