Wednesday, March 15th, 2023 Posted by Jim Thacker

DreamWorks open-sources its MoonRay renderer

Originally posted on 6 August 2022. Scroll down for news of the final release.

DreamWorks Animation is to make MoonRay, its in-house production renderer, available open-source.

The ray tracing renderer, used on animated features like The Bad Guys and the upcoming Puss in Boots: The Last Wish, will be publicly available later this year, along with Arras, its distributed rendering framework.

A high-performance Monte Carlo ray tracer capable of photorealistic and stylised output
Although DreamWorks has made individual in-house technologies available to the public before – it open-sourced sparse volumetric data format OpenVDB in 2012 – MoonRay is a beast of a different scale.

Developed to replace Moonlight, the studio’s old rasterisation renderer – this 2017 Siggraph presentation explores its origins – MoonRay is a high-performance Monte Carlo ray tracer.

It was designed with the aim of keeping “all the vector lanes of all the cores of all the machines busy all the time”, and has an hybrid GPU/CPU rendering mode capable of “100% output matching” with CPU rendering.

As well as DreamWorks’ trademark stylised animation, MoonRay is capable of photorealistic output, and has the key features you would expect of a VFX renderer, including AOVs/LPEs, deep output and Cryptomatte.

It should also play nicely in a standard production pipeline: in the Siggraph presentation linked above, DreamWorks describes it as integrating with Maya and MotionBuilder as well as its own lighting tools.

MoonRay also comes with a Hydra render delegate, hdMoonRay, which will make it possible to integrate as an interative viewport renderer in DCC software that supports Hydra delegates, like Houdini and Katana.

Arras framework distributed final-quality, interactive and multi-context rendering
Along with the core renderer, DreamWorks is open-sourcing Arras, its distributed computation framework.

As well as final-quality output, it can be used to accelerate interactive rendering, and for ‘multi-context rendering’ during look dev, visualising multiple lighting or material variants across shots and sequences.

Updated 22 August 2022: DreamWorks Animation has posted new online FAQs about MoonRay.

The FAQs provide studios interested in working with MoonRay more information about using the renderer within a production pipeline, and about integrating it with DCC applications.

Based on DreamWorks’ own RDL scene description format rather than USD
MoonRay uses its own proprietary scene description format, RDL (Render Data Layer), with hdMoonRay – the “canonical means” of rendering via MoonRay in DCC apps – translating from the more familiar USD to RDL.

RDL is currently required for batch rendering from the command line, including final-quality rendering on a render farm, but hdMoonRay is ultimately intended to support batch as well as interactive rendering.

Hair and materials from other DCC software will require conversion
DreamWorks’ own in-house tools export hair curves to MoonRay via a RDL procedural, so MoonRay does not directly support commercial hair tools, although hdMoonRay supports USD curves.

In addition, MoonRay does not currently support the open standard material formats OSL and MaterialX, so some custom development will be needed to support materials generated in other DCC applications.

The renderer will be released with a set of layerable materials, including dielectrics, skin, hair and fabrics, with a shading API for developing new shaders.

Updated 15 March 2023: DreamWorks has released the source code of MoonRay.

You can read the announcment of the MoonRay 1.0 release here, find the source code on GitHub, and ask for technical support via GitHub Discussions.

Licensing, system requirements and release dates
MoonRay is available under an open-source Apache 2.0 licence.

It can be compiled from source on CentOS 7 Linux. You can find a list of dependencies and build instructions in the online documentation: at the time of writing, there are no compiled binaries available.

It requires a x86-64 CPU with support for AVX2, so it should run on any recent AMD or Intel CPU. GPU acceleration is based on CUDA and OptiX and requires a Nvdia GPU.

Read more about the open-source release of MoonRay on the OpenMoonRay website

Read more about MoonRay in the online documentation

Download the source code for MoonRay from GitHub