Release notes
What changed in each RayD release, newest first, from the project changelog.
RayD versions the rayd, rayd-drjit, and rayd-torch distributions together. Releases are tagged on GitHub and published to PyPI.
0.8.0#
Released 2026-07-30.
Added#
- True mesh instancing:
add_instanceshares the source mesh's acceleration structure and gives each instance its own transform, shape id, and scene-global primitive ids. Instance transforms are differentiable and update without a rebuild. See Update geometry in place. - PyTorch: high-level reflection accumulation (
Scene.accumulate_reflections) and EPC (Scene.trace_refl_epc,trace_refl_epc_field) APIs. - PyTorch: replicated multi-GPU execution (
Scene(devices=[...])) now also covers diffraction paths, coherent diffraction, and reflection accumulation. - PyTorch: batched SDF grids (
SdfGridBatch,MixedScene.add_sdf_batch).
Changed#
- AD support is now reported per operation and per input domain, for VJP and JVP separately, in
api_manifest()["derivatives"], replacing the backend-wide claim. See Differentiation. - PyTorch
trace_refl_epc_fieldis explicitly forward-only until its Fresnel and polarization derivatives are implemented. - The
rayd-torchwheel requires the PyTorch minor version it was built for:torch>=2.10,<2.11. - Broader single- and multi-GPU CI, Stable ABI checks, and release-artifact verification.
Fixed#
- Restored the
rayd.drjit._Ctype-stub layout. - PyTorch reflection material defaults now produce a nonzero physical field on a validated reflected path.
0.7.0#
Released 2026-07-23.
Added#
- Automatic pure-CUDA ray-tracing fallback when OptiX is unavailable, with CUDA-fused visibility, reflection, diffraction, and multipath paths. See Backends.
- Native RF layer-stack, transmission, scattering, penetration, and diffraction path families for C++ consumers, including source-lane diffraction path layouts (
DfrPathLayout.SourceLane). - A validated source bundle for downstream CMake builds and a LibTorch Stable ABI slice tested with Torch 2.10 through 2.13.
Changed#
- Wheels for Python 3.10 through 3.14 on Windows and manylinux_2_28, built with CUDA 12.8.
- Prebuilt binaries contain native code for sm_70, sm_75, sm_80, sm_86, sm_87, sm_89, sm_90, sm_100, sm_101, and sm_120, plus compute_120 PTX.
- The typed Torch integration API is stable; the legacy integration boundary is retired.
Fixed#
- Finite-edge UTD continuation and gating near stationary-point and boundary transitions.
- Races in CUDA eager queries and BVH memory, launch, and build robustness.
- Consistency of reflection EPC, diffraction, and geometry adjoints between the Dr.Jit and Torch backends.
0.6.0#
Released 2026-07-10.
Added#
- Explicit backend namespaces
rayd.drjitandrayd.torch. - Separately installable
rayd-drjitandrayd-torchdistributions, plus theraydmeta-distribution that pins both to the same version. - A Torch-native C++/CUDA/OptiX backend with autograd, forward AD,
torch.compile, geometry, visibility, reflection, diffraction, and EPC operations. - Shared native integration headers for source-linked CMake builds.
Changed#
raydis a PEP 420 namespace and no longer picks or re-exports a default backend. Importrayd.drjitorrayd.torchexplicitly.- The two backends share geometry and multipath contracts while keeping their own arrays, ownership, streams, and AD graphs.
Fixed#
- Finite-edge coherent UTD keeps its endpoint continuation instead of cutting the field to zero when the stationary point lies outside the edge segment.
- More robust OptiX pipeline creation, scene cache updates, accumulation, EPC bindings, and AD propagation in both backends.