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.2.0-cp311-cp311-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.0-cp311-cp311-macosx_11_0_arm64.whl (24.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.2.0-cp311-cp311-macosx_10_14_x86_64.whl (26.6 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.2.0-cp310-cp310-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.0-cp310-cp310-macosx_11_0_arm64.whl (24.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.2.0-cp310-cp310-macosx_10_14_x86_64.whl (26.6 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.2.0-cp39-cp39-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.2.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.0-cp39-cp39-macosx_11_0_arm64.whl (24.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.2.0-cp39-cp39-macosx_10_14_x86_64.whl (26.6 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.2.0-cp38-cp38-win_amd64.whl (27.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.2.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.2.0-cp38-cp38-macosx_11_0_arm64.whl (24.5 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.2.0-cp38-cp38-macosx_10_14_x86_64.whl (26.6 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3bbf26c198fe8e2f5fa7b6618470ae3f8f08412b4bd4a630b0158fabdddb87f1
MD5 5ea7a1686b82694da7f55d6c32589781
BLAKE2b-256 2eab2e62945675cfc1f548546913bc6db1ccb0e3f953cf1e42668ed1f29b0d3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ebaf6fba12506d4aaf178be4837a5f296d4e0fd2e797af968669df4c5dc4d60d
MD5 02586edb179432dc655091e10230f892
BLAKE2b-256 1c325b4ac9abf6dc7e3b409f340590390ce4ce64c22f9d4952a4c1a20a1518b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bef915bc5c1d0e5eb39a4a3f23025288e1eded4c1097366bd5b04685d8189fb
MD5 8732946f524efdae107fec4a8f83bc09
BLAKE2b-256 093a9c557201e3ddf8a423bf96dbcb8e5bd851966a3857af84296664f35b6ccb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fe1d516883b6c8896a205adc058a9085c2f5d1e0f1ae5cba5da9652208d42ce3
MD5 6bf8781dfe6a1a3ff8020c65bcc9217c
BLAKE2b-256 6069f7abc9373905ca8920902a10c49e074150491a444258eaddf688a2f48060

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 45979ab9221a9922f084349346185e90294a952e6f4895d73ef4dbeb0445f176
MD5 970670ceba41706c819cb71ae88d1dc4
BLAKE2b-256 8241e4ed8a220693415a9232df08c2a3c205b981d02ff1a6749c2064870c9e0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ba3840eb9d2250b6a6f70fddb1c1d7df5d5db661df81b1b22754043806ea95bc
MD5 3f092b8e16b8be70d703ace48b35d952
BLAKE2b-256 61ef00a3f9f730004133a07492f38af35858f393b4e6ead7d168b186f2382bb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 853bb495e1693ed1ecbfda70076810a9400853ecd928d360315fa5211b4fc12a
MD5 84471718a8d723bf1f4f9f49b18ff13e
BLAKE2b-256 df3779722bbdd00c6081253b4cffa70d11f393c5639b86b657cad6ea8b6d11c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9afa36136b498f59168642cb6a0a4f5c36fc9c09f1d71159bcf847f34c9a2b7b
MD5 dd8ab81940266275abf978dfb9f960fb
BLAKE2b-256 7cab38b59875d960ecaec8d8a13c9cac23c8fbe31d1ac9e5a4c9295e05c3c103

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b5367b0ce183e16f463cf234226c75ee3a051eeb843ab1bcf826ab3770f39306
MD5 4e80848e8c39c68a8fb672e577ebd184
BLAKE2b-256 edb823d2e26b1ac0994899c6c47e7161fde03c34a7315684f1ff2577be28b157

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7f3abbb302aa54004d6f47a13cf20d6a368d9d23ac8738584101102ad2c63611
MD5 bc67a481ffecdecc245f4c1d0b2d2559
BLAKE2b-256 1c2aee070b373ec2a89d277dbadf1b234877dad17629a205f671dd0a04486c99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 168c1f519c9a0f28884e0ae487244e5aff9e37bc35ab04137f2a58c01ca66cd9
MD5 e193ba4cbb40ae40fe73c23db7cb93aa
BLAKE2b-256 6d409747d7a57b0331680c8a4f061cf4b1c6535380f190ea0edc168a0de55c0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2d0ca2971cf3f97e40a7e13231f36d1504e25ea6de1a7fd5738e8acdaba5cb07
MD5 6deeda8e0af4d815c697fe0971ed823f
BLAKE2b-256 0c53177e7ce13fa902c26e9649284f64acb608a7a9f29f188fad205db6d84bfe

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f0474ffee4c4fe8e9f71ae6ce0b12e02bf8e2e80be54f1c7821d6b1beeae89c9
MD5 7c3d6486afd8f03b2efce2346d9dab40
BLAKE2b-256 95be98ce826adc5731192fe041e2ff5ba847cb7859bfa05271bb8c37e85d2e9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8f0b0d3d619e1314a3bcb152c938464949fed4653df12247e6657275d67c4920
MD5 f1fb4bf4c926a82566cbfd905de698b5
BLAKE2b-256 738eeb8fb5ea3be71267eef76692dbadd33f70fb1b8addb5ba988e48863da2a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31da0b3485e27215666b46a79b35661d64e1ccb737e5888b1f7598a328e55b81
MD5 f9358ac35fa4a0c8769bd438d0b45a24
BLAKE2b-256 9cdc40f97d8b94496047f07c0252a951e6d12a8cd00106bba657e6ebeb8852a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.2.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6f5f5a2a1a6aac30718e020a36721273afcbeb6c1dd0a184f936cad1f1efa2e7
MD5 43d603c0c3ca2f7f893f9e95bad696d4
BLAKE2b-256 dddb5c83def771472230d52925c7f2f098ab53c4506830282be32902f74c32e4

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