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 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.

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.

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.0.0-cp310-cp310-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.0-cp310-cp310-macosx_11_0_arm64.whl (24.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.0.0-cp310-cp310-macosx_10_14_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.0.0-cp39-cp39-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.0-cp39-cp39-macosx_11_0_arm64.whl (24.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.0.0-cp39-cp39-macosx_10_14_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.0.0-cp38-cp38-win_amd64.whl (27.0 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.0-cp38-cp38-macosx_11_0_arm64.whl (24.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.0.0-cp38-cp38-macosx_10_14_x86_64.whl (26.4 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 35857b8c599ee870fb6e55e7be498a41be780c0816c6afb3e4618ab88000b9ba
MD5 aadaa881e236f65ec40313f08d6430d5
BLAKE2b-256 5631d0298ffb78a6edc54a1a28d282594ba6f9461a76bea9f81e72daa44b8586

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 12d23ce9c58796b2b24ff57391a2e2940157a787134114f8027e721f649c81e4
MD5 80e477698a40a3584cf757cbf890eb61
BLAKE2b-256 0f1f4ec13cba84987a533d87e9ecfd8bbf745b8fdcce257fc5465ab4c5460bcd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 24.2 MB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 475e4d20a7927297a0c5b12758996ffe8ec03781b9a93fc249a2401a77fb6fdb
MD5 18670ebe0d264fbccea94946ea7764be
BLAKE2b-256 c4d1d61af88667f1f95519270b3ea52b17a77a482d6328ce581d4bac14e89d75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp310-cp310-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 26.4 MB
  • Tags: CPython 3.10, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 68ca45ef3a0cce322daa166785e905410abb678b7e9ee40ebcb14fbdb981855f
MD5 5a07a6036dbc3e4d94a70a85cb07c697
BLAKE2b-256 0bc7e7337a09df84ca881438daffd46bb090303795325c50c019242605bfe507

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cc2164506b7a9e9ef992289004c81f5e8e4024c944675bead3ca836e335c0031
MD5 6152ec682e7c3f912f86ac1be249a013
BLAKE2b-256 ae397a15a87bb9125afb1cdcc708c2f466860f769da90551cc2c3872d0a1006f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fe01baf941a103dea9ad152591756847e865be1cb567423f160748a78425fc0b
MD5 d73e97cd6f58f2a7a948f82e20a68207
BLAKE2b-256 2d031c4f319a05b51644136359cb2e1befca170e9949f2bbca02325d186cb363

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 24.2 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f4eb5b9b6eb676b81bb4af30619afabaafbc9754be38b774ac84b87c67e5813
MD5 6cd2c57fda1ebd894f319ac8617c339c
BLAKE2b-256 ac71ee671f3d11e446a3c69b219c5385d86dcdaec65225e1c7c41fdb352e22f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 26.4 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 06f8e5d2e7de941681b5e679ab74348be0a72f6b9e53da7f453c9c554ada8f13
MD5 a95b052ba6be35db7ead126f177ad84e
BLAKE2b-256 2c240d83854ec6d008640782231ef6678594b24663618f149a8f5d5340bbd128

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 27.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6ad36b8a4de69073968a959fe8bbb7c1c233664edd976ee7a63a6dcfd2d4e0bf
MD5 4eec2111c98cbdfb8f2cb8296461792a
BLAKE2b-256 9d4e3e30cfea73dc65142cf98a722589bd5412471441c36503ce2f01f1ee0bf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ff47cf3addfbc0d565d59cfd45671a979c9060babf71c6056663e1d2e330558e
MD5 e7b140fcd2de9b4b84fe958c95b86379
BLAKE2b-256 fc4590f1221631640d58927d955328e109ad5575f1ba90e2eac230354c799286

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 24.2 MB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f328cec77ccd8df5d0b08f0d7b617a546d273cfa95a98eeb6ded9a2bfdc77dea
MD5 45e79589fa3aaf3e18ec60caccfcdb4d
BLAKE2b-256 0c9b25cb09001aecfef27de47d1131a4d25b2cdc0f4acf24f034429073bb24f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 26.4 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.13

File hashes

Hashes for mitsuba-3.0.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4aa0ff2c9f08da3d84371d5542ced5fbf385c4182114bd994b8fbcbde6636b53
MD5 4e9b49969bf9747fe0245ab240e5358f
BLAKE2b-256 2b2b56df695bb0b5358e8a9539ab5e6a2b4e51aa0f388fbe1cccceb37cd369d9

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