Skip to content

v3.6.0

Compare
Choose a tag to compare
@njroussel njroussel released this 25 Nov 12:44
· 50 commits to master since this release

This release comes with a major overhaul of some of the internal components of Mitsuba 3. Namely, the Python bindings are now created using nanobind and the just-in-time compiler Dr.Jit was updated to version 1.0.0.

These upgrades lead to the following:

  • Performance boost: 1.2x to 2x speedups depending on the JIT backend and scene size
  • Improved stubs: auto-completion and type-checking has been greatly improved
  • More variants on PyPI: thirteen variants are available in the pre-built wheels

Some breaking changes were made in this process. Please refer to the porting guide to get a comprehensive overview of these changes.

This release also includes a series of bug fixes, quality of life improvements and new features. Here's a non-exhaustive list:

  • Support for Embree's robust intersection flag 96e0af2
  • Callback system for variant changes #1367
  • MeshPtr for vectorized Mesh method calls `#1319
  • Aliases for the ArrayX types of Dr.Jit 2e86e5e
  • Fix attribute evaluation for twosided BSDFs 5508ee6 .. 7528d9f
  • A new guide for using Mitsuba 3 in WSL 2
  • batch sensors expose their inner Sensor objects when traversed with mi.traverse() #1297
  • Python stubs improvements #1260 #1238
  • Updated wheel build process with new variants #1355