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

eradiate_mitsuba-0.3.1-cp312-cp312-win_amd64.whl (29.9 MB view details)

Uploaded CPython 3.12 Windows x86-64

eradiate_mitsuba-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.1-cp312-cp312-macosx_11_0_arm64.whl (32.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

eradiate_mitsuba-0.3.1-cp312-cp312-macosx_10_14_x86_64.whl (34.4 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

eradiate_mitsuba-0.3.1-cp311-cp311-win_amd64.whl (29.9 MB view details)

Uploaded CPython 3.11 Windows x86-64

eradiate_mitsuba-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.1-cp311-cp311-macosx_11_0_arm64.whl (31.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

eradiate_mitsuba-0.3.1-cp311-cp311-macosx_10_14_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

eradiate_mitsuba-0.3.1-cp310-cp310-win_amd64.whl (29.9 MB view details)

Uploaded CPython 3.10 Windows x86-64

eradiate_mitsuba-0.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.1-cp310-cp310-macosx_11_0_arm64.whl (31.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

eradiate_mitsuba-0.3.1-cp310-cp310-macosx_10_14_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

eradiate_mitsuba-0.3.1-cp39-cp39-win_amd64.whl (29.9 MB view details)

Uploaded CPython 3.9 Windows x86-64

eradiate_mitsuba-0.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.1-cp39-cp39-macosx_11_0_arm64.whl (31.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

eradiate_mitsuba-0.3.1-cp39-cp39-macosx_10_14_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

eradiate_mitsuba-0.3.1-cp38-cp38-win_amd64.whl (29.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

eradiate_mitsuba-0.3.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.1-cp38-cp38-macosx_11_0_arm64.whl (31.5 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

eradiate_mitsuba-0.3.1-cp38-cp38-macosx_10_14_x86_64.whl (33.5 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

Details for the file eradiate_mitsuba-0.3.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d0ff03d6d01ea91aba1f616274c86e22646b6b0fe159d43b86b0375a3094e18f
MD5 8e62d4514844bb9cdec88173c2940b5e
BLAKE2b-256 45e85182d50b697cbbbe9f5a75dd56a4687f4e57cd73e75a51793af9b824a959

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0a4d4302fbd4e795b53aa32d7d24bc15aa17c98bcfc364a6a1d962a1d5aafd31
MD5 234107b9a49da5db4d003b1300b8a96c
BLAKE2b-256 9a6435b58e1cab0c91cd6366291b72b5bffc1d4b356405288ce658157189432a

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83a92f67ea534f2d9fdfb190b196831f52fe98028e3653c6b7a1b7a6216cc8ae
MD5 9342b517bc12ed1d2215a26400d4ec7f
BLAKE2b-256 a8ff2d26a9da4971331aac3182b24a0428d8d0a8f428ca128509ce3df5c93bb4

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 aae4f3b0ea47f6a7725d6cec8b8cdc86ed6156f8dc48695dd5ed24ace80bef28
MD5 a0c78fc0e5cda48152150a0c1b5c13ac
BLAKE2b-256 4fc1983bcc6c2b1d217d13f071c838b36c6d0ef66ed5293b17fbad49e5379d47

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c8f84a20efd5566ca1d07022a2941e740cef02c6aeaae428a7616b42a5c70fae
MD5 a382c26fb7b66fcbf398c79914e85bbe
BLAKE2b-256 bdef77bf8f057757084a266a9943a0cf7ef2c4ca7f352d9bc8a76e3f0686cf0b

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 682d1fa913d55e595e88d69086ceabf095ea2af734fce4bb5fd713478ba21beb
MD5 263e521ae540ac4b16f8be3a54b412a5
BLAKE2b-256 5d2c2638e2977ec99169811ad91785264b53afb2316cff26bed143f798eb028b

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65a64685ae47294dfabff50c37b4921fa475b2f489230163e30b16be670523c1
MD5 aa4db88194e1436fb239ec2d218249ec
BLAKE2b-256 48d9b4381957aad56f0d8e75e25765f910c74c86a14fd2546b0d3a78d7b116ef

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5205e528e03cf6cdcd1dc0ef4b485ab980a38e1f0d477df8e47f72c99dba66c9
MD5 453e94f0740781dbecf901fc349df817
BLAKE2b-256 3bf07fb374634f478dec8c9e7613790cbdf516d2be9595793e3152a756274da5

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f2e20756bd72c4ccd0221962bda6937e0b6dbb53cebd35e94029026616df002c
MD5 800f82379e370546931f582825379818
BLAKE2b-256 a37922ce07e4e74248518d135240a0efa79280887d0b0d0c21bb0ab163783f0e

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 76dfe6375a5ccdac03edf988d94a0d3c8ab309fe9f9a78ccb84159d93de357a7
MD5 5943f13512c500836ee070d62b2da34b
BLAKE2b-256 4f2cd2b52eb3088db21e44ccb6dbf2f565164822a92fda2be5e129d7f2d2c466

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afb7d0438957952cfba71ae678f6d05cdae75f34554558bbf12238671af5e061
MD5 310d417ed3169d31111f83f5431a74dd
BLAKE2b-256 18c2f95aa5383616d75e8426aef802a56077acf8f532c62b92fedac721514c5c

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c16ffc9f1efcc1240fe718f0ae1c00bc34a3882ede1971c508fc2ea4613216fb
MD5 59c970ee916210235196153eba525c10
BLAKE2b-256 e4d7d8f1d6d472ae83838ca107a98697b4aa1cc289abc25a8977a941e10c9cd3

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1179a413320be4ed322f2fa5759d427ecd672c58ad9ee8b229eac58d61caabaf
MD5 aaf5d7e7bd1f84b6d807f383c5ece694
BLAKE2b-256 976c70cc0ff495b4b1062201e70c3640488439b1dfdad28a944ffb86d45d26fe

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2091de6aec6765349cb0b9021592db32c88505ac6d9354504ed64acce4db2b40
MD5 5a05696df5ddd506241e5c91d6acaa17
BLAKE2b-256 855272ab9cf363e8705499ef6cb673fab8e6e0b844403506e638896270f1b638

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a31475d770340df835e39827e6ac222af47201a1022f9a681e81908619d3c68a
MD5 75d4f469f16509365ce110db803840c5
BLAKE2b-256 a0de6bb5c300d854745da096a4ae29c1040f98a15dd060f3405e64624e867b3e

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0c01ebc7379e995dd9e4b3a82b304e16e6271010d688dd59f923df57ce0f84a9
MD5 e7d7e40c2db470ab68e1165987e32031
BLAKE2b-256 6184864db4163f5f82e0f8ccd330d444115cb6290e28f76ac56ee57cec4c58b2

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2e8e18c64715864b8e373d30008f4536f2aa86e65f137adb86be3bea5e246987
MD5 748d2e4c17cd5289dcbe9ea3d0235bf1
BLAKE2b-256 c9548b4f0b79e8ff23e82b75ba5610b65caaa67508c4cbb60a9423868ee8359f

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 996f6e93235adbaf1ab52a080017703af472a70a6ccb14746533d5ea14140d2f
MD5 abc311d6753da4fa93076815e3ae6798
BLAKE2b-256 522c36126206206b81e5203fb8d62fb5756a8a597d34e7e4c5b25ff3c4ba4907

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9432b7c13267f89d3acf6f83ebbd7caa487cae628fc033037c567c80a1bfdbd5
MD5 9155fdf03fe4b5a9dc0b91cc732aaaf6
BLAKE2b-256 6ed19fc831409501320bf5a3ecd9ce76ea126153e71c7ecc8e1c63d7ebc3a3af

See more details on using hashes here.

File details

Details for the file eradiate_mitsuba-0.3.1-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 40a2afa2ef8dbc99eea91cf67ac0756e114bbf9a5b23f293cc71cc5ca2fef62e
MD5 00d0873feb36026267ae21273ea17a45
BLAKE2b-256 2558a607f03cda8ea7f9ece93fa4c905305d59f6fd95324236ff65b6d0428621

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