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

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.1.0-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.1.0-cp310-cp310-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.14+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.1.0-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.1.0-cp39-cp39-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.14+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.1.0-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.1.0-cp38-cp38-macosx_11_0_arm64.whl (24.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.1.0-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.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mitsuba-3.1.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.1 CPython/3.9.15

File hashes

Hashes for mitsuba-3.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 58e90a1d84d6076793e7c31ef84bbf397621d726f3db30aa19ba8a62c6f8e603
MD5 313f4ba238c6ba29d73e7dc6f3d325d1
BLAKE2b-256 b5773579560f72d13a6aa5730aaf9c0ce953e7a8373aa8b3953d06436aef0c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 98d5223f5f488594239c680e14b84e4b2f7e920996a7c12a220f5ccec4b691b7
MD5 db857d8cad1b52c92a85a98eeb2024bd
BLAKE2b-256 052356a3d821214046e42f67b36b10051be264dea53b711da3523e256f90ee21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0df4d7b55b2e3d319bd57887752fb8f9df6b1a6838e8baeb4f281e31286fd506
MD5 5edc14968d9cde4c4b81c20ca680281f
BLAKE2b-256 b4ef37966564e7adcd8a7b3eca7b731029ea753738df291fe53f01bb61af141b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 bbf5f9c0635ffb821bee891c984a321d628c602d403ff728a88ba3b685cd0739
MD5 b770ec64185134e538eca932710e3d7d
BLAKE2b-256 3c0b512774cf8f6127e0143ca12c1a8c565b6cea6fe0a38db0f520cc1cf07a9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.1.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.1 CPython/3.9.15

File hashes

Hashes for mitsuba-3.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 dd9f6990600826fb0a26bd7f7ef2e1fb313f153f2b4060c4abb1a51d701fa5e7
MD5 1fee94ef1d97ac7ed8b2dc19bcd72c52
BLAKE2b-256 dfeca2065950d1f455a846aa1dbd70b4e1c507239a8e57c6801571eeb46cf446

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7d8802ab307e41ad9ae68a28a1516eb41eb4bbdd3c2f806c20f8fe857057edea
MD5 57d3c406d03a30476714f9be9802b377
BLAKE2b-256 6976bde5d0f7e5104c69e1ef069b3593b2e244b9a273f49fad43bafd72b9cb54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 646223ae20f52a5ebdf3beb569ad2c23455bdef12b48213129c6897f43fdef62
MD5 adb6c5949b90d56119ee752600485da3
BLAKE2b-256 21f5aef5cdc00b4b20b10d6827fe7a8fb2359adf6a03059f3ce2731bd43c0305

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c0c5fa588e4c42f89cf2950571889c315f94f7cce062a6d829e9512bfa806f65
MD5 03983d0915ff137f7277ae8d2b9a2fda
BLAKE2b-256 57d5d22ca33faa1bbcf0968d7ef1ee778302c84b05a7d075e3f9a10237a24147

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.1.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.1 CPython/3.9.15

File hashes

Hashes for mitsuba-3.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5999874dc44880b160ee18ab7781805cce2e80774ceb93f88e58a6c01840df7b
MD5 02bfcba76973ca871c26b20bb2665d43
BLAKE2b-256 b30ec02a547ae23cc201e22592d7216be5a225e21f1281e4cde06580999875df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 98cd22a4b74a8b735d51477e7a79caaad6c12b8057de2400ea23c8eaa6ee339a
MD5 a4dba774a7d00d10ab0d6993e5070ad4
BLAKE2b-256 4c2a8fd7a00b6024bb99f2d3fae9ed2f78e1008edf0e43af6c7af6f7c3f74a77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92756fd4d1ecf11d23038ed38a6590f78698456dfb3c314f277a54a59a70bbd1
MD5 684e29c43a27246da461709b8d46fdf1
BLAKE2b-256 d47478c5198ef805b2d88ee4b2c7d1ae368197344ba436e984141d900ac73e31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.1.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3371acd54da6ffe7aa1801ed080a6e61b835cf9d6d71b23e72d18a6fd3381231
MD5 3b8f2e29214ce3c23801c74746480337
BLAKE2b-256 4dbaaeab8dde13c0703388ef7b59e691e5625112d38ebafb979c9b1dd74faaa9

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