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.

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

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.0.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.0.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (33.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.0.1-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.1-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for mitsuba-3.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c5be9328b2838dea88026fd07daca8efe11edaef9babec2178f12e3fe7d2293b
MD5 218472c1ed561d1958f4f90270f61dc3
BLAKE2b-256 5d74c70f997f889f6c468a0fb4e1e3fc41e09cee54b28fd329d7bd845b9af913

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bc99e66a5c3dab4d1c494d789729238e0ecd431ef3ce902a6858516861a1c770
MD5 640ae37038988ed1498262bcedd66abe
BLAKE2b-256 1188c51e2d82b9f018480880f5846cb7a17702e4cb4d323e5eb85b1859a1e545

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46be67f65cce265031ac6cd6a5f3a25a724b36e52a97ef5c9cf448410ee28a7f
MD5 911676fde6ef52f3789d65ccc4e049b7
BLAKE2b-256 8f38114768360630ba6ab8613b8793a3f693dddd70a57e048da295b99bcc0722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3e776325c79c26bdeafc258c4fe7f5b1e944daaaeebeab68c761a3233bb2b259
MD5 dc5cbda79945b814b04f29013f6031bd
BLAKE2b-256 e1c62cbadb767b554c5568a6d964629dc1771fbfb26b7bb3f8a3a6c28cf58965

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.0.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 83f6ab5a3ebc92afb9997e3762745e47689e3955a143934642158b12e093d71a
MD5 1d48779a93b1a13bf3e0b81dd1b75cb9
BLAKE2b-256 ce22e413b27b2030289051673f47f14a355ff2a64c744b3d3cc7eef69c6d7833

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f9c7060d35e2ecd9ed4e62c5e7004b62718be7ef5b1c4e649dae5e0ef1e5954e
MD5 6d0f07ac176a18c95373c8d1192e9247
BLAKE2b-256 ee451f05e252343c11341b0b6ea34d0ab837313094a9eeb5d000a896c53ab728

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e07e9d8e5f74c921f7e5d6d983ddc1c6b6052f9dd422259c7386b08db0419876
MD5 bd5cfdaec2f13951c1c66fdae99af89e
BLAKE2b-256 46b2e29fda2c98b3fb577b260fa39d4d3e54e379e30025a85b152dad8418075d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 20992059e860727937d8dbbbc054f3fe3ec8121779ac8fbf971f866ed304f003
MD5 f77a9a1d51cc64834c87099b6e1dc1c8
BLAKE2b-256 2119fc2a2bd3ec67cd1e4e7ca21df3773c76c8ceaeca89eab4bbbed4eebd1b1b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mitsuba-3.0.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d010298cb22854ebd4690c03e50ca02a4d88664afe7c87d958672c542be05d49
MD5 cc2c2b380246fb9a308cf645705fe722
BLAKE2b-256 fc9801974b8188515a72d82e53fd577e3bc77036cd96c9228c09e4a80e7a4b22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 32ef27aaf9c47df55680a7feac7800a4652566e9672bc36164d7317444261fba
MD5 8ab7eaa61efb91f8657960765c156e13
BLAKE2b-256 ddc40535a284fac1622683f9bdb774fa0067d2bc16515ded16fb1d9af8f77f6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba2e71b2cca7754c68881c9714f70cd825ffa8ed989bdee91cbcc82360178821
MD5 09fc4dedc6df727eae985bb0e0e4c749
BLAKE2b-256 f775554f42ae3fb27126ea08d151615a48f31f12e35c374e82ee722c6082cda5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.0.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e27db4bbb65a4fe4047fe4b73433b3d3177c740e62ec1ad975f30f3546fc5457
MD5 fbead6b4dd3d773572fd181b34efba12
BLAKE2b-256 cca863f843d1244ec0bc8d703e8f9da070319f72649cffeffcd2ee876e23530b

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