Skip to main content

2D Toolbox for Differentiable Ray Tracing

Project description

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:

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:

@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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

differt2d-0.4.1.tar.gz (30.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

differt2d-0.4.1-py3-none-any.whl (33.4 kB view details)

Uploaded Python 3

File details

Details for the file differt2d-0.4.1.tar.gz.

File metadata

  • Download URL: differt2d-0.4.1.tar.gz
  • Upload date:
  • Size: 30.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for differt2d-0.4.1.tar.gz
Algorithm Hash digest
SHA256 9bdbc8d766573950bc66ecb0cfff2d86c0c44dbe1e1b82e9f2bd0453e8aaeeea
MD5 2ab2a9d80396c4157fe799ed0ae4a244
BLAKE2b-256 0f6208b723b72f40c5fc1c30664970f3351d328b540b2733196b4154a9268a5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for differt2d-0.4.1.tar.gz:

Publisher: publish.yml on jeertmans/DiffeRT2d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file differt2d-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: differt2d-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 33.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for differt2d-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2efa36e78d8accde91b0f162f55233b3527ed7ce2162e8554bdbd4be1c071f4b
MD5 5f82016bce3f8dc335d8b93495e9cb5b
BLAKE2b-256 3d42530b851b83042f5014e5e6c9e620a4748956f9e88d33c1ab83374f7d3a6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for differt2d-0.4.1-py3-none-any.whl:

Publisher: publish.yml on jeertmans/DiffeRT2d

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page