$ show OpenMoonRay/openmoonray
OpenMoonRay is an open-source, production-grade path-tracing renderer developed by DreamWorks Animation and hosted under the Academy Software Foundation (ASWF). It is designed for feature film and VFX pipelines, supporting CPU and hybrid GPU (XPU) rendering, physically based materials, and integration with USD-based digital content creation tools via a Hydra render delegate. The system is composed of approximately 20 interconnected submodules covering core rendering, scene representation (RDL2), shaders (Moonshine), distributed computation (Arras), denoising, and more. Key entry points include the `moonray` CLI, `hd_render` for Hydra, `arras_render` for distributed rendering, and a Qt-based GUI (`moonray_gui`). The architecture is modular: the root repository orchestrates builds, provides test data, and houses build scripts and CI configurations, while the actual rendering logic resides in submodules. External dependencies include USD, OpenVDB, Embree, OpenImageDenoise, MaterialX, and Qt5, many of which require local patches for compatibility. The project is actively maintained with regular TSC meetings, CI workflows for Linux and macOS, and a growing open-source community.
The LLM identified 3 files worth highlighting for reuse:
This CMake file uses ExternalProject_Add to build all third-party dependencies (USD, OpenVDB, Embree, etc.) in a controlled, reproducible manner. It demonstrates a robust pattern for managing complex dependency chains with patches, version pinning, and platform-specific configurations. The approach is reusable for any project requiring isolated, scripted builds of external libraries.
A shell script that configures the runtime environment for MoonRay, setting PATH, LD_LIBRARY_PATH, RDL2_DSO_PATH, PXR_PLUGINPATH, and other variables. It encapsulates all necessary environment setup in a single, idempotent script, making it easy to integrate MoonRay into different workflows. The pattern is reusable for any complex software stack that requires careful environment configuration.
A Rez package definition file that describes how to build and install MoonRay as a Rez-managed package. It specifies dependencies, build commands, and installation paths. This pattern is reusable for any project that wants to integrate with the Rez package manager, commonly used in VFX pipelines for dependency resolution and environment management.