diff --git a/joss.06915/10.21105.joss.06915.crossref.xml b/joss.06915/10.21105.joss.06915.crossref.xml
new file mode 100644
index 0000000000..aeb45c9911
--- /dev/null
+++ b/joss.06915/10.21105.joss.06915.crossref.xml
@@ -0,0 +1,279 @@
+
+
+
+ 20240630190818-874b95e974a92d53e70a540e92ede78c070bf868
+ 20240630190818
+
+ JOSS Admin
+ admin@theoj.org
+
+ The Open Journal
+
+
+
+
+ Journal of Open Source Software
+ JOSS
+ 2475-9066
+
+ 10.21105/joss
+ https://joss.theoj.org
+
+
+
+
+ 06
+ 2024
+
+
+ 9
+
+ 98
+
+
+
+ DiffeRT2d: A Differentiable Ray Tracing Python
+Framework for Radio Propagation
+
+
+
+ Jérome
+ Eertmans
+ https://orcid.org/0000-0002-5579-5360
+
+
+ Claude
+ Oestges
+ https://orcid.org/0000-0002-0902-4565
+
+
+ Laurent
+ Jacques
+ https://orcid.org/0000-0002-6261-0328
+
+
+
+ 06
+ 30
+ 2024
+
+
+ 6915
+
+
+ 10.21105/joss.06915
+
+
+ http://creativecommons.org/licenses/by/4.0/
+ http://creativecommons.org/licenses/by/4.0/
+ http://creativecommons.org/licenses/by/4.0/
+
+
+
+ Software archive
+ 10.5281/zenodo.12600658
+
+
+ GitHub review issue
+ https://github.com/openjournals/joss-reviews/issues/6915
+
+
+
+ 10.21105/joss.06915
+ https://joss.theoj.org/papers/10.21105/joss.06915
+
+
+ https://joss.theoj.org/papers/10.21105/joss.06915.pdf
+
+
+
+
+
+ Adam: A method for stochastic
+optimization
+ Kingma
+ 2017
+ Kingma, D. P., & Ba, J. (2017).
+Adam: A method for stochastic optimization.
+https://arxiv.org/abs/1412.6980
+
+
+ The DeepMind JAX Ecosystem
+ DeepMind
+ 2020
+ DeepMind, Babuschkin, I., Baumli, K.,
+Bell, A., Bhupatiraju, S., Bruce, J., Buchlovsky, P., Budden, D., Cai,
+T., Clark, A., Danihelka, I., Dedieu, A., Fantacci, C., Godwin, J.,
+Jones, C., Hemsley, R., Hennigan, T., Hessel, M., Hou, S., … Viola, F.
+(2020). The DeepMind JAX Ecosystem.
+http://github.com/google-deepmind
+
+
+ Fully differentiable ray tracing via
+discontinuity smoothing for radio network optimization
+ Eertmans
+ 2024 18th european conference on antennas and
+propagation (EuCAP)
+ 10.23919/EuCAP60739.2024.10501570
+ 2024
+ Eertmans, J., Jacques, L., &
+Oestges, C. (2024). Fully differentiable ray tracing via discontinuity
+smoothing for radio network optimization. 2024 18th European Conference
+on Antennas and Propagation (EuCAP), 1–5.
+https://doi.org/10.23919/EuCAP60739.2024.10501570
+
+
+ A novel ray tracing algorithm for scenarios
+comprising pre-ordered multiple planar reflectors, straight wedges, and
+vertexes
+ Puggelli
+ IEEE Transactions on Antennas and
+Propagation
+ 8
+ 62
+ 10.1109/TAP.2014.2323961
+ 2014
+ Puggelli, F., Carluccio, G., &
+Albani, M. (2014). A novel ray tracing algorithm for scenarios
+comprising pre-ordered multiple planar reflectors, straight wedges, and
+vertexes. IEEE Transactions on Antennas and Propagation, 62(8),
+4336–4341.
+https://doi.org/10.1109/TAP.2014.2323961
+
+
+ Ray tracing for radio propagation modeling:
+Principles and applications
+ Yun
+ IEEE Access
+ 3
+ 10.1109/ACCESS.2015.2453991
+ 2015
+ Yun, Z., & Iskander, M. F.
+(2015). Ray tracing for radio propagation modeling: Principles and
+applications. IEEE Access, 3, 1089–1100.
+https://doi.org/10.1109/ACCESS.2015.2453991
+
+
+ JAX: Composable transformations of
+Python+NumPy programs
+ Bradbury
+ 2024
+ Bradbury, J., Frostig, R., Hawkins,
+P., Johnson, M. J., Leary, C., Maclaurin, D., Necula, G., Paszke, A.,
+VanderPlas, J., Wanderman-Milne, S., & Zhang, Q. (2024). JAX:
+Composable transformations of Python+NumPy programs (Version 0.4.28).
+http://github.com/google/jax
+
+
+ jaxtyping: Type annotations and runtime
+checking for shape and dtype of JAX arrays, and PyTrees
+ Kidger
+ 2024
+ Kidger, P. (2024). jaxtyping: Type
+annotations and runtime checking for shape and dtype of JAX arrays, and
+PyTrees (Version 0.2.29).
+http://github.com/patrick-kidger/jaxtyping
+
+
+ Equinox: Neural networks in JAX via callable
+PyTrees and filtered transformations
+ Kidger
+ Differentiable Programming workshop at Neural
+Information Processing Systems 2021
+ 2021
+ Kidger, P., & Garcia, C. (2021).
+Equinox: Neural networks in JAX via callable PyTrees and filtered
+transformations. Differentiable Programming Workshop at Neural
+Information Processing Systems 2021.
+
+
+ Learning to sample ray paths for faster
+point-to-point ray tracing
+ Eertmans
+ COST INTERACT 8th Meeting (Helsinki, from
+2024/06/17 to 2024/06/20)
+ 2024
+ Eertmans, J., Oestges, C., Jacques,
+L., & others. (2024). Learning to sample ray paths for faster
+point-to-point ray tracing. In COST INTERACT 8th Meeting (Helsinki, from
+2024/06/17 to 2024/06/20). http://
+hdl.handle.net/2078/288635
+
+
+ Min-Path-Tracing: A diffraction aware
+alternative to image method in ray tracing
+ Eertmans
+ 2023 17th european conference on antennas and
+propagation (EuCAP)
+ 10.23919/EuCAP57121.2023.10132934
+ 2023
+ Eertmans, J., Oestges, C., &
+Jacques, L. (2023). Min-Path-Tracing: A diffraction aware alternative to
+image method in ray tracing. 2023 17th European Conference on Antennas
+and Propagation (EuCAP), 1–5.
+https://doi.org/10.23919/EuCAP57121.2023.10132934
+
+
+ Opal: An open source ray-tracing propagation
+simulator for electromagnetic characterization
+ Egea-Lopez
+ PLOS ONE
+ 11
+ 16
+ 10.1371/journal.pone.0260060
+ 2021
+ Egea-Lopez, E., Molina-Garcia-Pardo,
+J. M., Lienard, M., & Degauque, P. (2021). Opal: An open source
+ray-tracing propagation simulator for electromagnetic characterization.
+PLOS ONE, 16(11), 1–19.
+https://doi.org/10.1371/journal.pone.0260060
+
+
+ Advanced radio channel
+simulator
+ Uguen
+ 2014
+ Uguen, B., Amiot, N., Laaraiedh, M.,
+Mhedhbi, M., Avrillon, S., Burghelea, R., Plouhinec, E., Talom, F. T.,
+Chaluyman, T., & Lei, Y. (2014). Advanced radio channel simulator
+(Version 0.5).
+http://github.com/pylayers/pylayers
+
+
+ Sionna RT: Differentiable ray tracing for
+radio propagation modeling
+ Hoydis
+ 2023 IEEE globecom workshops (GC
+wkshps)
+ 10.1109/GCWkshps58843.2023.10465179
+ 2023
+ Hoydis, J., Aoudia, F. A., Cammerer,
+S., Nimier-David, M., Binder, N., Marcus, G., & Keller, A. (2023).
+Sionna RT: Differentiable ray tracing for radio propagation modeling.
+2023 IEEE Globecom Workshops (GC Wkshps), 317–321.
+https://doi.org/10.1109/GCWkshps58843.2023.10465179
+
+
+ TensorFlow: Large-scale machine learning on
+heterogeneous systems
+ Abadi
+ 2015
+ Abadi, M., Agarwal, A., Barham, P.,
+Brevdo, E., Chen, Z., Citro, C., Corrado, G. S., Davis, A., Dean, J.,
+Devin, M., Ghemawat, S., Goodfellow, I., Harp, A., Irving, G., Isard,
+M., Jia, Y., Jozefowicz, R., Kaiser, L., Kudlur, M., … Zheng, X. (2015).
+TensorFlow: Large-scale machine learning on heterogeneous systems.
+https://www.tensorflow.org/
+
+
+
+
+
+
diff --git a/joss.06915/10.21105.joss.06915.pdf b/joss.06915/10.21105.joss.06915.pdf
new file mode 100644
index 0000000000..5cfea093aa
Binary files /dev/null and b/joss.06915/10.21105.joss.06915.pdf differ
diff --git a/joss.06915/paper.jats/10.21105.joss.06915.jats b/joss.06915/paper.jats/10.21105.joss.06915.jats
new file mode 100644
index 0000000000..1cec7be677
--- /dev/null
+++ b/joss.06915/paper.jats/10.21105.joss.06915.jats
@@ -0,0 +1,643 @@
+
+
+
+
+
+
+
+Journal of Open Source Software
+JOSS
+
+2475-9066
+
+Open Journals
+
+
+
+6915
+10.21105/joss.06915
+
+DiffeRT2d: A Differentiable Ray Tracing Python Framework
+for Radio Propagation
+
+
+
+https://orcid.org/0000-0002-5579-5360
+
+Eertmans
+Jérome
+
+
+
+
+https://orcid.org/0000-0002-0902-4565
+
+Oestges
+Claude
+
+
+
+
+https://orcid.org/0000-0002-6261-0328
+
+Jacques
+Laurent
+
+
+
+
+
+ICTEAM, UCLouvain, Belgium
+
+
+
+
+7
+6
+2024
+
+9
+98
+6915
+
+Authors of papers retain copyright and release the
+work under a Creative Commons Attribution 4.0 International License (CC
+BY 4.0)
+2022
+The article authors
+
+Authors of papers retain copyright and release the work under
+a Creative Commons Attribution 4.0 International License (CC BY
+4.0)
+
+
+
+radio propagation
+channel modeling
+ray tracing
+differentiable
+framework
+Python
+
+
+
+
+
+
DiffeRT2d’
+ logo.
+
+
+
+ Summary
+
Ray Tracing (RT) is arguably one of the most prevalent
+ methodologies in the field of radio propagation modeling. However,
+ access to RT software is often constrained by its closed-source
+ nature, licensing costs, or the requirement of high-performance
+ computing resources. While this is typically acceptable for
+ large-scale applications, it can present significant limitations for
+ researchers who require more flexibility in their approach, while
+ working on more simple use cases. We present DiffeRT2d, a 2D Open
+ Source differentiable ray tracer that addresses the aforementioned
+ gaps. DiffeRT2d employs the power of JAX
+ (Bradbury
+ et al., 2024) to provide a simple, fast, and differentiable
+ solution. Our library can be utilized to model complex objects, such
+ as reconfigurable intelligent surfaces, or to solve optimization
+ problems that require tracing the paths between one or more pairs of
+ nodes. Moreover, DiffeRT2d adheres to numerous high-quality Open
+ Source standards, including automated testing, documented code and
+ library, and Python type-hinting.
+
+
+ Statement of Need
+
In the domain of radio propagation modeling, a significant portion
+ of the RT tools available to researchers are either closed-source or
+ locked behind commercial licenses. This restricts accessibility,
+ limits customization, and impedes collaborative advances in the field.
+ Among the limited Open Source alternatives, tools such as PyLayers
+ (Uguen
+ et al., 2014) and Opal
+ (Egea-Lopez
+ et al., 2021) fall short by not offering the capability to
+ easily differentiate code with respect to various parameters. This
+ limitation presents a substantial challenge for tasks involving
+ network optimization, where the ability to efficiently compute
+ gradients is crucial. To our knowledge, SionnaRT
+ (Hoydis
+ et al., 2023) is one of the few radio propagation-oriented ray
+ tracers that incorporates a differentiable framework, leveraging
+ TensorFlow
+ (Abadi
+ et al., 2015) to enable differentiation. Despite its
+ capabilities, SionnaRT’s complexity can be a barrier for researchers
+ seeking a straightforward solution for fundamental studies in RT
+ applied to radio propagation. We believe that researchers need a
+ simple-to-use and highly interpretable RT framework.
+
DiffeRT2d addresses these shortcomings by providing a
+ comprehensive, Open Source, and easily accessible framework
+ specifically designed for 2D RT. It integrates seamlessly with Python,
+ ensuring ease of use while maintaining robust functionality. By
+ leveraging JAX for automatic differentiation, DiffeRT2d simplifies the
+ process of parameter tuning and optimization, making it an invaluable
+ tool for both academic research and practical applications in wireless
+ communications.
+
Moreover, in contrast to the majority of other RT tools, DiffeRT2d
+ is capable of supporting a multitude of RT methods. These include the
+ image method
+ (Yun
+ & Iskander, 2015), path minimization based on Fermat’s
+ principle
+ (Puggelli
+ et al., 2014), and the Min-Path-Tracing method (MPT)
+ (Eertmans
+ et al., 2023). Each of these methods represents a distinct
+ compromise between speed and the type of interaction that can be
+ simulated, such as reflection or diffraction.
+
DiffeRT2d democratizes access to advanced RT capabilities, thereby
+ fostering innovation and facilitating rigorous exploration in the
+ field.
+
+
+ Easy to Use Commitment
+
DiffeRT2d is a 2D RT toolbox that aims to provide a comprehensive
+ solution for path tracing, while avoiding the need to compute
+ electromagnetic (EM) fields. Consequently, we provide a rough
+ approximation of the received power, which ignores the local phase of
+ the wave, to allow the user to focus on higher-level concepts, such as
+ the number of multipath components and the angle of arrival. As an
+ object-oriented package with curated default values, constructing a
+ basic RT scenario can be performed in a minimal number of lines of
+ code while keeping the code extremely expressive.
+
Moreover, DiffeRT2d is designed to maximize its compatibility with
+ the JAX ecosystem. It provides JAX-compatible objects, which are
+ immutable, differentiable, and jit-in-time compilable. This enables
+ users to leverage the full capabilities of other JAX-related
+ libraries, such as Optax
+ (DeepMind
+ et al., 2020) for optimization problems or Equinox
+ (Kidger
+ & Garcia, 2021) for Machine Learning (ML).
+
+
+ Usage Examples
+
The documentation contains
+ an
+ example gallery, as well as numerous other usage examples
+ disseminated throughout the application programming interface (API)
+ documentation.
+
In the following sections, we will highlight a few of the most
+ attractive usages of DiffeRT2d.
+
+ Exploring Metasurfaces and More
+
The primary rationale for employing an object-oriented paradigm
+ is the capacity to generate custom subclasses, enabling the
+ implementation of novel characteristics for a given object. This is
+ exemplified by metasurfaces, which typically exhibit a deviation
+ from the conventional law of specular reflection. Consequently, a
+ distinct procedure must be employed for their treatment.
+
Using MPT, which is one of the path tracing methods implemented
+ in DiffeRT2d, we can easily accommodate those surfaces, thanks to
+ the object-oriented structure of the code. We also provide a very
+ simple reflecting intelligent surface (RIS) to this end.
+
+
A coverage map for single-reflection paths (i.e., no
+ line-of-sight) in a scene containing a RIS. The RIS, situated in
+ the center, reflects rays at an angle of 45°, as evidenced by the
+ fixed reflection angle of the reflected rays, irrespective of the
+ angle of incidence. The minor noise observed around the edges is
+ attributed to convergence issues with the MPT method, which can be
+ mitigated by increasing the number of minimization
+ steps.
+
+
+
[fig:rispowermap]
+ can be reproduced with the following code:
In previous work, we presented a smoothing technique
+ (Eertmans,
+ Jacques, et al., 2024) that makes RT differentiable
+ everywhere. The aforementioned technique is available throughout
+ DiffeRT2d via an optional approx (for
+ approximation) parameter, or via a global config
+ variable.
+
[fig:opt] shows
+ how we used the Adam optimizer
+ (Kingma
+ & Ba, 2017), provided by the Optax library, to
+ successfully solve some optimization problem.
+
+
Different numbers of iterations converging towards the
+ maximum of the objective function, see Eertmans, Jacques, et al.
+ (2024)
+ for all
+ details.
+
+
+
The code to reproduce the above results can be found in the
+ GitHub
+ repository.
+
+
+ Machine Learning
+
In Eertmans, Oestges, et al.
+ (2024),
+ presented at a scientific meeting in Helsinki, June 2024, as part of
+ the European Cooperation in Science and Technology (COST) action
+ INTERACT
+ (CA20120), we developed an ML model that learns how to sample path
+ candidates to accelerate RT in general.
+
The model and its training were implemented using the DiffeRT2d
+ library, and a detailed notebook is available
+ online.
+
+
+
+ Stability and releases
+
A significant amount of effort has been invested in the
+ documentation and testing of our code. All public functions are
+ annotated, primarily through the use of the jaxtyping library
+ (Kidger,
+ 2024), which enables both static and dynamic type checking.
+ Furthermore, we aim to maintain a code coverage metric of 100%.
+
Our project adheres to semantic versioning, and we document all
+ significant changes in a changelog file.
+
+ Target Audience
+
The intended audience for this software is researchers engaged in
+ the field of radio propagation who are interested in simulating
+ relatively simple scenarios. In such cases, the ease of use,
+ flexibility, and interpretability of the software are of greater
+ importance than performing city-scale simulations or computing
+ electromagnetic fields1 with
+ high accuracy.
+
+
+
+ Acknowledgments
+
We would like to acknowledge the work from all contributors of the
+ JAX ecosystem, especially Patrick Kidger for the jaxtyping and Equinox
+ packages.