mitsuba
Mitsuba 3: A Retargetable Forward and Inverse Renderer
What it is and what it does
Mitsuba 3 is a Python-first rendering engine built on the Dr.Jit JIT compiler, designed for research in computer graphics and inverse rendering. It can simulate light transport in multiple modes—scalar (one-ray-at-a-time), spectral, and polarized—and retarget the same code to run on CPU (via LLVM) or NVIDIA GPU (via CUDA/OptiX). The system is differentiable, meaning it can compute gradients of the entire rendering pipeline with respect to scene parameters like camera pose, geometry, materials, textures, and volumes, enabling optimization and inverse rendering workflows.
The package ships with thirteen pre-built variants covering RGB and spectral rendering in both forward and differentiable modes. Materials, textures, and custom rendering algorithms can be written directly in Python and are JIT-compiled on the fly. It is cross-platform (Linux x86_64, macOS arm64/x86_64, Windows x86_64) and comes with comprehensive documentation, tutorial videos, and Jupyter notebooks. The main runtime dependencies are typing_extensions and drjit.
Use it for:
- Render photorealistic scenes with physically-based materials and lighting, then export to EXR or other formats for downstream processing.
- Optimize camera poses, object geometry, or material parameters by computing gradients through the rendering pipeline in differentiable mode.
- Simulate spectral or polarized light transport for research in optics, material science, or advanced rendering algorithms.
- Prototype custom rendering algorithms in Python without recompiling the core engine, leveraging JIT compilation for performance.
- Conduct inverse rendering experiments to recover scene properties (textures, lighting, geometry) from target images.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Mitsuba 3 is a research-oriented rendering system that simulates light transport for both forward rendering and inverse (differentiable) rendering tasks, with support for scalar, spectral, and polarized light simulation on CPU and GPU.
Yes, with conditions. Mitsuba 3 is worth installing if you need a research-grade differentiable renderer with Python integration and cross-platform support. The active maintenance, permissive license, and zero known vulnerabilities are strong signals. Medium install friction is acceptable for a specialized graphics library. However, GPU compute requires a recent NVIDIA driver, and CPU vectorization requires LLVM—verify these prerequisites match your environment before committing.
Install
mitsuba on PyPI
pip
pip install mitsubauv
uv add mitsubapoetry
poetry add mitsubaInstalling mitsuba
Before you install
Medium install friction: pre-compiled wheels available for Python 3.9+ on Linux, macOS (arm64 and x86_64), and Windows x86_64, but the package depends on drjit and requires optional NVIDIA drivers (≥535) for GPU compute or LLVM (≥11.1) for CPU vectorization. Last release 7 days ago; repository is active with 2888 stars.
License in practice
BSD License (permissive): you can use, modify, and distribute this package freely in both open-source and commercial projects, with minimal restrictions beyond attribution.
Quickstart
pip install mitsuba
import mitsuba as mi
mi.set_variant('scalar_rgb')
scene = mi.load_dict(mi.cornell_box())
img = mi.render(scene)
mi.Bitmap(img).write('output.exr')
Python >= 3.9 required; GPU rendering requires NVIDIA driver >= 535; CPU vectorization requires LLVM >= 11.1 (optional).
Verify before relying
- Exact performance benchmarks or throughput metrics compared to other renderers.
- Whether the thirteen built-in variants cover all common research use cases or if custom compilation is frequently needed.
- Memory requirements for typical scene sizes and rendering tasks.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — typing_extensions, drjit |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 201,735/month — #9,666 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mitsuba-3.9.1-cp310-cp310-macosx_11_0_arm64.whl; mitsuba-3.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; mitsuba-3.9.1-cp310-cp310-manylinux_2_28_x86_64.whl; mitsuba-3.9.1-cp310-cp310-win_amd64.whl; mitsuba-3.9.1-cp311-cp311-macosx_11_0_arm64.whl; mitsuba-3.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; mitsuba-3.9.1-cp311-cp311-manylinux_2_28_x86_64.whl; mitsuba-3.9.1-cp311-cp311-win_amd64.whl; mitsuba-3.9.1-cp312-abi3-macosx_11_0_arm64.whl; mitsuba-3.9.1-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; mitsuba-3.9.1-cp312-abi3-manylinux_2_28_x86_64.whl; mitsuba-3.9.1-cp312-abi3-win_amd64.whl; mitsuba-3.9.1-cp312-cp312-macosx_11_0_arm64.whl; mitsuba-3.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; mitsuba-3.9.1-cp312-cp312-manylinux_2_28_x86_64.whl; mitsuba-3.9.1-cp312-cp312-win_amd64.whl; mitsuba-3.9.1-cp313-cp313-macosx_11_0_arm64.whl; mitsuba-3.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; mitsuba-3.9.1-cp313-cp313-manylinux_2_28_x86_64.whl; mitsuba-3.9.1-cp313-cp313-win_amd64.whl
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
pyrenderPyrender renders 3D scenes to images and…
permissive · top 5,000 on PyPI
gsplatgsplat is a CUDA-accelerated Python library for…
unclear · top 15,000 on PyPI
tensorflow-graphicsTensorFlow Graphics provides differentiable…
permissive · top 15,000 on PyPI
mujoco-warpGPU-accelerated physics simulation for robotics…
permissive · top 15,000 on PyPI
nvidia-cublas-cu11Provides NVIDIA CUBLAS native runtime libraries…
unclear · top 5,000 on PyPI
quadrantsQuadrants is a high-performance compiler that…
permissive · top 15,000 on PyPI
cpm-kernelsProvides CUDA kernels optimized for CPM,…
permissive · top 15,000 on PyPI
nvidia-cutlass-dsl-libs-baseProvides Python interfaces for writing…
unclear · top 5,000 on PyPI
nvidia-cusolver-cu11Provides NVIDIA CUDA solver native runtime…
unclear · top 5,000 on PyPI