Skip to main content

3: A Retargetable Forward and Inverse Renderer

Project description

Introduction

Mitsuba 3 is a research-oriented rendering system for forward and inverse light transport simulation developed at EPFL in Switzerland. It consists of a core library and a set of plugins that implement functionality ranging from materials and light sources to complete rendering algorithms.

Mitsuba 3 is retargetable: this means that the underlying implementations and data structures can transform to accomplish various different tasks. For example, the same code can simulate both scalar (classic one-ray-at-a-time) RGB transport or differential spectral transport on the GPU. This all builds on Dr.Jit, a specialized just-in-time (JIT) compiler developed specifically for this project.

Main Features

  • Cross-platform: Mitsuba 3 has been tested on Linux (x86_64), macOS (aarch64, x86_64), and Windows (x86_64).

  • High performance: The underlying Dr.Jit compiler fuses rendering code into kernels that achieve state-of-the-art performance using an LLVM backend targeting the CPU and a CUDA/OptiX backend targeting NVIDIA GPUs with ray tracing hardware acceleration.

  • Python first: Mitsuba 3 is deeply integrated with Python. Materials, textures, and even full rendering algorithms can be developed in Python, which the system JIT-compiles (and optionally differentiates) on the fly. This enables the experimentation needed for research in computer graphics and other disciplines.

  • Differentiation: Mitsuba 3 is a differentiable renderer, meaning that it can compute derivatives of the entire simulation with respect to input parameters such as camera pose, geometry, BSDFs, textures, and volumes. It implements recent differentiable rendering algorithms developed at EPFL.

  • Spectral & Polarization: Mitsuba 3 can be used as a monochromatic renderer, RGB-based renderer, or spectral renderer. Each variant can optionally account for the effects of polarization if desired.

Tutorial videos, documentation

We've recorded several [YouTube videos][10] that provide a gentle introduction Mitsuba 3 and Dr.Jit. Beyond this you can find complete Juypter notebooks covering a variety of applications, how-to guides, and reference documentation on [readthedocs][2].

Installation

We provide pre-compiled binary wheels via PyPI. Installing Mitsuba this way is as simple as running

pip install mitsuba

on the command line. The Python package includes four variants by default:

  • scalar_spectral
  • scalar_rgb
  • llvm_ad_rgb
  • cuda_ad_rgb

The first two perform classic one-ray-at-a-time simulation using either a RGB or spectral color representation, while the latter two can be used for inverse rendering on the CPU or GPU. To access additional variants, you will need to compile a custom version of Dr.Jit using CMake. Please see the documentation for details on this.

Requirements

  • Python >= 3.8
  • (optional) For computation on the GPU: Nvidia driver >= 495.89
  • (optional) For vectorized / parallel computation on the CPU: LLVM >= 11.1

Usage

Here is a simple "Hello World" example that shows how simple it is to render a scene using Mitsuba 3 from Python:

# Import the library using the alias "mi"
import mitsuba as mi
# Set the variant of the renderer
mi.set_variant('scalar_rgb')
# Load a scene
scene = mi.load_dict(mi.cornell_box())
# Render the scene
img = mi.render(scene)
# Write the rendered image to an EXR file
mi.Bitmap(img).write('cbox.exr')

Tutorials and example notebooks covering a variety of applications can be found in the [documentation][2].

About

This project was created by Wenzel Jakob. Significant features and/or improvements to the code were contributed by Sébastien Speierer, Nicolas Roussel, Merlin Nimier-David, Delio Vicini, Tizian Zeltner, Baptiste Nicolet, Miguel Crespo, Vincent Leroy, and Ziyi Zhang.

When using Mitsuba 3 in academic projects, please cite:

@software{jakob2022mitsuba3,
    title = {Mitsuba 3 renderer},
    author = {Wenzel Jakob and Sébastien Speierer and Nicolas Roussel and Merlin Nimier-David and Delio Vicini and Tizian Zeltner and Baptiste Nicolet and Miguel Crespo and Vincent Leroy and Ziyi Zhang},
    note = {https://mitsuba-renderer.org},
    version = {3.0.1},
    year = 2022,
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

mitsuba-3.1.1-cp311-cp311-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.1.1-cp311-cp311-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.1.1-cp311-cp311-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.1.1-cp310-cp310-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.1.1-cp310-cp310-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.1.1-cp310-cp310-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.1.1-cp39-cp39-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.1.1-cp39-cp39-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.1.1-cp39-cp39-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.1.1-cp38-cp38-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.1.1-cp38-cp38-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.1.1-cp38-cp38-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

Details for the file mitsuba-3.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 27.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for mitsuba-3.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e509e0e4667aca229d521930e022ed51e5ba98ce95702fdf03059afa29561b0
MD5 b1ddcd7dd6655ed206a069edfabed823
BLAKE2b-256 d91b54945b2b2d63c2e8313009602190bc8b1bddc258fdbbe07fed7e342b8769

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b5ac8d718bb9fe8794028cc0a008c11206794750de3c77b35e429e71ced848e3
MD5 e43f3a96a01928d63bfa096697eff316
BLAKE2b-256 023f0243c76ab9dbcb0a1ceeaeda034725288db42e4f0fd076366e0f6861e95e

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3610d1f1f336245be64d82d040e8a4ddc8b61f3037ea832ec3a5ccedf5bff129
MD5 0fa8579c2d68b96c1aec1918f24d1338
BLAKE2b-256 12b9e3abb60c44cb8e730deaa828d326c2021676cd8a35636a9c46a99e0a0d31

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 392579dcb5b8ffa532cc1674fb7b5978c92a2e199460817b93a30d00d9f2d1de
MD5 569cb15ffdf7ba0531dbb8f06992f185
BLAKE2b-256 e102409b47d65bb4911e1102852a95519a982be950c9fbad99fe9124453061d0

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for mitsuba-3.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 79749dbfdb3e0a8f9db6df242ad230a4bdd4ef1ba39dc037db44c8535cd890e2
MD5 619ec941e2b9b5404e6c0458f756285d
BLAKE2b-256 2db24c31acbcaa18c5461008d0353d3653d7f41996abfcb0bfe6090747acf07c

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 88d4018a1c8f921e5362f2272dc4fdab5af2722d9941cf5fa35d0e2474ee4fa6
MD5 25a56c1fe1bf7d6b6260cf5a1ccf17ea
BLAKE2b-256 45c6e71c10cca5bf6c14d196e9b23a65071ed2fdcb09e139a2f10343bb79139a

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c01f9d097a514bb64393c533387437a9a657115326a5765a41536d03710ae801
MD5 c128224af882e2dcf093e0460a2a5350
BLAKE2b-256 b72ee5a3bb1fb364fdf1ca36ed5659fb40d85b1027fa500aaeb9780ee6daba75

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3867d52f04ea0589192a46c613e980b0ca92fa6ab69bcd0483ce535d3f4aa761
MD5 301eccc97c91296ab1c94d90b574ee64
BLAKE2b-256 08b99205c9aa8951f4db3ce4d626695e25ce96e57365bdafcb58d98036c17eaa

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for mitsuba-3.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8a75a7a442e12abc55ad7299db103a8fdf337353ebfa915f764e2e52805b1f5a
MD5 b34e12aaa9f79b106ed0110423d420ec
BLAKE2b-256 49a0ee33faddcac3eb7caa45271c1f0206d3ba894030273e6455f30285f2aaa4

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0ce3260b030e6ba1356a0b08388ebd1c66c61e294d52ebfa9d99a0756d7bb0dd
MD5 1363e8b08a2ca2cb70e85861acd6f84b
BLAKE2b-256 4c615c793365bfc46586b212f6abe57f055adaee1d68da666567cbf262f1bae6

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc11f8a2417fd580567f01667b25c40c2dbb480fd08e286ec983ba5562ee0bb1
MD5 c7b6486c6b40582c4dc98c39fc2c2b66
BLAKE2b-256 d1ba110a28cfb11e29009089d13637353f6fe1e4b980e36fbcdaee8cc4152602

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fbb044719009f15814d9170852ecdd25eb3a87366b73587eddd8ebed9aea39c4
MD5 49e6b0b4eadd79396c8c837aae64e21b
BLAKE2b-256 04f9fe276caf06502b627223962c3dd4a92e50b66f3ef64c9ffa7e3f428ccfd8

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.1.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 27.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for mitsuba-3.1.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a44207419c74e9fe37a53790e081dd2f8eeee2593c9c4bfa71c654ab1f2e9509
MD5 61e92f9fa9cef65848603f8016eb5f6e
BLAKE2b-256 5005b6ef31b29c9a6bcefed3a3b83bcdf75f74b7f8053ab90a85b1601d4ab1c5

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8ae6cdfadf72b24e3d603ccac7dbf0f5817a0024b6091c2ccc3d9bf49810bde9
MD5 ef2c303eb285585565856846b992e6bf
BLAKE2b-256 37a6fbf6f801c87a587ff1f0cb5a7428c7a2774091148aa3b612053a2d8abdfc

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 baea59c9e205d324d24d1d9081c6cb5e0af0acb665384d412773169f6f19f9e8
MD5 1ee3dbb11d456ed1028f88fce7eb1910
BLAKE2b-256 e46f693c263d07df582b4fe27796bcfbab56dfa138a6d015ba733d4147b476bb

See more details on using hashes here.

File details

Details for the file mitsuba-3.1.1-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.1.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 61c53e46b152bbe9788256ed28ae87b7d82baabaeecc94597bce87ab6dce626a
MD5 2a9a57eabd8b440cd4df939959c3dde7
BLAKE2b-256 343a4ac3481bf10322a63e55ed29989737e53de27b66508dde59230de2464082

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page