Release notes#

Being an experimental research framework, Mitsuba 3 does not strictly follow the Semantic Versioning convention. That said, we will strive to document breaking API changes in the release notes below.

Mitsuba 3.4.1#

December 11, 2023

  • Upgrade Dr.Jit to [v0.4.4]

    • Solved threading/concurrency issues which could break loading of large scenes or long running optimizations

  • Scene’s bounding box now gets updated on parameter changes [97d4b6a]

  • Python bindings for mi.lookup_ior [d598d79]

  • Fixes to mask BSDF when differentiated [ee87f1c]

  • Ray sampling is fixed when sample_border is used [c10b87b]

  • Rename OpenEXR shared library [9cc3bf4]

  • Handle phase function differentiation in prbvolpath [5f9eebd]

  • Fixes to linear retarder [8033a80]

  • Avoid copies to host when building 1D distributions [825f44f] .. [8f71fe9]

  • Fixes to linear retarder [8033a80]

  • Sensor’s prinicpal point is now exposed throught m̀i.traverse() [f59faa5]

  • Minor fixes to ptracer which could result in illegal memory accesses [3d902a4]

  • Other various minor bug fixes

Mitsuba 3.4.0#

August 29, 2023

  • Upgrade Dr.Jit to v0.4.3

  • Add mi.variant_context(): a Python context manager for setting variants [96b219d]

  • Emitters may now define a sampling weight [9a5f4c0]

  • Fix bsplinecurve and linearcurve shading frames [3875f9a]

  • Add implementation of LargeSteps method for mesh optimizations (includes a new tutorial) [48e6428] .. [130ed55]

  • Support for spectral phase functions [c7d5c75]

  • Additional resource folders can now be specified in mi.load_dict() [66ea528]

  • BSDFs can expose their attributes through a generic eval_attribute method [cfc425a] .. [c345d70]

  • New sdfgrid shape: a signed distance field on a regular grid [272a5bf] .. [618da87]

  • Support for adjoint differentiation methods through the aov integrator [c9df8de] .. [bff5cf2]

  • Various fixes to prbvolpath [6d78f2e], [a946691] , [91b0b7e]

  • Curve shapes (bsplinecurve and linearcurve) always have back-face culling enabled [188b254] .. [01ea7ba]

  • Properties can now accept tensor objects, currenlty used in bitmap, sdfgrid and gridvolume [d030a3a]

  • New hair BSDF shading model [91fc8e6] .. [0b9b04a]

  • Improvements to the batch sensor (performance, documentation, bug fixes) [527ed22] .. [65e0444]

  • Many missing Python bindings were added

  • Other various minor bug fixes

Mitsuba 3.3.0#

April 25, 2023

  • Upgrade Dr.Jit to v0.4.2

  • Emitters’ members are opaque (fixes long JIT compilation times) [df940c1]

  • Sensors members are opaque (fixes long JIT compilation times) [c864e08]

  • Fix cylinder’s normals [d9ea8e8]

  • Fix next event estimation (NEE) in volume integrators

  • mi.xml.dict_to_xml now supports volumes [15d63df]

  • Allow extending AdjointIntegrator in Python [15d63df]

  • mi.load_dict() is parallel (by default) [bb672ed]

  • Upsampling routines now support box filters [64e2ab1]

  • The Mesh.write_ply() function writes s, t rather than u, v fields [fe4e448]

  • All shapes can hold Texture attributes which can be evaluated [f6ec944]

  • Radiative backpropagation style integrators use less memory [c1a9b8f]

  • New bsplinecurve and linearcurve shapes [e4c847f] .. [79eb026]

Mitsuba 3.2.1#

February 22, 2023

  • Upgrade Dr.Jit to v0.4.1

  • Film plugins can now have error-compensated accumulation in JIT modes [afeefed]

  • Fix and add missing Python bindings for Endpoint/Emitter/Sensor [8f03c7d]

  • Numerically robust sphere-ray intersections [7d46e10] .. [0b483bf]

  • Fix parallel scene loading with Python plugins [93bb99b]

  • Various minor bug fixes

Mitsuba 3.2.0#

January 6, 2023

  • Upgrade Dr.Jit to v0.4.0

    • Various bug fixes

    • Stability improvements (race conditions, invalid code generation)

    • Removed 4 billion variable limit

  • Add missing Python bindings for Shape and ShapePtr [bdce950]

  • Fix Python bindings for Scene [4cd5585]

  • Fix bug which would break the AD graph in spectral variants [f3ac81b]

  • Parallel scene loading in JIT variants [48c14a7] .. [187da96]

  • Fix sampling of hg PhaseFunction [10d3514]

  • Fix envmap updating in JIT variants [7bf132f]

  • Expose PhaseFunction of Medium objects through mi.traverse() [cca5791]

Mitsuba 3.1.1#

November 25, 2022

  • Fixed maximum limits for OptiX kernel launches [a8e6989]

Mitsuba 3.1.0#

New features#

  • Enable ray tracing against two different scenes in a single kernel [df79cb3]

  • Make ShapeGroup traversable and updatable [e0871aa]

  • Enable differentiation of to_world in instance [54d2d3a]

  • Enable differentiation of to_world in sphere, rectangle, disk and cylinder [b5d8c5d] .. [b5d8c]

  • Enable differentiation of to_world in perspective and thinlens [ea513f7] .. [ea513f]

  • Add BSDF::eval_diffuse_reflectance() to most BSDF plugins [59af884]

  • Add mi.OptixDenoiser class for simple denoising in Python [5529318] .. [55293]

  • envmap plugin can be constructed from mi.Bitmap object [9389c8d]

Other improvements#

  • Major performance improvements in cuda_* variants with new version of Dr.Jit

  • Deprecated samples_per_pass parameter [8ba8528]

  • Fix rendering progress bar on Windows [d8db806]

  • obj file parsing performance improvements on Windows [28660f3]

  • Fix mi.luminance() for monochromatic modes [61b9516]

  • Add bindings for PluginManager.create_object() [4ebf700]

  • Fix SceneParameters.update() unnecessary hash computation [f57e741]

  • Fix numerical instabilities with box filter splatting [2d89762]

  • Improve math::bisect algorithm [7ca09a3]

  • Fix syntax highlighting in documentation and tutorials [5aa2716]

  • Fix Optimizer.set_learning_rate for int values [53143db]

  • Various minor improvements to the Python typing stub generation [b7ef349] .. [ad72a53]

  • Minor improvements to the documentation

  • Various other minor fixes

Mitsuba 3.0.2#

September 13, 2022

  • Change behavior of <spectrum ..> and <rgb ..> tag at scene loading for better consistency between *_rgb and *_spectral variants [f883834]

  • Polarization fixes [2709889], [06c2960]

  • Add PyTorch/Mitsuba interoperability tutorial using dr.wrap_ad()

  • Fix DLL loading crash when working with Mitsuba and PyTorch in Python [59d7b35]

  • Fix crash when evaluating Mitsuba ray tracing kernel from another thread in cuda mode. [cd0846f]

  • Add stubs for Float, ScalarFloat and other builtin types [8249179]

  • Plugins regular and blackbody have renamed parameters: wavelength_min, wavelength_max (previously lambda_min, lambda_max) [9d3487c]

  • Dr.Jit Python stubs are generated during local builds [4302caa8]

  • Minor improvements to the documentation

  • Various other minor fixes

Mitsuba 3.0.1#

July 27, 2022

  • Various minor fixes in documentation

  • Added experimental batch sensor plugin [0986152]

  • Fix LD sampler for JIT modes [98a8ecb]

  • Prevent rebuilding of kernels for each sensor in an optimization [152352f]

  • Fix direction convention in tabphase plugin [49e40ba]

  • Create TLS module lookup cache for new threads [6f62749]

Mitsuba 3.0.0#

July 20, 2022

  • Initial release