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{jakob2022mitsuba3,
    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.0.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.0.2-cp310-cp310-win_amd64.whl (27.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.2-cp310-cp310-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.0.2-cp310-cp310-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.0.2-cp39-cp39-win_amd64.whl (27.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.0.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.2-cp39-cp39-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.0.2-cp39-cp39-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.0.2-cp38-cp38-win_amd64.whl (27.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.0.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.0.2-cp38-cp38-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.0.2-cp38-cp38-macosx_10_14_x86_64.whl (26.5 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.0.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for mitsuba-3.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f6ef56b4c44144facc603ec08658770ff48a2bc5a6cd878795eac2ce6f2a6639
MD5 e8804be85625e398aba14333cc362f88
BLAKE2b-256 f281b938bf149dc3ea85423244258439cf326515d596e60890eb4d658bf87022

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 da2b368a1dc867d813f6f7deeadfd926a32f764ad7e79456b335a40b273853f8
MD5 034f80d3b19e40f35ba3289304f59c90
BLAKE2b-256 a3fb35ccfce2d31f53226cfd9dabdee730ca128b9fcdd136e6f4ba181a51c8c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 050a9e66e02f59c51263b7ca2ca984985f5ea9d29bf6f6e9956a2ef374553b45
MD5 813d8b36ce12a37afbd75f7ee1579744
BLAKE2b-256 507d7cf77aaac01709547cd8b5d6354832d350b8943c4303b93c4a805ce86af8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e2382d1c88cf5c8d21ad6bada059edc2756b832b9cc9f484f2df37d5460a5bcc
MD5 b2bfc9dcb53252fdbfc9e683862aaae9
BLAKE2b-256 5c418bc80df1e745bb85f38e413078b2b6a0bc0948329fbc80ce104696cedf20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for mitsuba-3.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7ac8e60b9563137200ca295d31c1adfcd178a97da887ec4f4be75af7d795c715
MD5 2845fa068a79b3a262b480a1579f626d
BLAKE2b-256 49afe3183eeb63b7d2fab47d5b88dc374385aed8c6d6a5dcb2f3dfbdd655044d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f6b321f2409a3573fc32b9bac11fd850e66420e714f2e7b2efdaccfa5fa62269
MD5 6ca4865005be6c211b8636f42265e212
BLAKE2b-256 21d5b243c52cd53836cab404097343788812dc016b998942c41628d408713582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1489cfac47947b80d32d4012c3f7c6215e15af4e65dcc68ba0aa4ff4b85a492d
MD5 3dbd25921c149cb856aa8bfa17fb31c9
BLAKE2b-256 ec9c8dc07a8990b12c7d7bc5bc89b9b08e5dae48d9f1a386a7f38a6b1c369971

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 15ac0e285f68bc2215eb987fa16fa947061122c490cbfbc8d948a05c4fedc73b
MD5 d9793a3f1fb3041a5f5fb580c3e4d7a3
BLAKE2b-256 cb0fc3e4e01844aaea8e5b337a6bed022ca41c5472de68f8552a8ee8ee935b92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.0.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 27.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for mitsuba-3.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 21b0e8401a78013a6da6b9cc35607f9a4a25f0adef3dd2935f9c9903a9ba8395
MD5 95bd417c3c513659d9c02813fb159acf
BLAKE2b-256 02a6a47dae6d92aa92a7ac4b719db5aa4ed1bacca048c1ea395e258fa93a86a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6388bd73067ea1bf7ce481d2f5821dd5be357ec64d6f2008f9ce5d575442645f
MD5 7361cc15fbd2e1432758703f8164fd65
BLAKE2b-256 8d5f7f66e3e6ce4a8e3e1a29842fe1257b718ade101cfcca2b2ee743911c9f2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06095a718e864ee8f0304086dea166e3132bebb7b474d45cb454e40d7df59011
MD5 b714e70823e46c18c711aa06cc69d96d
BLAKE2b-256 004042458a171c77a89ef407f2234c32b218374b4b2fae2380012e6226e48f43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 cad86359be67fd1ed7cecd870b3031c6491cb0977c57e9f9a0a01eee09fcdccc
MD5 84c0fbed966a4b4401ed2ba657dbfaca
BLAKE2b-256 db360d5004cf17de0b631c3fa8f3389823209af8470a5e0f95632c2733d64c4d

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