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

Uploaded CPython 3.12 Windows x86-64

mitsuba-3.5.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (27.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

mitsuba-3.5.1-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.1-cp311-cp311-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.5.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.5.1-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.1-cp310-cp310-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.5.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.5.1-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.1-cp39-cp39-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.5.1-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.1-cp39-cp39-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.5.1-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.1-cp38-cp38-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.5.1-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.1-cp38-cp38-macosx_11_0_arm64.whl (26.7 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.5.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.5.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 82996505e45153a25905e200a6e8a0b51139fa18653167787839be81394c03e8
MD5 6a7783e171b5f2883d360ab4279fce4e
BLAKE2b-256 89914264e050ff73b52445a004f4e66d4bb6363b411f9be1840014c3b2fe0198

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fc3517ee27f7790f64740f481480786be17b952d340f5b730d91557ba3c36e20
MD5 895d599d758b2c0e72e8efbdf104cbb3
BLAKE2b-256 fb1a96c780a2cdf201b840123df1a8a6da98bd732c3686b5e8024040e980e988

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34b29e53ba049783129c2cb4bf6490352b8b8aba0308a92dabdea94b3b8a8d53
MD5 3aab8c0437176fad946d47fd76bf8d36
BLAKE2b-256 0267c54ca15ebba0a7206298679c51f504e989b62878e9ff1930ee251cbb304a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6446000cbd27c277d31e4927deb840f2697850e5beb158f03515f7ced785070b
MD5 b868764a97f4b113c6429d24cf517a92
BLAKE2b-256 9a73f4f713360afe7d2c8b729c010c16f9bdb24d39dfcd8bd84164618fd23e54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9a17e180aac354a8ef0e4f6740330fa4fadb0062781d6f81bb92295872ef6d2b
MD5 d2f9b89579efefaaca67bf6602692b64
BLAKE2b-256 f9a16802e6e3b26f3d9482aab43145f3744182835f935453986592601f958ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 712ebffa07b4b424c3f5dc269bd60e9c8490ce352703f514cf3919852c648128
MD5 b490476459d8ad2271fc429097dce331
BLAKE2b-256 a4f28a171516176d67340698dadaf17cf660920dc44481f673855a7633da6f11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6cd76882d63fb49636aa59f59e25daff6b7e9c1ab7b2dd07f7d1e412db5d9a6
MD5 efa7e79390d9062005398a112afe34dc
BLAKE2b-256 4e15f64bc0bab253ee3cf48998c3c12dfe7d000edbae22e2bfa9906be0c96924

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 08ad7144e75cc7b71dc79bddab3d92d080b2068933230511fe74932088841948
MD5 8ffb21d8878e151a51db08edd06e1ea8
BLAKE2b-256 ac13f17e0029f822f10dcb5039cbdc42beab5af8e30c5d4bf50ea9d84d66e054

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6041ba4b15afb9511dcf8a8b236e2de2369bc94c2b41239e0f0e548e95e12686
MD5 3cd0beb4f63755e2c601a2bff41bab99
BLAKE2b-256 4b0488a165c3fe0742306bd05414c1635a6efb22113a5b187c904336ddd6c9e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9c58f3bc4ccf74e7cb550fdcbd5560ff9d0f80eaee4f807e4a63ac64d19471e3
MD5 4e3637bbba1a1193727a22db6f2e0643
BLAKE2b-256 d2a22491d97894a4111d50e29749d71ab15b43930a6077fadfd1c9092982a66e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb43a15007607df2fa827311fba03e0a4cf9a9c506623b3376fe2eff4f51011e
MD5 6684491e85e08853d58e2d91acc29900
BLAKE2b-256 49eaf6318978293f2ffd2e46d862b60f6e7b87d5fa228d700c3508f6f777930e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7a651b459b428d2f590d7e2c83070ca37d367735b97ab05f71bd6a9a4afe61a1
MD5 1217fb4e07a0b803d9e06169d15a52bb
BLAKE2b-256 82092093dfad7b4198704347c0e88355c64694d03deb36826eb2f4594500d1d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.1-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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8d40d555e37d401f0fafe50b6d4aaa502a45c24f01a3eedbf50fba70291f528b
MD5 4e351496b9d0e8ebfe42f690c674e27b
BLAKE2b-256 46dd6d59d89818db09e360513974a6d5be280406096444fefdb78680d21d9089

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1add32983ee456d2efb1f65127e1eb5cfbceb17d0ba7af85de6eba0cf926c986
MD5 07f5a9a9448cbae47a3522c73ed75d78
BLAKE2b-256 18ee8ec808a971a568131b79c50ba6f15acee71efe36e5cd9800630adb14cf7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08abbaeeb3dd6a51aadeeddfeda5e38806885456dc20bdf3228015eb5aef53e5
MD5 5d34523749c26de9a6f533ec260369d2
BLAKE2b-256 fff62e966238968d13409428609cc1937d719bcb4b78b57963dd41817db808ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5a7abed208fb8ac32c991cc8b3ee28b7d2121228b8d3ce42901fb24f9447e068
MD5 c84896e61d147a038c0fed3263452a40
BLAKE2b-256 1bb367be58b8fe26cf200ee579f179817ea0f7053c208672ad38b5780eacad8c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.1-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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f191e121d4e985238548d074ccbdc2a8b3cf0eb31ed7ea807d56f3f2344e8aaf
MD5 b7f26aad4f276f44c7178f990c43182b
BLAKE2b-256 07730979fad1db1360ad661ab19d946b0f52483beb46589eabcd56d0e08a3bbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a389a27aebe3b80e9c5f9aba7132515e14b71f177dd6b6b902593b9a79b1a7a8
MD5 8871416acfa7f0aee7d58e5a8dbfa0c7
BLAKE2b-256 1805c43389f77c51a897d151430893a2cf0f8ea2344d600ded9c8a67d18c8932

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f86e340563d68dc518b917748da9c4919ec3546ac251615bddb9b9f05f3f4eb8
MD5 2ffce81803a29fd074f548ef63457bfe
BLAKE2b-256 aeb2c5a4a07908bbae1b6f6a604db956e6c18e525a86aa12508890b5a1e6c66d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 947172bba7403348ff4a698246be9ef54eda6abab02151dbd845b6870445f161
MD5 b9ef08e25b4c6bc4d2bc8d42da07ac14
BLAKE2b-256 cec04fc816554151708f174e3c4380e0e46ecddfdd8e57fbe5eacda61db02af3

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