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

Uploaded CPython 3.12 Windows x86-64

mitsuba-3.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.1-cp312-cp312-macosx_11_0_arm64.whl (26.4 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

mitsuba-3.4.1-cp312-cp312-macosx_10_14_x86_64.whl (31.6 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

mitsuba-3.4.1-cp311-cp311-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.1-cp311-cp311-macosx_11_0_arm64.whl (26.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.4.1-cp311-cp311-macosx_10_14_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.4.1-cp310-cp310-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.1-cp310-cp310-macosx_11_0_arm64.whl (26.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.4.1-cp310-cp310-macosx_10_14_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.4.1-cp39-cp39-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.1-cp39-cp39-macosx_11_0_arm64.whl (26.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.4.1-cp39-cp39-macosx_10_14_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.4.1-cp38-cp38-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (39.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.4.1-cp38-cp38-macosx_11_0_arm64.whl (26.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.4.1-cp38-cp38-macosx_10_14_x86_64.whl (31.1 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.4.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mitsuba-3.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e97f43e89eb3d59c6f2fc63671424869104835bafe1b210d642d2ccc9e2b6bec
MD5 41dd330784772e225eb5389e96a98efb
BLAKE2b-256 1c5bd1ca976d64e2b105eddb9d7afaaeed993cd15337ec8dcd36ffbf1176733f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 58ada5450e2d2709754eca16615d3e51f29dde9468c17684d97d743a9d31ffcb
MD5 83dec4a257857b7ad7f63ad78b6297e5
BLAKE2b-256 5eca44931eb478e006830748f7ffb438fd9a685f379bef746ecd447d6ecfe07d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b59b447618232f982037ec157fbc41bf779e30cbf99706d564a12ba76ed2f932
MD5 f5c3a570bf6f4842413ee21939336b4e
BLAKE2b-256 a677537c5a5b846e09d62161338dc72f586be832e7b9e3e4c9dafa10da73bc67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3e1df9a5557e58aed4534bbf0c2c1a28f79a4b1e2a63498f82d81509dd499ea5
MD5 47b4ffaf49a0af45d88950635301222f
BLAKE2b-256 b2b36e662d3d94374e129e2f697f4e6e5669deb0e9a938a86ada2af3d7adae08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.4.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mitsuba-3.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4836b0a5e2e8b165e3b479c750111287097906c263ff808c53290cdfb79f50ca
MD5 8562cf2fe8771764497e58c7da300789
BLAKE2b-256 ff3892ef6aded924dbe6858d768d22142a815a8fcd7fed14d7692a4b47e41417

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1a4c7919b06252ab4096b07402a6ee5014bfda76f27e97b65133b53fa51f57c5
MD5 889af2643aa9e70ba45db5b46a893c4e
BLAKE2b-256 47000380de242a4b97c13c6fe705af033e8f2b9c69f1672526d8ed296684a2b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69f903c7da3cee53be83118dd2efac8d47f2dafb1389cf814ca47e84259fe4e6
MD5 173f27d1273f77695a937289cc1f35e6
BLAKE2b-256 aeb4750413b80e87469954ff0971dff8682e76a0cb170691ec116bb022205e58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5862f98dcbef663dba6ff82abe735e1400c7765f6eef24502aab2390531678fc
MD5 9bc11988542fba22a7d3f6ba2d708245
BLAKE2b-256 7635c894bd209d8fd4667e08cabf24851fdcfe3c3bc5bd77eeecf442ae92370f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mitsuba-3.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 91550e45699ee74d36dc41d25be37e3e73990c42d27a7fcfea11156091aa5916
MD5 4bbd4cc180de0770399e854ff27d2d2c
BLAKE2b-256 9407d82e0930671199737d31ea0978fe02aac1c3fcdc2a82a8e7896d79940f92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 167880651c6044f91d75becb2d18cf1d27af208f755e940be1a4ac5699dc81b9
MD5 22c5edfae73ad04a58f9aa927adffab6
BLAKE2b-256 7884f2cff1da9404d6cd9d30e1974cb712dbcbd82158f0b2221873cdd36d5444

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c92cc125b3600480991a53693cf41a91d650a2fa42c9f9c9c76709bf006ba4a3
MD5 6199260176cfbedec47c666da4f193f3
BLAKE2b-256 fbf2ae1e0b81ad396be5276bf084f1ea8d637cf215adc393ff2d27c303141ae6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4bc94998be645bb8528c13710d49ba16b7e101ec5d2fe6904fc19e9a31898d95
MD5 0452a8d9d3d8b6330d04e05bf3419d8b
BLAKE2b-256 923cd2f17452cbc511444bcd04b82007f2cbc43cacbf6627d83568a9cba075c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.4.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mitsuba-3.4.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 43bbfcfd7f2a16f326c26819e1e0e1ea520693004823b7f8c8ced8009faea26a
MD5 abb5ef19209efcd0617c3dc6cc38efd3
BLAKE2b-256 28c14a1c30e8c9fd9ab6b45b82014c31f97db34185e3af374fc201d03c27bd68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7ed82611b5369cd4016bb470b2d0af72155ba59e823a9b0661112c31b336b981
MD5 fe4b36248b9cb776ae1ec94c55029b31
BLAKE2b-256 3765943625c160fcd9766a0e054bdc41fa62c587d9c28020ad371b8c06505bd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 169de1abfcb7820d5b572bd98ca68c9a5719ccca51d41ff919234029ad319dff
MD5 f17207bed7b1ac9ab2b846e46144c410
BLAKE2b-256 76b0aa5d94ebf60565e06c2c1565e486a86b34db01757e9e00ec1c4a7cb19421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1471f751a4dd79af676ff8be51862cda9b340cc9f81dcf00bd88a755b13c09fc
MD5 7c30c04f0060430c1a9d1cff8cff2b2a
BLAKE2b-256 d5f423913f6a719d23a075c593b1417c191e4798809bf32f4d545c2e7f43a822

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.4.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mitsuba-3.4.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0fa8c0c11264ddf2995d3c3595bafdf3d1d40c160470b170e971beb159d6d6f9
MD5 d6b1b2167f2af07a2575e0252729e49e
BLAKE2b-256 ced45739e87ab08bf0f90e7c72cc91b361d01c76ef0a29df09ff580e9c0bc5ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 aedc4e7d675066f22bcbf6e176e4659a2ae2409fa62220169fd719c14aaa2f2f
MD5 0e08538e9e00ba45e7cee6ee6773eab1
BLAKE2b-256 8a5c912f393571053dbfbb6c6b848374da72d434623ade60da6d6377ad3481f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0947e4e9ea71d557998d17450307b15cd5862e122cdd621f9b2d310c49de862e
MD5 6ad4f0e3759599b1ecb181c28966d40c
BLAKE2b-256 98001c16545624a0f2f85a9a1fc99c8110d1c739d0bf6d9f3d91df881d4aecbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.4.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4ff0db62da00508e8514d7c8491cf5ec4a0ddacfc1832ff37d3e18281aed5bc6
MD5 a1080efba7e2b75d10c978cdfe778a9b
BLAKE2b-256 7f06d26aae5e44ca118c1f3827d8c198fa8cffae91ad920f7432b3ed6c6e6535

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