DiffeRT2d
DiffeRT2d: A Differentiable Ray Tracing Python Framework for Radio Propagation - Published in JOSS (2024)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
1 of 6 committers (16.7%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Keywords from Contributors
Scientific Fields
Repository
2D Toolbox for Differentiable Ray Tracing
Basic Info
- Host: GitHub
- Owner: jeertmans
- License: mit
- Language: Python
- Default Branch: main
- Homepage: http://eertmans.be/DiffeRT2d/
- Size: 24.1 MB
Statistics
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 10
Topics
Metadata Files
README.md
DiffeRT2d

Differentiable Ray Tracing Python Framework for Radio Propagation.
DiffeRT2d is built on top of the JAX library to provide a program that is differentiable everywhere. With that, performing gradient-based optimization, or training Machine Learning models with Ray Tracing (RT) becomes straightforward! Moreover, the extensive use of the object-oriented paradigm facilitates the simulation of complex objects, such as metasurfaces, and the use of more advanced path tracing methods.
The objective of this tool is to provide a simple-to-use and highly interpretable RT framework for researchers engaged in fundamental studies of RT applied to radio propagation, or any researcher interested in the various paths radio waves can take in a given environment.
[!IMPORTANT] For 3D scenarios at city-scales, checkout DiffeRT.
Installation
While installing DiffeRT2d and its dependencies on your global Python is fine, we recommend using a virtual environment (e.g., venv) for a local installation.
Dependencies
DiffeRT2d uses JAX for automatic differentation, which in turn may use (or not) CUDA for GPU acceleration.
If needed, please refer to JAX's installation guidelines for more details.
Pip Install
The recommended way to install the latest release is to use pip:
bash
pip install differt2d
Install From Repository
An alternative way to install DiffeRT2d is to clone the git repository, and install from there: read the contributing guide to know how.
Usage
For a quick introduction to DiffeRT2d, check you our Quickstart tutorial!
You may find a multitude of usage examples across the documentation or the examples folder, or directly in the examples gallery.
Citing
If you use this software, please cite it as:
bibtex
@article{Eertmans_DiffeRT2d_A_Differentiable_2024,
title = {{DiffeRT2d: A Differentiable Ray Tracing Python Framework for Radio Propagation}},
author = {Eertmans, Jérome and Oestges, Claude and Jacques, Laurent},
year = 2024,
month = jun,
journal = {Journal of Open Source Software},
volume = 9,
number = 98,
pages = 6915,
doi = {10.21105/joss.06915},
url = {https://joss.theoj.org/papers/10.21105/joss.06915}
}
or use the Cite this repository button on this page to get other citation formats.
Contributing
Contributions are more than welcome! Please read through our contributing section.
Reporting an Issue
If you think you found a bug, an error in the documentation, or wish there was some feature that is currently missing, we would love to hear from you!
The best way to reach us is via the GitHub issues. If your problem is not covered by an already existing (closed or open) issue, then we suggest you create a new issue.
The more precise you are in the description of your problem, the faster we will be able to help you!
Seeking for help
Sometimes, you may have a question about , not necessarily an issue.
There are two ways you can reach us for questions:
- via the GitHub issues;
- or via GitHub discussions.
Contact
Finally, if you do not have any GitHub account, or just wish to contact the author of DiffeRT2d, you can do so at: jeertmans@icloud.com.
Owner
- Name: Jérome Eertmans
- Login: jeertmans
- Kind: user
- Location: Belgium
- Company: UCLouvain
- Website: https://eertmans.be/
- Repositories: 115
- Profile: https://github.com/jeertmans
PhD student, with a Master in Electromechanical Engineering
JOSS Publication
DiffeRT2d: A Differentiable Ray Tracing Python Framework for Radio Propagation
Authors
Tags
radio propagation channel modeling ray tracing differentiable frameworkCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Eertmans
given-names: Jérome
orcid: "https://orcid.org/0000-0002-5579-5360"
- family-names: Oestges
given-names: Claude
orcid: "https://orcid.org/0000-0002-0902-4565"
- family-names: Jacques
given-names: Laurent
orcid: "https://orcid.org/0000-0002-6261-0328"
doi: 10.5281/zenodo.11386516
message: If you use this software, please cite our article in the
Journal of Open Source Software.
repository-code: 'https://github.com/jeertmans/DiffeRT2d'
license: MIT
version: v0.4.0
type: software
authors:
- name: Jérome Eertmans
orcid: 'https://orcid.org/0000-0002-5579-5360'
website: 'https://eertmans.be'
url: 'https://eertmans.be/DiffeRT2d'
abstract: >-
2D Toolbox for Differentiable Ray Tracing, for
Radio-Propagation oriented applications.
keywords:
- Ray Tracing
- Differentiable
- JAX
- Radio Propagation
preferred-citation:
authors:
- family-names: Eertmans
given-names: Jérome
orcid: "https://orcid.org/0000-0002-5579-5360"
- family-names: Oestges
given-names: Claude
orcid: "https://orcid.org/0000-0002-0902-4565"
- family-names: Jacques
given-names: Laurent
orcid: "https://orcid.org/0000-0002-6261-0328"
date-published: 2024-06-30
doi: 10.21105/joss.06915
issn: 2475-9066
issue: 98
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 6915
title: "DiffeRT2d: A Differentiable Ray Tracing Python Framework for
Radio Propagation"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.06915"
volume: 9
title: "DiffeRT2d: A Differentiable Ray Tracing Python Framework for
Radio Propagation"
GitHub Events
Total
- Create event: 10
- Release event: 2
- Issues event: 7
- Watch event: 7
- Delete event: 6
- Issue comment event: 21
- Push event: 72
- Pull request event: 18
Last Year
- Create event: 10
- Release event: 2
- Issues event: 7
- Watch event: 7
- Delete event: 6
- Issue comment event: 21
- Push event: 72
- Pull request event: 18
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Jérome Eertmans | j****s@i****m | 307 |
| pre-commit-ci[bot] | 6****] | 43 |
| dependabot[bot] | 4****] | 9 |
| Ido Ben-Yair | i****y | 5 |
| ImgBotApp | I****p@g****m | 2 |
| Daniel S. Katz | d****z@i****g | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 6
- Total pull requests: 120
- Average time to close issues: about 2 months
- Average time to close pull requests: 15 days
- Total issue authors: 2
- Total pull request authors: 6
- Average comments per issue: 1.0
- Average comments per pull request: 1.38
- Merged pull requests: 99
- Bot issues: 0
- Bot pull requests: 51
Past Year
- Issues: 3
- Pull requests: 24
- Average time to close issues: about 2 months
- Average time to close pull requests: 23 days
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 1.33
- Average comments per pull request: 1.67
- Merged pull requests: 16
- Bot issues: 0
- Bot pull requests: 14
Top Authors
Issue Authors
- jeertmans (5)
- roth-jakob (1)
- pre-commit-ci[bot] (1)
Pull Request Authors
- jeertmans (63)
- pre-commit-ci[bot] (33)
- dependabot[bot] (19)
- idoby (10)
- danielskatz (4)
- imgbot[bot] (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 31 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 9
- Total maintainers: 1
pypi.org: differt2d
2D Toolbox for Differentiable Ray Tracing
- Homepage: https://github.com/jeertmans/DiffeRT2d
- Documentation: https://eertmans.be/DiffeRT2d
- License: MIT License
-
Latest release: 0.4.0
published 12 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- actions/checkout v3 composite
- actions/deploy-pages v1 composite
- actions/setup-python v4 composite
- actions/upload-pages-artifact v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- taiki-e/install-action v2 composite
- absl-py 2.0.0
- alabaster 0.7.13
- appdirs 1.4.4
- babel 2.12.1
- beautifulsoup4 4.12.2
- bump2version 1.0.1
- byexample 10.5.6
- certifi 2023.7.22
- cfgv 3.4.0
- charset-normalizer 3.2.0
- chex 0.1.83
- click 8.1.7
- colorama 0.4.6
- contourpy 1.1.1
- coverage 7.3.1
- cycler 0.11.0
- distlib 0.3.7
- docutils 0.20.1
- exceptiongroup 1.1.3
- execnet 2.0.2
- filelock 3.12.4
- fonttools 4.42.1
- furo 2023.9.10
- identify 2.5.29
- idna 3.4
- imagesize 1.4.1
- importlib-metadata 6.8.0
- importlib-resources 6.1.0
- iniconfig 2.0.0
- jax 0.4.16
- jaxlib 0.4.16
- jinja2 3.1.2
- kiwisolver 1.4.5
- markdown-it-py 3.0.0
- markupsafe 2.1.3
- matplotlib 3.8.0
- mdit-py-plugins 0.4.0
- mdurl 0.1.2
- ml-dtypes 0.3.0
- myst-parser 2.0.0
- nodeenv 1.8.0
- numpy 1.26.0
- opt-einsum 3.3.0
- optax 0.1.7
- packaging 23.1
- pandas 2.1.1
- pexpect 4.8.0
- pillow 10.0.1
- platformdirs 3.10.0
- pluggy 1.3.0
- pre-commit 3.4.0
- ptyprocess 0.7.0
- pygments 2.16.1
- pyparsing 3.1.1
- pyside6 6.5.2
- pyside6-addons 6.5.2
- pyside6-essentials 6.5.2
- pyte 0.8.1
- pytest 7.4.2
- pytest-cov 4.1.0
- pytest-env 0.8.2
- pytest-xdist 3.3.1
- python-dateutil 2.8.2
- pytz 2023.3.post1
- pyyaml 6.0.1
- requests 2.31.0
- rich 13.5.3
- rustworkx 0.12.1
- scipy 1.11.2
- setuptools 68.2.2
- setuptools-scm 8.0.2
- shellingham 1.5.3
- shiboken6 6.5.2
- six 1.16.0
- snowballstemmer 2.2.0
- soupsieve 2.5
- sphinx 7.2.6
- sphinx-autodoc-typehints 1.24.0
- sphinx-basic-ng 1.0.0b2
- sphinx-click 4.4.0
- sphinx-copybutton 0.5.2
- sphinxcontrib-applehelp 1.0.7
- sphinxcontrib-devhelp 1.0.5
- sphinxcontrib-htmlhelp 2.0.4
- sphinxcontrib-jsmath 1.0.1
- sphinxcontrib-qthelp 1.0.6
- sphinxcontrib-serializinghtml 1.1.9
- sphinxext-opengraph 0.7.5
- tomli 2.0.1
- toolz 0.12.0
- tqdm 4.66.1
- typer 0.9.0
- typing-extensions 4.8.0
- tzdata 2023.3
- urllib3 2.0.5
- virtualenv 20.24.5
- wcwidth 0.2.6
- zipp 3.17.0
- chex ^0.1.7
- jax ^0.4.7
- matplotlib ^3.7.1
- numpy ^1.24
- optax ^0.1.5
- pandas ^2.0.3
- pyside6 ^6.5.0
- python <3.12,>=3.9
- rustworkx ^0.12.1
- typer ^0.9.0
- actions/checkout v4 composite
- actions/setup-python v4 composite
