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

Uploaded CPython 3.12 Windows x86-64

mitsuba-3.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.0-cp312-cp312-macosx_11_0_arm64.whl (27.0 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

mitsuba-3.5.0-cp312-cp312-macosx_10_14_x86_64.whl (32.2 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

mitsuba-3.5.0-cp311-cp311-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

mitsuba-3.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.0-cp311-cp311-macosx_11_0_arm64.whl (26.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mitsuba-3.5.0-cp311-cp311-macosx_10_14_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

mitsuba-3.5.0-cp310-cp310-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

mitsuba-3.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.0-cp310-cp310-macosx_11_0_arm64.whl (26.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mitsuba-3.5.0-cp310-cp310-macosx_10_14_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

mitsuba-3.5.0-cp39-cp39-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

mitsuba-3.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.0-cp39-cp39-macosx_11_0_arm64.whl (26.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mitsuba-3.5.0-cp39-cp39-macosx_10_14_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

mitsuba-3.5.0-cp38-cp38-win_amd64.whl (31.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

mitsuba-3.5.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (40.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mitsuba-3.5.0-cp38-cp38-macosx_11_0_arm64.whl (26.5 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mitsuba-3.5.0-cp38-cp38-macosx_10_14_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: mitsuba-3.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 31.8 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.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 db8c2c1785d08526452d1c63b5ac817472ac6c0b152e52c1ab8080f4ec61c9c5
MD5 46ca93d7530c77b7fd7573ffc2475c07
BLAKE2b-256 1c6a607707afc106865e869c427e3158e26f504f2933de2fa2c08707840be5fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5cd059d3e553b477c0592bccedf5b8927f3fb24fc131017c426def80fba478f1
MD5 4474a3290f13feb6c5fdb64422fdc6c7
BLAKE2b-256 b9a40541b901e98a6627cd5e05d9c5a442c267d559d7366e96999b8ed64519d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f1e2f4a433c956a9c9fadcb270f4f3bfdffb0eeb320df3acb72c9fc88c192ef
MD5 2bc55ac59be935d5d7efe9df0ca4c728
BLAKE2b-256 5f76915510ceb4fcebad89f9e094d156bdfce573cf7157daf91f3291a5425fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 98e9e633e07628c1a80dac90f0057404fe5f506325047c544412e3c1e8d77f85
MD5 13fc51a619b331d37148fde7e988d9d0
BLAKE2b-256 ea4150997e7e3a928fae009e510f47d2fde28bcaae49137bc4e463536dbab823

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 31.8 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.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 60686f74d6cf7e511bf153ad5402946256959e0801bcdfe8e96c7fb571cb8276
MD5 ffb65ca436a2bf106d48403f3bba6574
BLAKE2b-256 ea312af11420a735fc67f218f116ad16e48796339b8eeb69ff6b2a7f682f1f3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2b83e44418098cab5cbbf8d644505664471dc171625d0a9df162873a2c97b2ce
MD5 ea63a3ff6462fc4d4a44941e4712a52a
BLAKE2b-256 95618b0c519459a2d337ac74fa5a4ee9537a108f705e35c9e636b2a6c6314088

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d8123ce025ec6d3e97e709ba261ac49f6612058e483ddd53315922b860869cc
MD5 f6ef390a95ea79af5edc566bc98d8e7f
BLAKE2b-256 c327e3f2acca544e6faaa91b471d7e8f894a21281fdacdb76ab7fd642ee83ee0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6a9b0915cea05dc8f3bfc5711fce46a1dbda6f7ebfa5316159dc8925b7802c95
MD5 dca5cd50e7f4c9e349de6d70906375e4
BLAKE2b-256 650afcc8414210564421398287b43a9379dadbbcb6b7f1110fa918ce36a42b7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 31.8 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.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 13e223f15ca3637291a52d61c41e5a0e9c4466d94afcade26e6d4f390c568731
MD5 a4e13aca965df686dcad009f71926587
BLAKE2b-256 c5fd5eb7601ad1a34682da67284ecd47b227722290909ea8ffdaea288b689c34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1dcf6d06a03042fdd9dcc829023c65683924b2e0a60a0d64b63b78a14ff51720
MD5 19ba445bb8b4b1588be25b9469368f1f
BLAKE2b-256 395b8091b7235a5162c7aabf04c8d054e3d87fdfc476e9dd27912b35fd12ecc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0ab65ad2b9d62992eaedd4bd57c3b381f4a89bffe148d752be3b8c2ad11abdd
MD5 a42205787a805c6f4b9447594fe28154
BLAKE2b-256 7bb1dd8aa9819af190c78f4ecf959c5c542402c3d156d0a2c266f88b4aafa6da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f78662ea361442e14382c615eb38e93522b4b841fcdc8eb41b5246c220cdf4a4
MD5 8adc011d86af28e21122e6435b3f2caf
BLAKE2b-256 27d7b4653232980aa689fda9f34b60fdfde73da151acb06f46890ebc240d6145

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 31.8 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.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e85cc435993f0633bc5ae7d8307cf5db58300edf3b586ebbae7e1b95f4478f41
MD5 1af267649a52f1252e0ddfc5f8b5c0c9
BLAKE2b-256 bc06a957ddcd06a7fd0b4561f8c100b7ea3f977ad880fa45b3b6da0c7661c097

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7411b572cdf1b84d47aafb8526d0d9ec364545b8c7f3fba83a8d5c0daaa69018
MD5 9b96caf1389ecc6c9a78b4f116fabe7b
BLAKE2b-256 0eb4c39c381a4b4278827fc3f41cd7a1a9845f86029b410a91731a6bbae11f6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfcd6602d92c1261cffa5542919e775f3ca1a7a9f197b47d3d1df8d62f87e858
MD5 9ac227e7966f3d0157fbca2cdd2e7bae
BLAKE2b-256 04bf2e63dc49ad7e565eaba5e30639364bc07267bd9f200c61c10da1231110cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f1a0e86a0d7e2ba30a4eebef15024978d9399940ea845995394fdb8386cd10d8
MD5 fd6c2259fb0eb12e39c2a134ceb95c59
BLAKE2b-256 7c4e38bb451e3fac16e19e03f297e887fc621da315b70615797713cb1d5d416c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mitsuba-3.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 31.8 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.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8fed9b9c73c4310ba3f9b0995470c9b4188ee41fb45468808e6fdab2cb5f7a80
MD5 304fbef0f8ffcd83edc74733e386fc49
BLAKE2b-256 4a0eece98735a438412400ebf8f7718d12e8fd0f829feb399687f4c8f9f4443b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ab13662718b831f8b68de36f505f2f5b70fad4d1078814da46a52798cae70676
MD5 2b7d8c42cfdc5a8111bdbd76a4b5aae9
BLAKE2b-256 24b6a9976200f9b228fe9b32b1c6916edd3acb6810ee58ccfbad97c44fbe4721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7bc439e47af2148d29cde913f00269c4e7cb33ddeb79b742c093e9a143caff7
MD5 e55fc75737a5f4184d13cdc3cb96b7f9
BLAKE2b-256 c07e13d229a18c6dd30eb5aa484a24fe80f23fe870d5bec2165e44cddf784106

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mitsuba-3.5.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 4bb21fbf2e9499c493d0ae60d19eb596bee7430492c81742aaf87ad707939e1b
MD5 3780f5864cac7555a891a5b6096582e2
BLAKE2b-256 5d336cdf4be4a7d509981a4951c6dfd3981a94724b0ba6eefa707ace4ee8a73d

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