skillfed

mitsuba

Mitsuba 3: A Retargetable Forward and Inverse Renderer

mitsuba v3.9.1 201.7K downloads/30d#9,666 on PyPI2,888
Permissive license Active released

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 mitsuba

uv

uv add mitsuba

poetry

poetry add mitsuba

Installing 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

License :: OSI Approved :: BSD License

Tags

differentiable rendererlight transport simulationphysically based renderinginverse renderingspectral renderingGPU rendering pythonray tracing library
differentiable-renderingphysically-basedjit-compiled

More Graphics packages