Skip to main content

Differentiable Ray Tracing Toolbox for Radio Propagation Simulations

Project description

DiffeRT logo

DiffeRT

Latest Release Python version Documentation DOI Codecov

Usage

WARNING: Until this package reaches version 0.1.x, breaking changes should be expected. Checkout the ROADMAP for future features.

If you have any suggestion regarding the development of this package, please open an issue.

The easiest way to install DiffeRT is through pip:

pip install differt

We provide pre-built binaries for most platforms. If you want (or need) to build the package from the source distribution, check out the requirements below.

Contributing

IMPORTANT: The current documentation is very light and a more complete guide for new contributors will be written in the near future.

Until then, do not hesitate to reach me for help with GitHub issues!

This project is built using both Python and Rust code, to provide an easy-to-use but performant program. It also heavily uses the capabilities brought by JAX for numerical arrays.

Requirements

To run build this package locally, you need:

  • Python 3.10 or above;
  • Rust stable toolchain;
  • any modern C compiler;
  • just to easily run commands listed in justfiles;
  • Maturin for building Python bindings from Rust code;
  • and uv to manage this project.

This project contains justfiles with recipes[^1] for most common use cases, so feel free to use them instead of the commands listed below/

[^1]: just is as alternative tool to Make, that provides more modern user experience. Enter just to list all available recipes.

Local development

The following commands assume that you installed the project locally with:

uv sync

and that you activated the corresponding Python virtual environment:

. .venv/bin/activate  # or .venv\Scripts\activate on Windows

Documentation

To generate the documentation, please run the following:

just docs/build

Finally, you can open docs/build/html/index.html to see the generated docs.

Other recipes are available, and you can list them with just docs/.

Testing

Both Rust and Python codebases have their own tests and benchmarks.

Testing Rust code

You can test Rust code using Cargo:

cargo test

or benchmark it:

cargo bench

Testing Python code

Similarly, you can test Python code with Pytest:

pytest

or benchmark it:

pytest --benchmark-enable differt/tests/benchmarks

Citing

If you use this software, please cite it as detailed here.

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

differt-0.0.24.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

differt-0.0.24-py3-none-any.whl (54.7 kB view details)

Uploaded Python 3

File details

Details for the file differt-0.0.24.tar.gz.

File metadata

  • Download URL: differt-0.0.24.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for differt-0.0.24.tar.gz
Algorithm Hash digest
SHA256 34c4ac06881cd4270ae368cbfab68e08b63b8d3d6da6189197b19c4ce8218a58
MD5 3391344ac49952db19fc667921c59ab9
BLAKE2b-256 e0fa9b3f1d5e29dcbf8e9e4b8db999c92dc48a801c08a3528175cf8cf71b0a41

See more details on using hashes here.

Provenance

The following attestation bundles were made for differt-0.0.24.tar.gz:

Publisher: publish.yml on jeertmans/DiffeRT

Attestations:

File details

Details for the file differt-0.0.24-py3-none-any.whl.

File metadata

  • Download URL: differt-0.0.24-py3-none-any.whl
  • Upload date:
  • Size: 54.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for differt-0.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 d1ddf718be78c57bdb77334391439d1812c60c76b12780688faf6bad1078dcfa
MD5 8c5de0d4c6d1f8be0b7dc329a28665fb
BLAKE2b-256 cc7dec7dfc92542b3e43d9b50c74b51fabcb84edaaef5a5be6f461d81d70d7af

See more details on using hashes here.

Provenance

The following attestation bundles were made for differt-0.0.24-py3-none-any.whl:

Publisher: publish.yml on jeertmans/DiffeRT

Attestations:

Supported by

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