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.9.0¶
June 26, 2026
Metal GPU backend. Mitsuba now ships
metal_*andmetal_ad_*variants targeting Apple Silicon GPUs with full support for Dr.Jit just-in-time compilation and hardware-accelerated ray tracing. The ray tracing core of Mitsuba was redesigned and now uses an intermediate scene representation to unify the various backends. (commit b49450, building on PR #1874, contributed by Sebastien Speierer and Wenzel Jakob).Performance improvements. Optimizations in Mitsuba and its dependencies (Dr.Jit, nanobind, nanothread) improve the system’s performance significantly. Tracing and compilation are now ~2× faster. Rendering performance also saw uplift depending on the used scene features.
Environment maps. The envmap emitter now uses GPU hardware texture units for lookups. The underlying
mitsuba.Hierarchical2D0class for importance sampling envmaps switched to a packed memory layout and now uses vector memory loads to pull in data more efficiently. Scenes using environment maps should render noticeably faster after this change. (commits 2ad8ea, 0179ad, df71f6).The
ImageBlockclass used for sample accumulation now uses more efficient vector atomics. The effect is most significant for simple scenes, where sample accumulation was a bottleneck. (commits 2d016b, 2f61f9, contributed by Lovro Nuic).8-bit bitmap textures. The bitmap texture now leaves LDR images in 8-bit precision instead of casting them to half precision, which conserves memory and accelerates rendering. It uses the GPU’s texture units to fetch (and if needed, decode sRGB gamma from) stored values. (commit 56ec0f).
Faster tracing and code generation. A comprehensive optimization pass in Dr.Jit 1.4.0 made tracing/code generation and the Python bindings roughly twice as fast, and accelerated the
@dr.freezereplay path by up to ~2.5×. The latter helps realtime rendering applications that freeze the computation needed to produce a frame. (Dr.Jit-Core PR #194; see the Dr.Jit changelog for the full list of contributing commits).Faster function calls. Dr.Jit now generates much better code for indirect function calls in kernels (e.g. BSDF/emitter evaluation and sampling). It tightly packs call-related data into a joint buffer, loads it using vector memory loads, and passes arguments in registers on the LLVM backend. Compilation time of kernels that call a large set of instances was reduced as well. (PR #201, commit 83207d).
Faster Python bindings. The Python bindings are now faster thanks to improvements in nanobind 2.13, which added instance pooling to recycle short-lived objects (1.42× faster object construction), alongside a faster function dispatcher and up to ~58% faster nd-array exchange. Dr.Jit and Mitsuba allocate large numbers of temporary objects while tracing and benefit from this. (nanobind PRs #1366, #1374, #1375).
Faster Image I/O. JPEG encoding/decoding switched from the bundled
libjpegto libjpeg-turbo. This makes JPEG loading 2–6× faster. (commit c8a5fb).
The following improvements in Dr.Jit 1.4.0 are also noteworthy and were motivated by the needs of differentiable rendering workloads in Mitsuba.
Matrix multiplication for tensors: The
@operator anddr.matmul()now support tensors of any size and shape, fully replicating NumPy / PyTorch semantics (batched matrix products, broadcasting, matrix-vector products, inner products). They dispatch to efficient block-tiled GEMM kernels and are differentiable. (Dr.Jit commit 183dc4, Dr.Jit-Core PR #188).Reverse-mode differentiation of symbolic loops:
@dr.syntaxwhileloops anddr.while_loop()are now differentiable in reverse mode via trajectory replay. (Dr.Jit commit 2ccd7e).NumPy-style array/tensor manipulation, sorting, and reductions: This release adds a large set of NumPy-compatible routines for sorting, reshaping, and reindexing arrays and tensors. Sorting via
dr.sort(),dr.argsort(),dr.argmin(), anddr.argmax()is backed by an efficient GPU-accelerated multi-bit radix sort. New shape-manipulation helpers includedr.expand_dims(),dr.squeeze(),dr.transpose(), anddr.swapaxes(). The horizontal reductions (dr.sum(),dr.prod(),dr.min(),dr.max(),dr.mean(),dr.all(),dr.any(),dr.none(),dr.count(),dr.reduce(),dr.norm(),dr.squared_norm()) now mirror NumPy more closely by accepting akeepdimsflag with full tensor support, and the newdr.var()anddr.std()round out the family. (Dr.Jit PRs #496, #493).Generalized convolution and resampling:
dr.convolve()now also handles discrete filter kernels, with a newboundaryparameter (also ondr.resample()). (Dr.Jit commit 00b40a).Redesigned
drjit.nnAPI and Muon optimizer: The neural network library now also accepts regular tensors as inputs, exposes a cleaneropt.update(net)/net.update(opt)interface, and a differentiablenn.pack(). Newdr.opt.Muonoptimizer for 2D hidden weights. (Dr.Jit commits 39f3ee, d205c1).
New
struct-jitdependency. Theasmjitdependency andstruct.cpp(a small JIT compiler for converting flat records between formats, with sRGB/color-space conversion, dithering, quantization, etc.) were replaced by the external struct-jit project. It uses a patch-based assembler that glues together precompiled machine-code fragments and supports both x86_64 and aarch64 (the old implementation only had a JIT for x86_64 and fell back to slow software emulation on ARM). Note: the data-structure conversion API changed; projects directly using theStructAPI will need adaptations. (commit 06713c).Performance:
Migrated texture consumers to the new array-returning
dr::Textureeval*API (returns a Dr.Jit array by value instead of writing through a raw pointer). (commit 44f194).
Miscellaneous:
The spot emitter now exposes its beam parameters through
mi.traverse(). (commit e0afc5, contributed by Delio Vicini).The ray loader now supports mini-batch training. (PR #1655, contributed by Ziyi Zhang).
Added the
AdamWoptimizer to theoptimizers.pyimports. (PR #1878, contributed by Ziyi Zhang).Improved type-checking stubs. (commits 9ce3e5, 906736, contributed by Philippe Weier).
Bug fixes:
Fixed a regression that disabled parallel loading of leaf scene nodes. (commit 502a82, contributed by Delio Vicini).
Fixed side-effect processing. (commit b9440e, contributed by Delio Vicini).
Fixed integer overflow issues. (commit 575b6c, contributed by Thomas Auzinger).
Fixed the OptiX
sdfgridshape for non-cubical domains. (commit 64175b).Fixed the command line executable for scalar variants. (commit a58d49, contributed by Nicolas Roussel).
ImageBlocknow considers the active mask in scalar backends. (commit 5f9f84, contributed by Tobias Jüterbock).Upgraded the bundled
nanobinddependency. (commit 21279f).Various compilation fixes for MSVC and GCC. (commits f57303, 25fcd8, 4bf6f1).
Mitsuba 3.8.0¶
February 23, 2026
Upgrade Dr.Jit to version 1.3.1. This release brings several important improvements and bug fixes:
Atomic scatter operations: New
dr.scatter_cas()(atomic compare-and-swap) anddr.scatter_exch()(atomic exchange) operations mapping to native PTX instructions on the CUDA backend.AdamW optimizer: New
dr.opt.AdamWoptimizer with built-in weight decay, and AMSGrad support for both Adam and AdamW.Oklab color space conversion: New
dr.linear_srgb_to_oklab()anddr.oklab_to_linear_srgb()for perceptually uniform color space conversion.
The remainder lists Mitsuba-specific additions.
Improvements:
New conditional 1D distributions (
ConditionalRegular1DandConditionalIrregular1D) for efficient conditional probability computations, including lazy CDF computation and a traversable interface. (PR #1725, contributed by Miguel Crespo).The
pplastic(polarized plastic) BSDF now supports spatially varying roughness and index of refraction through texture parameters. (PR #1843, contributed by Guillermo Enguita Lahoz).Significant sunsky emitter optimizations: more efficient internal memory reads and a faster importance sampling strategy. (PRs #1768, #1800, contributed by Mattéo Santini).
Improved function freezing support across many Mitsuba components:
ellipsoids/ellipsoidsmeshshapes,batchsensor,hdrfilm, and 1D/2D distribution classes. (PRs #1791, #1816, contributed).Ellipsoids bounding box computation can now be done on the JIT backend, significantly speeding up scene setup. (PR #1838, contributed by Sebastien Speierer).
Added a JIT-enabled version of
Mesh::build_directed_edges(). (PR #1760).Parser optimization: avoid re-checking visited nodes for cycles during scene loading. (PR #1842, contributed by Vincent Leroy).
ShapeGroupnow cachesparameters_grad_enabled()to avoid repeated checks. (commit 925f36, contributed by Vincent Leroy).Added wheels for Python 3.14 and Linux ARM (
aarch64). (PR #1807, contributed by Merlin Nimier-David).Updated minimum Python version to 3.9. (PR #1814, contributed by Delio Vicini).
Include child properties in
Mesh::to_string()output. (PR #1811, contributed by OscarLin).
Bug fixes:
- This list is not exhaustive:
Fixed multiple issues in the
blendbsdfplugin: incorrect PDF insample(), missingeval_null_transmissionmethod, and incorrect sampling weight in bothblendbsdfandblendphase. (PR #1681, contributed by Baptiste Nicolet).Fixed Embree memory leak in scalar modes where acceleration data structures were not properly cleaned up. (PR #1767, contributed by Delio Vicini).
Fixed
ray_intersect_trianglein Python returningNoneinstead of the result from the C++ call. (PR #1780, contributed by Jérémy Riviere).Fixed numerical issues in AD (PRB) integrators. (PR #1818, contributed by Christian Döring).
Fixed
bitmaptextures evaluating to 0 in CUDA double-precision variants, and similarly forsdfgrid. (commits e18c16, 54cc70).Fixed
hide_emittersto handle custom shapes. (commit 3f968c).Restored
resourcesfeature inload_dict(). (PR #1829).Fixed mesh not respecting explicitly provided normals (normals would be recomputed unconditionally). (PR #1762, contributed by Delio Vicini).
Added missing
si.compute_uv_partials(ray)for AOV typeduv_dy. (PR #1772, contributed by Sebastian Winberg).Fixed handling of 3x3 transforms in
Properties. (PR #1764).Handle differentiation through
aovwhen no AOVs carry gradients. (commit f235aa).Fixed
KDTreebuilds on MSVC. (commit 9e542b).Fixed
shapegroup.hcompilation when no vectorized backend is available. (commit 85ae57).Handle numpy scalars in
Properties. (PR #1788).Fixed
__repr__for Python-created meshes. (PR #1753, contributed by Delio Vicini).Fixed build compatibility with newer CMake versions. (commit eb65b9).
Mitsuba 3.7.1¶
September 17, 2025
Upgrade Dr.Jit to version 1.2.0. This release brings several important improvements and several bug fixes:
Event API for fine-grained GPU kernel timing and synchronization, enabling better performance profiling.
Enhanced CUDA-OpenGL interoperability with simplified APIs for efficient data sharing between CUDA and OpenGL.
Register spilling to shared memory on CUDA backend, improving performance for complex kernels with high register pressure.
Memory view support for zero-copy data access from Python.
The remainder lists Mitsuba-specific additions.
Improvements:
Improved bump and normal mapping with two important fixes for more robust and artifact-free rendering. Both the
bumpmapandnormalmapBSDFs now include: (1) Invalid normal flipping - ensures perturbed normals are always consistent with the geometric normal by flipping shading normals when needed, following the approach in Schüssler et al. 2017 [SchusslerHHD17]. (2) Microfacet-based shadowing - smooths shadow terminator artifacts using the shadowing function from Estevez et al. 2019 [ELS19]. Both features are enabled by default but can be disabled via theflip_invalid_normalsanduse_shadowing_functionparameters for backwards compatibility. (commit e32d71, contributed by Delio Vicini).Improved sunsky documentation. (PR #1743, contributed by Mattéo Santini).
Added support for vcalls of Texture. (commit 6b1603).
Added Python bindings for
field<T>types. (PR #1736, contributed by Delio Vicini).Allow multiple Python objects to refer to the same
Object*. (PR #1740).
Bug fixes:
Fixed bug with unintentional reordering of channels when serializing and deserializing a Bitmap with more than 10 channels. (commit e84b18, contributed by Sebastian Winberg).
Fixed
hide_emittersbehavior forareaemitters inpathintegrator and all other integrators. (commits 3c3bf1, 075513, c967a0).Fixed KDTree reference counting and shutdown procedure. (commit 14c8c9).
Fixed compilation issues of the KDTree. (commit 65b381).
Prevent NaN values for normals of triangles with zero area. (PR #1733, contributed by Delio Vicini).
Prevent users updating the
UniformSpectrumwith a float of size different than 1. (PR #1722, contributed by Mattéo Santini).Added Image manipulation tutorial back in the “How-to Guides”. (commit 465609, contributed by Baptiste Nicolet).
Add support for JIT-freeting to the sunsky classes. (commit f07f26).
Mitsuba 3.7.0¶
August 7, 2025
Upgrade Dr.Jit to version 1.1.0. The following list summarizes major new features added to Dr.Jit. See the Dr.Jit release notes for additional detail and various smaller features that are not listed here.
Cooperative vectors and a neural network library: Dr.Jit now supports efficient matrix-vector arithmetic that compiles to tensor core machine instructions on NVIDIA GPUs and packet instructions (e.g., AVX512) on the LLVM backend. A modular neural network library facilitates evaluating and optimizing fully fused MLPs in rendering code. (Dr.Jit PR #384, Dr.Jit-Core PR #141).
Hash grid encoding: Neural network hash grid encoding inspired by Instant NGP, including both traditional hash grids and permutohedral encodings for high-dimensional inputs. (Dr.Jit PR #390, contributed by Christian Döring and Merlin Nimier-David).
Function freezing: The
@drjit.freezedecorator eliminates repeated tracing overhead by caching and replaying JIT-compiled kernels, which can dramatically accelerate programs with repeated computations. (Dr.Jit PR #336, Dr.Jit-Core PR #107, contributed by Christian Döring).Shader Execution Reordering (SER):
drjit.reorder_threads()shuffles threads to reduce warp-level divergence, improving performance for branching code. (Dr.Jit PR #395, Dr.Jit-Core PR #145).New random number generation API: The function
drjit.rng()returns adrjit.random.Generatorobject (resembling analogous API in NumPy, PyTorch, etc.) that computes high-quality random variates that are statistically independent within and across parallel streams. (Dr.Jit PR #417).Array resampling and convolution: New functions
drjit.resample()anddrjit.convolve()support differentiable signal processing with various reconstruction filters. (Dr.Jit PRs #358, #378).Gradient-based optimizers: New
drjit.optmodule withdrjit.opt.SGD,drjit.opt.Adam, anddrjit.opt.RMSPropoptimizers. They improve upon the previous Mitsuba versions and include support for adaptive mixed-precision training. (Dr.Jit PRs #345, #402).TensorFlow interoperability:
@drjit.wrapenables seamless integration with TensorFlow. (Dr.Jit PR #301, contributed by Jakob Hoydis).Enhanced tensor operations: New functions
drjit.concat(),drjit.take(),drjit.take_interp(), anddrjit.moveaxis()for tensor manipulation.Performance improvements: Packet scatter-add operations, optimized texture access, and faster
drjit.rsqrt()on the LLVM backend (Dr.Jit PRs #343, #329, #406, Dr.Jit-Core PR #151),
The remainder lists Mitsuba-specific additions.
Function freezing. Using the previously mentioned
@dr.freezefeature, it is now possible to freeze functions that callmi.render(). Rendering another view (e.g., from a different viewpoint or with a different material parameter) then merely launches the previously compiled kernels instead of tracing the rendering process again. This unlocks significant acceleration when repeatedly rendering complex scenes from Python (e.g., in optimization loops or real-time applications). Some related changes in Mitsuba were required to make this possible. (PRs #1477, #1602, #1642, contributed by Christian Döring).AD integrators and moving geometry. All automatic differentiation integrators have been updated to correctly handle continuous derivative terms arising from moving geometry. In particular, the continuous (i.e., non-boundary) derivative of various integrators was missing partial derivative terms that could be required in certain geometry optimization applications. The updated integrators also run ~30% faster thanks to Shader Execution Reordering (SER). (PR #1680). We thank Markus Worchel, Ugo Pavo Finnendahl, and Marc Alexa for bringing this issue to our attention.
Gaussian splatting. Two new shape plugins support volumetric rendering applications based on 3D Gaussian splatting: ellipsoids is an anisotropic ellipsoid primitives using closed-form ray intersection, while ellipsoidsmesh uses a mesh-based representation. The volprim_rf_basic integrator documentation integrator renders emissive volumes based on them (PR #1464, contributed by Sebastien Speierer).
The new sunsky plugin implements Hosek-Wilkie models for the sun and sky, where sampling of the latter is based on Nick Vitsas and Konstantinos Vardis’ Truncated Gaussian Mixture Model. (PR #1473, #1461, #1491, contributed by Mattéo Santini).
Shader Execution Reordering (SER). The
Scene.ray_intersect()andScene.ray_intersect_preliminary()methods now accept areorderparameter to trigger thread reordering on CUDA backends, which shuffles threads into coherent warps based on shape IDs. Performance improvements vary by scene complexity (ranging from 0.67x to 1.95x speedup). SER can be controlled globally via the scene’sallow_thread_reorderingparameter or by disablingdrjit.JitFlag.ShaderExecutionReordering. Most integrators have been updated to use SER by default. (PR #1623).The performance of ray tracing kernels run through the CUDA/OptiX backend was significantly improved. Previously, several design decisions kept Mitsuba off the OptiX “fast path”, which is now fixed. (PRs #1561, #1563, #1568).
Mitsuba now targets the OptiX 8.0 ABI available on NVIDIA driver version 535 or newer. (PR #1480).
Bitmap textures now use half precision by default. (PR #1478.)
Improvements to the
mitsuba.Shapeinterface. (PRs #1484, #1485).The Mitsuba optimizers (e.g. Adam) were removed. They are now aliases to more sophisticated implementations in Dr.Jit. (Mitsuba PR #1569, Dr.Jit PR
#345).The
TransformAPI became more relaxed—for example,Transform4f.scale()andTransform4f().scale()are now both equivalent ways of creating a transformation. This removes an API break introduced in Mitsuba version 3.6.0. (PR #1638).Refactoring. The codebase underwent several major refactoring passes to remove technical debt:
Removal of the legacy thread system and replacement with standard C++ constructs (PR #1622).
Removal of the legacy object system and replacement with standard C++ constructs; rewrite of the
mi.Propertiesand plugin loader implementations (PR #1630).Switched to a new parser and scene IR common to both XML and dictionary parsing; further work on
mi.Properties(PRs #1669, #1676)Replaced
Transform4fby specialized affine and perspective transformations. (PR #1679).Pass over the test suite to accelerate CI test runs (PR #1659)
This is part of an ongoing effort to modernize and improve legacy Mitsuba code.
Added an API to easily read/write tensor files from Python and access them as Dr.Jit tensor instances in Python/C++ code (PR #1705).
The rawconstant texture plugin stores raw 1D/3D values without any color space conversion or spectral upsampling, useful when exact numerical values need to be preserved. (PR #1496, contributed by Merlin Nimier-David).
Various minor improvements and fixes. (PRs #1350, #1495, #1496, #1527, #1540, #1545, #1547, #1528, #1583, #1522, #1600, #1627, #1628, #1656, #1663, #1668, #1678, #1696, and #1702).
Mitsuba 3.6.4¶
February 4, 2025
Mitsuba 3.6.3¶
January 29, 2025
Release was retracted
Mitsuba 3.6.2¶
January 16, 2025
Mitsuba 3.6.1¶
January 16, 2025
Mitsuba 3.6.0¶
November 25, 2024
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 96e0af
Callback system for variant changes #1367
MeshPtrfor vectorizedMeshmethod calls #1319Aliases for the
ArrayXtypes of Dr.Jit 2e86e5Fix attribute evaluation for
twosidedBSDFs 5508ee .. 7528d9batchsensors expose their innerSensorobjects when traversed withmi.traverse()#1297Updated wheel build process with new variants #1355
Mitsuba 3.5.2¶
June 5, 2024
Most likely the last release which uses pybind11.
OptiX scene clean-ups could segfault 03f5e1
Mitsuba 3.5.1¶
June 5, 2024
Upgrade Dr.Jit to [v0.4.6]
More robust scene clean-up when using Embree 7bb672
Support for AOV fields in Python AD integrators f3b427
Fix potential segfault during OptiX scene clean-up 0bcfc7
Shape.parameters_grad_enablednow only applies to parameters that introduce visibility discontinuities 3013adThe
measuredpolarizedplugin is now supported in vectorized variants 68b3a5Fix an issue where the
constantplugin would not reuse kernels deebe4Minor changes to support Nvidia v555 drivers 19bf5a
Many numerical and performance improvements to the
sdfgridshape 455de4 .. 9e156b
Mitsuba 3.5.0¶
New projective sampling based integrators, see PR #997 for more details. Here’s a brief overview of some of the major or breaking changes:
New
prb_projectiveanddirect_projectiveintegratorsNew curve/shadow optimization tutorial
Removed reparameterizations
Can no longer differentiate
instance,sdfgridandSensor’s positions
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 97d4b6
Python bindings for
mi.lookup_iord598d7Fixes to
maskBSDF when differentiated ee87f1Ray sampling is fixed when
sample_borderis used c10b87Rename OpenEXR shared library 9cc3bf
Handle phase function differentiation in
prbvolpath5f9eebFixes to linear
retarder8033a8Avoid copies to host when building 1D distributions 825f44 .. 8f71fe
Fixes to linear
retarder8033a8Sensor’s prinicpal point is now exposed throught
m̀i.traverse()f59faaMinor fixes to
ptracerwhich could result in illegal memory accesses 3d902aOther 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 96b219Emitters may now define a sampling weight 9a5f4c
Fix
bsplinecurveandlinearcurveshading frames 3875f9Add implementation of
LargeStepsmethod for mesh optimizations (includes a new tutorial) 48e642 .. 130ed5Support for spectral phase functions c7d5c7
Additional resource folders can now be specified in
mi.load_dict()66ea52BSDFs can expose their attributes through a generic
eval_attributemethod cfc425 .. c345d7New
sdfgridshape: a signed distance field on a regular grid 272a5b .. 618da8Support for adjoint differentiation methods through the
aovintegrator c9df8d .. bff5cfCurve shapes (
bsplinecurveandlinearcurve) always have back-face culling enabled 188b25 .. 01ea7bPropertiescan now accept tensor objects, currenlty used inbitmap,sdfgridandgridvolumed030a3Improvements to the
batchsensor (performance, documentation, bug fixes) 527ed2 .. 65e044Many 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) df940c
Sensors members are opaque (fixes long JIT compilation times) c864e0
Fix
cylinder’s normals d9ea8eFix next event estimation (NEE) in volume integrators
mi.xml.dict_to_xmlnow supports volumes 15d63dAllow extending
AdjointIntegratorin Python 15d63dmi.load_dict()is parallel (by default) bb672eUpsampling routines now support
boxfilters 64e2abThe
Mesh.write_ply()function writess, trather thanu, vfields fe4e44All shapes can hold
Textureattributes which can be evaluated f6ec94Radiative backpropagation style integrators use less memory c1a9b8
Mitsuba 3.2.1¶
February 22, 2023
Upgrade Dr.Jit to v0.4.1
Filmplugins can now have error-compensated accumulation in JIT modes afeefeFix and add missing Python bindings for
Endpoint/Emitter/Sensor8f03c7Numerically robust sphere-ray intersections 7d46e1 .. 0b483b
Fix parallel scene loading with Python plugins 93bb99
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
ShapeandShapePtrbdce95Fix Python bindings for
Scene4cd558Fix bug which would break the AD graph in
spectralvariants f3ac81Fix sampling of
hgPhaseFunction10d351Fix
envmapupdating in JIT variants 7bf132Expose
PhaseFunctionofMediumobjects throughmi.traverse()cca579
Mitsuba 3.1.1¶
November 25, 2022
Fixed maximum limits for OptiX kernel launches a8e698
Mitsuba 3.1.0¶
New features¶
Enable ray tracing against two different scenes in a single kernel df79cb
Make
ShapeGrouptraversable and updatable e0871aEnable differentiation of
to_worldininstance54d2d3Enable differentiation of
to_worldinsphere,rectangle,diskandcylinderb5d8c5 .. b5d8c5Enable differentiation of
to_worldinperspectiveandthinlensea513f .. ea513fAdd
BSDF::eval_diffuse_reflectance()to most BSDF plugins 59af88Add
mi.OptixDenoiserclass for simple denoising in Python 552931 .. 552931envmapplugin can be constructed frommi.Bitmapobject 9389c8
Other improvements¶
Major performance improvements in
cuda_*variants with new version of Dr.JitDeprecated
samples_per_passparameter 8ba852Fix rendering progress bar on Windows d8db80
objfile parsing performance improvements on Windows 28660fFix
mi.luminance()for monochromatic modes 61b951Add bindings for
PluginManager.create_object()4ebf70Fix
SceneParameters.update()unnecessary hash computation f57e74Fix numerical instabilities with
boxfilter splatting 2d8976Improve
math::bisectalgorithm 7ca09aFix syntax highlighting in documentation and tutorials 5aa271
Fix
Optimizer.set_learning_rateforintvalues 53143dVarious minor improvements to the Python typing stub generation b7ef34 .. ad72a5
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*_rgband*_spectralvariants f88383Add PyTorch/Mitsuba interoperability tutorial using
dr.wrap_ad()Fix DLL loading crash when working with Mitsuba and PyTorch in Python 59d7b3
Fix crash when evaluating Mitsuba ray tracing kernel from another thread in
cudamode. cd0846Add stubs for
Float,ScalarFloatand other builtin types 824917Plugins
regularandblackbodyhave renamed parameters:wavelength_min,wavelength_max(previouslylambda_min,lambda_max) 9d3487Dr.Jit Python stubs are generated during local builds 4302ca
Minor improvements to the documentation
Various other minor fixes
Mitsuba 3.0.1¶
July 27, 2022
Mitsuba 3.0.0¶
July 20, 2022
Initial release