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.5.2-cp312-cp312-win_amd64.whl (31.9 MB view details)

Uploaded CPython 3.12 Windows x86-64

mitsuba-3.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.2-cp312-cp312-macosx_11_0_arm64.whl (27.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

mitsuba-3.5.2-cp312-cp312-macosx_10_14_x86_64.whl (32.5 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

mitsuba-3.5.2-cp311-cp311-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.2-cp311-cp311-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.5.2-cp311-cp311-macosx_10_14_x86_64.whl (32.0 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.5.2-cp310-cp310-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.2-cp310-cp310-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.5.2-cp310-cp310-macosx_10_14_x86_64.whl (32.0 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.5.2-cp39-cp39-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.5.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.2-cp39-cp39-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.5.2-cp39-cp39-macosx_10_14_x86_64.whl (32.0 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.5.2-cp38-cp38-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.5.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.2-cp38-cp38-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.5.2-cp38-cp38-macosx_10_14_x86_64.whl (32.0 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

Details for the file mitsuba-3.5.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.5.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 31.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mitsuba-3.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 66139b4e93682f893dc088fb20be0fbc0dd00f49c08419c7a85c687289228010
MD5 fe947bdd360dd1b8680bd16325b94f2a
BLAKE2b-256 c822f2573c074d74fc8afa8e2eb0d24a900cc2d88f61ee515ab7506a1c2c726c

See more details on using hashes here.

File details

Details for the file mitsuba-3.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0167e95955713bdfbe1107937f9bf36296c0279559c8ec754cc89e3ee2e8ebf8
MD5 c0ec3bcf9808bf124545f831372eb8f7
BLAKE2b-256 eaab6a55a45133ad687f906afe812a1e81e08136b4facb5299194c15cf66c74e

See more details on using hashes here.

File details

Details for the file mitsuba-3.5.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9be30e5fa8165ceaef2a56f9fe55190f0e0a26e70937382f9f78693da4753fa5
MD5 1dda25d14922bd6b31159d4dd8b327de
BLAKE2b-256 f2c838c4b613d03775e5189b6a6588a4a8fb56b392473cbe6017fdb7b67943e7

See more details on using hashes here.

File details

Details for the file mitsuba-3.5.2-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ba9678787eab98f4f655ae1939dcf266c4231769d84f25925357b2af8e529f86
MD5 22b0e6ffc1bae8b0782e4b9614c92949
BLAKE2b-256 6ed39e90f380cf629b6c48190c604da37d99f5723b9f6e12d3a3008fa40ae852

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 31.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mitsuba-3.5.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c76dda5f136da8880329064d0c2e693c36ac85c2c14d5b1a019bf975d7ecf6f
MD5 711d04db13d5cdceef3fba0a20a9786d
BLAKE2b-256 dc374c71a6d4fe2cc01ed664237300977bd9a0d47f36cd254fcacdb7730ada52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 73595a2bd5bf5b3738b1645de013d6f20286ee8f70a08eb1f6fc8179dc68f665
MD5 65362e7db18f54daa68344db4752b42b
BLAKE2b-256 14ea35df689d9dd7c2bf7d2f5f7d4b04cda18a0087d55b7e3fd8ecc9986a34d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 266db8adef069dd0a53b97b23aa99de5090f98681d3b140f43b620ed4a0a7f65
MD5 6c14e246a08b9f84afbdf29ea34b1b63
BLAKE2b-256 49f15fee9741771d100fd3b9ec0e415e0f3085154b97b6316898a6d0bebec2ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0ba522ac72f39320eedde11d14d4d3e52b599eaeef9d96d327b2fbf560c80a5f
MD5 f9f1cac3e1d6152a26b31084774ea0bc
BLAKE2b-256 051aae32c32970b73cd8447c931241a9d507cf48714a2665fdeca70bb8c10ebf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 31.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mitsuba-3.5.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cbbe25d8ba4bb0f92b5129bdceef76b16760ba1cc87b0a0bd34fa9519a85ce67
MD5 f6da9c43a6695ae08dff93e24582ae1e
BLAKE2b-256 fef16a5d240e9bc8d006121ca55aa7844760544047abf199b91c8bb6e7708ba5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0fef3926b028442fb5b82f508486d4ba36268cfbb6c73047d92d0c71569dd069
MD5 9e8ab42681e747558b6f391cccaa6c30
BLAKE2b-256 e00d18813b64c6ab8ef552214914911065d3cef70f92d5decc35be8447848e07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c694ec6f2e8fe50a5afd2382ca223605f7d4b60f3cb33e84491f80b0c22c9931
MD5 04fd428f93814bec339b51d22fd8cacb
BLAKE2b-256 3db791700e8d288430af0a57e151db24b9d258760653f59a0e53a042d60946b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ac499a96b22fea72aa34728d65a8c73e4e44b22dae32476089a9b1c6bdf82760
MD5 5d09e82fec34410fa01732c34c145a26
BLAKE2b-256 4670b999381a638ad163e15e9aac6963c018a1d0a622c86bd2b8ff153f580140

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 31.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mitsuba-3.5.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9d869b8994ebab8daeced2ea39821da706b3fd2f27257f10354e66a05b4311de
MD5 d702945e60732e513914cc5271ec50aa
BLAKE2b-256 77727c40bb2e8f585c41d1ac63f872d35f972a499a1328117cb6ed5e6485d1e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2cf56ca53f2e9da137ae0b1babb9fb950bd37eb08c0eb268b9ef1a5f80258a45
MD5 ee25fbb8d6d38f0a2418bd4a5411fc2e
BLAKE2b-256 7eb9c4120c1babb75d8fffa7926fe8c9aad454f0227f1bc53d6595aaf857c5b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbcd9d2195a9dfdba39fadedc5ed62edb97c184f4e167895e7d01b1b3f87779f
MD5 61c3f7ecb81fa18a574c4b3817c979f1
BLAKE2b-256 ad9f97a914709267c4d6d6cd5b4d9a14cbc954903ec45fdb9ea481cc364539d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 35e5dd874a4fa810e2482d3686188daf795a93982e098b5e30441cb50695e79e
MD5 0a2e548772b80bb30f78ef32a70a2b18
BLAKE2b-256 f8a496b0cf359bb78d16b9d2345fa5d14ee933ccecd634ddb7b277985e2421a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 31.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mitsuba-3.5.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 730f288b835b4da7a277552771166bdb43f6287decbdec234196714424ff7a88
MD5 e03c98255a14115a8934ac5a56dc815b
BLAKE2b-256 824df02c62ce129079aeb47317d09fb4240a8c297ef7091b837c281dbb57a8bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 31414ba784c1ca3c19f04f6427fdcb201b1b95d6960456e256766c97fa8fbd5e
MD5 c4068dc73b3cab43c95e918591ec93f7
BLAKE2b-256 9ea1d09ef11c2c1c2dd343a48e628f7057c9fcfb11e12a89f151fc828378c0d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 750614c7a140fffd9dcb10abcf1838b6a840ec7342db1f8e2d5ca58df905cb4d
MD5 ab1d9a57f21e0eee4092798adbf33c00
BLAKE2b-256 1c4441af7e95c93214f6fc8c7f8fd961ce2498aa816e22ccf706efef830b1375

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1d3de6dd8e601e5061357385c402a772b1fbc9611179d745954eb0e1a4d5c95e
MD5 cce531fa92a8688821506be789de5c0e
BLAKE2b-256 33431e785b90a5c35d1b3ed2aa07341f704e38976110d0fa7cbfb04a4a388b7e

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