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

If you're not sure about the file name format, learn more about wheel file names.

eradiate_mitsuba-0.3.2-cp312-cp312-win_amd64.whl (30.5 MB view details)

Uploaded CPython 3.12Windows x86-64

eradiate_mitsuba-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (33.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

eradiate_mitsuba-0.3.2-cp312-cp312-macosx_10_14_x86_64.whl (35.1 MB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

eradiate_mitsuba-0.3.2-cp311-cp311-win_amd64.whl (30.4 MB view details)

Uploaded CPython 3.11Windows x86-64

eradiate_mitsuba-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (32.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

eradiate_mitsuba-0.3.2-cp311-cp311-macosx_10_14_x86_64.whl (34.2 MB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

eradiate_mitsuba-0.3.2-cp310-cp310-win_amd64.whl (30.4 MB view details)

Uploaded CPython 3.10Windows x86-64

eradiate_mitsuba-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (32.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

eradiate_mitsuba-0.3.2-cp310-cp310-macosx_10_14_x86_64.whl (34.2 MB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

eradiate_mitsuba-0.3.2-cp39-cp39-win_amd64.whl (30.4 MB view details)

Uploaded CPython 3.9Windows x86-64

eradiate_mitsuba-0.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.2-cp39-cp39-macosx_11_0_arm64.whl (32.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

eradiate_mitsuba-0.3.2-cp39-cp39-macosx_10_14_x86_64.whl (34.2 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

eradiate_mitsuba-0.3.2-cp38-cp38-win_amd64.whl (30.4 MB view details)

Uploaded CPython 3.8Windows x86-64

eradiate_mitsuba-0.3.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (34.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

eradiate_mitsuba-0.3.2-cp38-cp38-macosx_11_0_arm64.whl (32.4 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

eradiate_mitsuba-0.3.2-cp38-cp38-macosx_10_14_x86_64.whl (34.2 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 805d60f82ac92f3a1e41d203e2ef5e25b5df3f8c25df748c89c1b7eb0556f334
MD5 f79ea433f20498ac10f108771324d60e
BLAKE2b-256 7c5d7219c29d4c1c1104c3fe770e04460ec4d983245b24edc4a106a103d021dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e9b859e158f99e4cb6f2da91a0548e0bb2952deedef1c795096cfb5c7cf077aa
MD5 9a8dd626a9b77fc6f89dc3cd8d500e23
BLAKE2b-256 b1892bcad6335b36646db0838bdf63c5864905c41f5d48cbd1f167138c5dc3c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da7cb6461567e0b0a7e3a1fb4f2dee656afb7df7c377272b06d91f3a5ccdc4ed
MD5 b1c4ac19f8e80124c245e463ecb55dad
BLAKE2b-256 39bcdb08ddee41f46119c9f43ea74b0f125bc652fa34ecf17c994e3708f2c88e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5cbaa52684d0399333d14d9b4e7b0ad9f67ef96ec7645322e5d702110141e019
MD5 6d842e29290f337a96b0b57f8ed7c0ac
BLAKE2b-256 25b65fa7f4ccbfbf4f9bc1f70ac130875b1d4c03a57527bffe56d32d44c06254

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6b7c564d6cc5ce38113f3d31aa4c0fbf860978700a3a8060d2ac83ba0623c0ab
MD5 c54c11375266f492a59baaa5bc2f8731
BLAKE2b-256 e1463371e97f0a07d71714724965e7b2b46fd40da63335338ef6eeb8de4fdb8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d70e3180ed2ac640d5c933923b1d600c9d8dfcc21bfe57e32c11f02aad633c8c
MD5 9ed04c1c9dbac374312a94a3b2072e9e
BLAKE2b-256 9042ae6ef2feb61d33abcad5281ce39ea2af29fdfe8c4de3eaefb177cc506f46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d1f3c123027fa32fd42fba5963028f2246baba6874bc04f8127452f97667bc7
MD5 46ae32e272eded7f9a13ae9a577fda19
BLAKE2b-256 3d93b9709159b5ad2b7e9aa81d167fd07398d3d1b1d4a6589443ad9fddb51931

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b25bd6890e091194ce0059a5e60fa9833e1f6f008fc775d22ea922d9306ec1d6
MD5 425d56faf34c1ca4827279191378156e
BLAKE2b-256 769fcf1adf984e617673eb610f7ad16c8245cbc7d93bb69500723c0c4d9a86c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 02f1dad428087e647b13c11ffb4503f45b868121cddaec5cab007af3f262c317
MD5 b222ec75d0a5855935df766d9d484753
BLAKE2b-256 ef92490029019bf3d604cce6ce74cdd980b44747069975f78c98e961c5b7f36a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 45f51e5e6325cce00f0d050a1e5fa9336c0923c29c614958dd8d157561501ea9
MD5 6f7f771d25a82d0150823ecbed1bf991
BLAKE2b-256 c2f9fdff37c328d4987df4e800d12fa26eeaa9c6f66fdbe9cc3cdd473112ed4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 280552d36cf16d9f806b545adc2c22972294ab7cbf18ec724e120799c0a70994
MD5 1b9188bd5a85b5ec32a258f5c9a55b2b
BLAKE2b-256 726ae0e62a03f6f85d975bbca06e05b32a8dff7579781ef974d966665297261d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 bcf41bfb7abbc6f4f150513b1ea7f0afa5875ab91447fd7e184f8888e97ed945
MD5 58cb22701012fcd405c66a554a21ef38
BLAKE2b-256 b3d21dee1ce98c2c2614a4b50eb22cb1005cb98e249baf753392bcf721e3befe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d02233fbe7f86c09443ee7fad34b52900d42cd0eae084ad2bfa067aec5e7e843
MD5 05fa6a6b7ff6f524852e72a8e13dfda6
BLAKE2b-256 1a8444f6d833e3001ab9262d57f0592362d6d7852a61b4e027c6a3d3c0105fe3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 37b24cda916633f501dccfff5a104243aa143ddb53d61d5efbfbcf1c8ec8723d
MD5 9d22e049f938c44276a8cc7e3d629169
BLAKE2b-256 b8cb27ab45dd1525ed92661e057567ca394712fbbb23506ea7643cba33190577

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 200de6b6c59eaa33fa452c5c9c9ec8f3f9a513b03cb7955fab0ab8d24714844d
MD5 d39320990d9df3911b1b96438a727863
BLAKE2b-256 8f09bf256d26a81bf436164c5c9aa84f3144906f7afac7b8a885beae15351a92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 895009482fdca6506b25ec29787187c9eb19fba971c769c50beffb6397e09012
MD5 4f94dc57e5c993be396db4b1d991e5f9
BLAKE2b-256 51cd3421ddf4e245871f587b760947382deee4501d8ccb5dc3810f5201829b04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 daf4e059bc9cd0d9d959c1633f15abb586d94c9bedf7483b7bad2e06f23e14fb
MD5 b000479435cc711d2903f46fa307acb7
BLAKE2b-256 0cee7478f5da40a3fab57d2e28a5ff806efdf2e0c6da645ec47f5c95def36333

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bd0ec00cc8858ca4945bdf8b2af23b4f422697b4a329a6319bec3a147a1ead48
MD5 e5997522b5d19ed856edfa4e49ee29e0
BLAKE2b-256 00ab4908c498d86659d3813ee4015c127ee44117fadb71bd98921f1219a852f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00b83ae7d66e96027ee68b2543d4bed85cf44d227d9bd046602195c8afc1ddca
MD5 67b537f00ef35f36492c950156adc2a0
BLAKE2b-256 279adf8f7b3a065897c8b06046766af98a99a0de6f138760b82a2c6921eb86d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eradiate_mitsuba-0.3.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 590b52d0e599594756cf2b9b0f7fe79c9dfaa0139f35977de58ad97a83bcd694
MD5 4f2a231c4861e25408735b41967bcde9
BLAKE2b-256 d7b0af1bdbb74713206c07922153d52b4229b93ec0e4c292d1699f53b08e7746

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page