├── .gitignore ├── LICENSE.txt ├── Learning_Materials.ipynb ├── Learning_Orientation.ipynb └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | mat.png 3 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | NVIDIA License 2 | 3 | 1. Definitions 4 | 5 | “Licensor” means any person or entity that distributes its Work. 6 | “Work” means (a) the original work of authorship made available under this license, which may include software, documentation, or other files, and (b) any additions to or derivative works thereof that are made available under this license. 7 | The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the meaning as provided under U.S. copyright law; provided, however, that for the purposes of this license, derivative works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work. 8 | Works are “made available” under this license by including in or with the Work either (a) a copyright notice referencing the applicability of this license to the Work, or (b) a copy of this license. 9 | 10 | 2. License Grant 11 | 12 | 2.1 Copyright Grant. Subject to the terms and conditions of this license, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free, copyright license to use, reproduce, prepare derivative works of, publicly display, publicly perform, sublicense and distribute its Work and any resulting derivative works in any form. 13 | 14 | 3. Limitations 15 | 16 | 3.1 Redistribution. You may reproduce or distribute the Work only if (a) you do so under this license, (b) you include a complete copy of this license with your distribution, and (c) you retain without modification any copyright, patent, trademark, or attribution notices that are present in the Work. 17 | 18 | 3.2 Derivative Works. You may specify that additional or different terms apply to the use, reproduction, and distribution of your derivative works of the Work (“Your Terms”) only if (a) Your Terms provide that the use limitation in Section 3.3 applies to your derivative works, and (b) you identify the specific derivative works that are subject to Your Terms. Notwithstanding Your Terms, this license (including the redistribution requirements in Section 3.1) will continue to apply to the Work itself. 19 | 20 | 3.3 Use Limitation. The Work and any derivative works thereof only may be used or intended for use non-commercially. Notwithstanding the foregoing, NVIDIA Corporation and its affiliates may use the Work and any derivative works commercially. As used herein, “non-commercially” means for research or evaluation purposes only. 21 | 22 | 3.4 Patent Claims. If you bring or threaten to bring a patent claim against any Licensor (including any claim, cross-claim or counterclaim in a lawsuit) to enforce any patents that you allege are infringed by any Work, then your rights under this license from such Licensor (including the grant in Section 2.1) will terminate immediately. 23 | 24 | 3.5 Trademarks. This license does not grant any rights to use any Licensor’s or its affiliates’ names, logos, or trademarks, except as necessary to reproduce the notices described in this license. 25 | 26 | 3.6 Termination. If you violate any term of this license, then your rights under this license (including the grant in Section 2.1) will terminate immediately. 27 | 28 | 4. Disclaimer of Warranty. 29 | 30 | THE WORK IS PROVIDED “AS IS” WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF 31 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER THIS LICENSE. 32 | 33 | 5. Limitation of Liability. 34 | 35 | EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 10 | 11 | # Sionna RT: Differentiable Ray Tracing for Radio Propagation Modeling 12 | 13 | This repository contains code to reproduce some of the results from the paper [Sionna RT: Differentiable Ray Tracing for Radio Propagation Modeling [A]](https://arxiv.org/abs/2303.11103) using the [Sionna™ link-level simulator [B]](https://nvlabs.github.io/sionna/). 14 | 15 | ## Abstract 16 | Sionna™ is a GPU-accelerated open-source library for link-level simulations based on TensorFlow. Since release (v0.14) it integrates a differentiable ray tracer (RT) for the simulation of radio wave propagation. This unique feature allows for the computation of gradients of the channel impulse response (or related quantities) with respect to many system and environment parameters, such as material properties, antenna patterns, array geometries, as well as transmitter and receiver orientations and positions. In this paper, we outline the key components of Sionna RT and showcase several use-cases such as learning of radio materials and optimizing transmitter orientations through gradient descent. While ray tracing is a crucial tool for 6G research on topics like reconfigurable intelligent surfaces, integrated sensing and communications, as well as user localization, we believe that differentiable ray tracing is a key enabler for many novel and exciting research directions such as digital twins. 17 | 18 | ## Setup 19 | Running this code requires [Sionna 0.16](https://nvlabs.github.io/sionna/) or later. 20 | To run the notebooks on your machine, you also need [Jupyter](https://jupyter.org). 21 | We recommend Ubuntu 22.04, Python 3.10, and TensorFlow 2.13. 22 | 23 | ## Structure of this repository 24 | 25 | The repository contains the following notebooks: 26 | 27 | * [Learning_Materials.ipynb](Learning_Materials.ipynb) : Demonstrates how electro-magnetic properties of objects in a scene can be learned by gradient descent. 28 | 29 | * [Learning_Orientation.ipynb](Learning_Orientation.ipynb) : Demonstrates how the orientation of a transmitter can be optimized by gradient descent. 30 | 31 | ## References 32 | 33 | [A] [J. Hoydis, F. Ait Aoudia, S. Cammerer, M. Nimier-David, N. Binder, G. Marcus, A. Keller, "Sionna RT: Differentiable Ray Tracing for Radio Propagation Modeling", Mar. 2023.](https://arxiv.org/abs/2303.11103) 34 | 35 | [B] [J. Hoydis, S. Cammerer, F. Ait Aoudia, A. Vem, N. Binder, G. Marcus, A. Keller, "Sionna: An Open-Source Library for Next-Generation Physical Layer Research", Mar. 2022.](https://arxiv.org/abs/2203.11854) 36 | 37 | ## License and Citation 38 | 39 | Copyright © 2023, NVIDIA Corporation. All rights reserved. 40 | 41 | This work is made available under the [NVIDIA License](LICENSE.txt). 42 | 43 | If you use this software, please cite it as: 44 | ```bibtex 45 | @article{sionna-rt, 46 | title = {{Sionna RT: Differentiable Ray Tracing for Radio Propagation Modeling}}, 47 | author = {Hoydis, Jakob and {Ait Aoudia}, Fayçal and Cammerer, Sebastian and Nimier-David, Merlin and Binder, Nikolaus and Marcus, Guillermo and Keller, Alexander}, 48 | year = {2023}, 49 | month = MAR, 50 | journal = {arXiv preprint}, 51 | online = {https://arxiv.org/abs/2303.11103} 52 | } 53 | ``` 54 | --------------------------------------------------------------------------------