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.3.0-cp311-cp311-win_amd64.whl (30.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (38.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.3.0-cp311-cp311-macosx_11_0_arm64.whl (25.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.3.0-cp311-cp311-macosx_10_14_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.3.0-cp310-cp310-win_amd64.whl (30.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (38.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.3.0-cp310-cp310-macosx_11_0_arm64.whl (25.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.3.0-cp310-cp310-macosx_10_14_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.3.0-cp39-cp39-win_amd64.whl (30.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (38.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.3.0-cp39-cp39-macosx_11_0_arm64.whl (25.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.3.0-cp39-cp39-macosx_10_14_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.3.0-cp38-cp38-win_amd64.whl (30.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.3.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (38.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.3.0-cp38-cp38-macosx_11_0_arm64.whl (25.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.3.0-cp38-cp38-macosx_10_14_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 30.2 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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 98365df669a0331b31fe99bb0be431900c06a4baa8dddcfcdf788ab90726ccfd
MD5 657279bb974fa8a914f64efd2abbafa7
BLAKE2b-256 c490858962474119de660036326e88c746af88197edee72989d90e77f194ec33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 253093af0eea12d0669f7ec55bbc6cf40b837445fa911ca31065661f4b2f8bda
MD5 70856fc48b5f69473a3711e04c717776
BLAKE2b-256 e3a221af2501f0cced218c266f37df533b1ffd809629cb36862952b20832a6ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ddca4d3524e083f49efd646bebcc8531211c6234fb8a30ebd44ecc567727885
MD5 18de6fa199ac5df562e7d90d6980878b
BLAKE2b-256 9bc696ed439e16c06093cea43b112efc07a1a3962506c9571d394b50113d0cc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5c0046bb0c55dcffb92979766fe3ab5cd547649321f89ff18b7a9fbec4615a18
MD5 883f58b42d6643a21731909ca29c28ea
BLAKE2b-256 e756c481286d38b6f4f7e4395ff2c26c83b612f65ac5ebcb5802f7a29239b54b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 30.2 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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ac2c62c62017c7dc2a5aedbad7a8c37405fe887e187181b2b56819a15dd85504
MD5 ecfb328e7f42c21815d32e0d853a01c3
BLAKE2b-256 9b31741d80d7a32be8df564040cb99a7da6225a541b8463c6fed8fa8137cbaa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b119516f89b1c986585f76c78478da3c7d5bdabfd62e57cf20bbf47415ace0e9
MD5 1d8a61a85d62057433d612def4418128
BLAKE2b-256 51953620a8cdb72a68e4a59ab8ebd1838dad24adeab892c8ebe7492629dcf94c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91f782ebea2b6b397f57e9f1aa162c29c095340f4dc77d8ab021a4d7faffa0d0
MD5 4fd0019a8ab44148dd093381f9d68c9c
BLAKE2b-256 30e2d2caee748f8bb68220f6ff72d4c2b3b96b82705ce56e73c57413bb198646

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e2afccf0eb1f63357d37c1112ec348eddbc5d879ed8582c16307cebe70730bb7
MD5 ac3931874906aa94d43b8a8e1204ff78
BLAKE2b-256 1e77152984a3198423e1891874e63a1b9ba014a4b7b115c5fd9727b04275d313

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.3.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 30.2 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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9f6cc871de1a631c09a35ff701a001ebdfd4f8b9d8ebda865581854d41e09690
MD5 be8f2ff6a5e34db6dfbdb876ea292451
BLAKE2b-256 116731362994c436aff42bce279abe21ef77a6b08596724d44852dd16fafaf2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 009135c37ddffc09ddcbc9ed446796462edf5914a00c82994e7fd54147436962
MD5 2e012e09f089f843e154b207a21afc0e
BLAKE2b-256 bf158f9d91a51b7a4f5613cc12dde710b36a7fc0ade5e635407e6853d0e1dd15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc283d28d47803d30240f95636b0b06a6541f340f775bef4bc820a7a699feb90
MD5 ffb9334300768c283f2e4648f1f39bda
BLAKE2b-256 e1f0c25b2be8e679e2e07e5b8d213ce5120a7846207b3afe622e6fbe503aa25e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d7612089258196d8699dba37493a8fe9240bc08eaa16b019bb54a1b57ebdf000
MD5 66ceadd8bd4890f19daafd09d4da30b1
BLAKE2b-256 1377afab04048e61249c2bf32152314d9e6022f61fc8ab631bb8566790161baa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.3.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 30.2 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.3.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8c9c18e96009cb735b4bc70ae62d10e93a79c7734f052b43b08155b9f2156aaf
MD5 f2c756f89fe67eae55e31c3b80604189
BLAKE2b-256 1713de57e9db3596cf0ddf13412fca74f317f7c31d5d00c3bb3c5e2660d8170c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e4653985b0e9c7d7304cd9abc1a621d9d1565b140958a4eae3b919f36e0b40cb
MD5 4ed9ad2343befd5801acf0c01188e0cf
BLAKE2b-256 025a4a8c5f184ce93c5af4bb944af8d8248fec0a5f09bbb7a053125fb8eefc61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c917a74b6d2ea1ed5b0dae8c323045850b6edcc53cf3b8d3595e5b6962be41cf
MD5 274f3d2ad4467ebb2e72fa92c7a9e654
BLAKE2b-256 6d44fa431dd6b022d01c8583d4e23261d076a5330589332e82c355b557423e06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.3.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4d32c44bd71b3beb7053322bd0e3efe75898b63dfecf5c3b43d6d36e90b26d66
MD5 d1fd615a3597cbe1b121fd418d9e2787
BLAKE2b-256 7c3660ef7540dfc7c2ec5430116b455e8399e03dd86a5aab58bb40fa475f1ef9

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