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

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.0-cp311-cp311-macosx_11_0_arm64.whl (25.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.4.0-cp311-cp311-macosx_10_14_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.4.0-cp310-cp310-win_amd64.whl (31.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.0-cp310-cp310-macosx_11_0_arm64.whl (25.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.4.0-cp310-cp310-macosx_10_14_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.4.0-cp39-cp39-win_amd64.whl (31.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.0-cp39-cp39-macosx_11_0_arm64.whl (25.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.4.0-cp39-cp39-macosx_10_14_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.4.0-cp38-cp38-win_amd64.whl (31.1 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.0-cp38-cp38-macosx_11_0_arm64.whl (25.9 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.4.0-cp38-cp38-macosx_10_14_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42368e9d744333e2ae13e48959d5f2474c697d4b67496fb791a7400fab0f30e3
MD5 a14eee4778637566e65ff658b50b81b3
BLAKE2b-256 784863f428878484115e96a5910d081d184b4c5c0aa32407fa4bf0b651c2fc1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3806447da939244080ab054c42d454c6afb800bef1240fe3969eb48967db5ae2
MD5 14167fd413e3171dab5b11129df062fd
BLAKE2b-256 7ee4eb20c092fb52cf440d7d97ec3eecf00851762350bcfede7c12f6bb73356b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5a866a47ddd83a194e5ec43e90097fee36dfa83f193494e842c3f8759de9089
MD5 4b6cab6ebecbb651561b9b23ded7441a
BLAKE2b-256 7f54d52af660d032608c53f025daed670eaa72e2d1b671a3484ea8e5195a99ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 eb5ec34fff7b56106c25d1d8a287e7cda6f264a1aa90fbca390ef5af9c86d9c5
MD5 e295caf3b4177e1970087ee7111221df
BLAKE2b-256 4de383254e93c9a71f62e567958fa7dbe1d496c5b29a3716e5134fc7a75eb1d7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 988ce236ae3c8e0d1f47d50f947ebac7ced26f5facc2d541557aa100c5c7b072
MD5 11a40886553927a1995f703038127301
BLAKE2b-256 bd5b0dbbc26955eaf9fef3d57c4bef14dc73b8bc79a30c9f247b24d7ca8ee5ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 20b10990a7d16688d4848be24005e6776e050d9270dd5b435e8a7dd6f6050166
MD5 738703e1fd05615e4d2decd39f9230bb
BLAKE2b-256 ddebc6387990eba9b3fad1f7f41d534f9d5416d019d68b2ea82018e3c862c3fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70343e550dd86163f3e89e31d630ddcffea06b3f9a89807e96ca0ab6c99c822d
MD5 fdfb47ce9dffa62175614003f8612ed4
BLAKE2b-256 8b2b6d95bade7106decb5c216d61281a671208ad43d4ae07d9d9666820bce41e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c411817376a6f02f0664af64f89797d7dbb11e912d7121b0746a0ac2d60ddd80
MD5 5ac38143c662066a672cda603a196b71
BLAKE2b-256 941326b720075932a6d0c88311e064712ae9efd17c669e9ed986a8c64ab150a1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e80fd4c5560ea43efbaf44d8e1461cb5b22db333d7c9dd70b70016854b08c2e5
MD5 a6fd04bd6372c4e1b5c0050fbfbb829a
BLAKE2b-256 8c1a53e3cc09f89b67c661d13173b7c7f17ecf4268e4d1103d6ad6e17ef52ced

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a727c4f66c5cd54c1ad6389705f9624693cd4f6a8fe2d630a3924c0e4068bdf5
MD5 54e61bee570b5c89c46adb3c546caf4b
BLAKE2b-256 d16451c483f4c249014f8e602c97fdd499ea9225092b142d9cb332e0a4254468

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc57b996b58e31663b54668bca9360ab7d25df698f33767eab3ff3348c82a1fc
MD5 0d7626c20858cf2b59c76bc5829b34c8
BLAKE2b-256 e61777bf241c39b9415a3bb7ab0b9b611838cd4ac379eadb5dea21c6240343d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 be43504421de077106e120fb66753b81e3a626f6190de0b0f118fb9330ae30ad
MD5 97f3bae5d7b17cfea7b9c6067721bfc3
BLAKE2b-256 1fa99f50158a9050b41cc6b2a3490b255ec9380b09ccd3894bbd25528e4c611e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6200c63c50e6acd580703ca1d3efb5b06f4c620a3c76e4f8c458c8fd80b5ddca
MD5 8984d1928e5cbaf2b0d3045c34a3247a
BLAKE2b-256 5b072fbbe9a7a268776b12e148012aa538a5388e3eef73881deac811f779d4a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e49f672c4dc17d4917601399e9a41da4200fe6c0022160f547622ce9330f2f01
MD5 9c4ef23728dfef895bbfc46bbd9e7af0
BLAKE2b-256 00ca515a1f0e2c6675b47a2f430d539f3a88aefeb3c8e38ca4658a15081ec30e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 737015ace1b7526dab9c9f3ec69392f0c4c598a6425dd8f56f0d879bf4ad2c56
MD5 ca1b9cf7a3d756eb5a4dfe6f20b95346
BLAKE2b-256 4ee0bcf9f573b6da7a93226bb91ea598a89d67f23ccecca53ee4e7f0b0f4b7a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 68cf79755eb4ecd70e5edbd978719a8cc74dc5a85f4047205d30c0c894b23edb
MD5 0924a1fda649a4dcda96eaa982c73c52
BLAKE2b-256 000b9ef0def372c07165c21fa57f3d0247df36f729c65cf9e3cece62372e6927

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