DiffeRT2d

DiffeRT2d: A Differentiable Ray Tracing Python Framework for Radio Propagation - Published in JOSS (2024)

https://github.com/jeertmans/differt2d

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

2d differentiable raytracing telecommunications

Keywords from Contributors

hydrology energy-system ode turing-machine pde standardization exoplanet mesh materials-design benchmarking

Scientific Fields

Mathematics Computer Science - 37% confidence
Last synced: 6 months ago · JSON representation ·

Repository

2D Toolbox for Differentiable Ray Tracing

Basic Info
Statistics
  • Stars: 13
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 10
Topics
2d differentiable raytracing telecommunications
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

DiffeRT2d

Latest Release Python version Documentation DOI JOSS Paper Codecov

DiffeRT2d Logo

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:

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

PhD student, with a Master in Electromechanical Engineering

JOSS Publication

DiffeRT2d: A Differentiable Ray Tracing Python Framework for Radio Propagation
Published
June 30, 2024
Volume 9, Issue 98, Page 6915
Authors
Jérome Eertmans ORCID
ICTEAM, UCLouvain, Belgium
Claude Oestges ORCID
ICTEAM, UCLouvain, Belgium
Laurent Jacques ORCID
ICTEAM, UCLouvain, Belgium
Editor
Daniel S. Katz ORCID
Tags
radio propagation channel modeling ray tracing differentiable framework

Citation (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

All Time
  • Total Commits: 368
  • Total Committers: 6
  • Avg Commits per committer: 61.333
  • Development Distribution Score (DDS): 0.166
Past Year
  • Commits: 24
  • Committers: 2
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.292
Top Committers
Name Email 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
bug (4) documentation (3) help wanted (2) good first issue (2)
Pull Request Labels
dependencies (30) enhancement (19) joss (19) documentation (18) python (9) bug (8)

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

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 31 Last month
Rankings
Dependent packages count: 7.3%
Average: 38.0%
Dependent repos count: 68.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/clearcache.yml actions
  • actions/checkout v3 composite
.github/workflows/coverage.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
.github/workflows/pages.yml actions
  • actions/checkout v3 composite
  • actions/deploy-pages v1 composite
  • actions/setup-python v4 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • taiki-e/install-action v2 composite
poetry.lock pypi
  • 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
pyproject.toml pypi
  • 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
.github/workflows/publish.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite