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{Mitsuba3,
    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.1.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.2.1-cp311-cp311-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.1-cp311-cp311-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.2.1-cp311-cp311-macosx_10_14_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.2.1-cp310-cp310-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.1-cp310-cp310-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.2.1-cp310-cp310-macosx_10_14_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.2.1-cp39-cp39-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.1-cp39-cp39-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.2.1-cp39-cp39-macosx_10_14_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.2.1-cp38-cp38-win_amd64.whl (27.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.2.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.1-cp38-cp38-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.2.1-cp38-cp38-macosx_10_14_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 27.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mitsuba-3.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a6b97cf60f6092df2c25f082e2c251fe73a067e2a9f036bd9006f06e5424cabe
MD5 06205db2a7735efac7eed8415711aef1
BLAKE2b-256 210e137220778fa6740af2c95037e5a73f3a87df7c7269c3e4f5b9da09a8ca66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0755367769acc16fd0bd224d0d14de2abee71c4c1b5fd36af365b1c188fc6929
MD5 3ce1009afa271709f4f29e8573c68763
BLAKE2b-256 71f84e324557e8e75a6734adee354bb3f24466322ece39804328e5b21c485443

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f59622990215487fae003f5392dbe6def2236174d04a229589099dda6b69019
MD5 2bb24939a585c7c62f80b6fe59b57a17
BLAKE2b-256 8b579c186e8d246b35ae3a195ad59fe5f52df6ab1f5e26baa1f0ad84c841af55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 dadb0a7af8b1513e869e39972dba434b91dc942108f01d7aeb5413634403049a
MD5 8110fd67f8186ed0249fbb9d36c0dbd0
BLAKE2b-256 e7714caff700714d7cd0152f2647f0fc7cdb8f17a28d3c6a41f05fd1a561b773

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mitsuba-3.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fb60a147b893c7e532562d913b4fe895be2a02b34909118d31063bee82708b64
MD5 370193de2f62fc9c68a57755ceed857c
BLAKE2b-256 bcb7374ae28348e5e3c10bbf9b4da27479990a13f21b66e3a11b064e48eeeb12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d069b148f3fa827d1e47ee7c30a9d94a019ca7feb54a8e72539a9fba7511759a
MD5 52325d0f9337af1d7fb39cb74b2a139e
BLAKE2b-256 f436380172f22d4e6731b6eb2977b6927c81faf67c9c4a07cfc24d493b0911f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46707177fd9357de9d39f50f85027b6e0b57f3e11aa6cbb091d9d1a73bceae3a
MD5 aaae474751ae9c9a38fe2e2c125d0ee7
BLAKE2b-256 a9937ef3192605e9889c0e6b8e06305a26249b28c86e38818a6e982d823b70dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4e0f909bce78abe394feaf127cffda856f87dbfb364f9141911667c7370785eb
MD5 75f9784e9cbd7460afd517bd59dc3f98
BLAKE2b-256 8fb9e1f32bea2fba949626c0e6c5c8d04399138f681dcb0df4ec064f0fda28c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mitsuba-3.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bc360d3231b018129849bd23cd7a8131085e1d7d893bb47ec03563fef7c2841e
MD5 27022d4d6722c1ded42965c93cea2dc2
BLAKE2b-256 dac621d0e54899598117a9e9c119c81a33a9f765fba7baf7f208297081c45af1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8eb556e555a217204fda8cc8028fefb43df31f46f68fc17a39425b276c7b67b5
MD5 2f5075744ec1607c2119899b51423257
BLAKE2b-256 19559d3045e6754013b9148705b5db250963a6c23c403432982c2ffe6a15006a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 112894ee0efa37d2fdf9e1ee80184f9506080db2646b9d2b1fc438245580fe2a
MD5 7eaac0b54fa9943fa44254440a841a3c
BLAKE2b-256 b9d14689637caf7df83fe9e8f23a69fe49d410661194a41e204dcad3d3834507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6855f515185c0b4db6b120ba5e4bc42eae626ea47f1d8cfa71881b7b844e9101
MD5 d7e524a929eb7a52a806f593065536c9
BLAKE2b-256 05511cd60396682c757e190a7f782ee0b3a68754b5f769dc0adbbdd9e8e79d50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 27.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mitsuba-3.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ce9045adaac22754ce00be00a269337ac33661efa2d5ba41361c42e22da6ec83
MD5 a0a58a67ee662a6bd876756e0643f16f
BLAKE2b-256 a79a06491439d475352a9ae101896d80d01ec8f4973800fbb4578ccc00021fd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7119f01abf9c78f9e3073d4ddd978a0c4a0b8eb59a1ac29c96008dc9d035e90a
MD5 7df7fa8cbaa7c602d5e3606288ac35f5
BLAKE2b-256 fd7b055792805f40a01036c531c281e6cc836610c425815824bf0b821e18426f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61b6b4e60c53ffb9ab9445be3f5216094f3cbaa92357a950968662c9bf176849
MD5 a6b82359d74e059da7f0da61af118e76
BLAKE2b-256 b452cf4179ef68a6af23175a0607d82aeaa1a9a15443c1dd99cf81563a1b252b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a8f353c5de9fb0e4c968cb63b6c7988874c5dcac04f5cc0df93e1f39ae5265a1
MD5 c55f1972380bb45d51309ead475712d1
BLAKE2b-256 5acf16a1ace4fc901ecd9a289d27d67c2eb591e68703d6adf90db0bdd38639ad

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