Skip to main content

Rez

Rez is a cross-platform package management and environment configuration system (developer tooling) designed for software pipelines in media and visual effects production.

  • Declarative definition of software packages, versions, and variants (package management).
  • Reproducible, isolated runtime environments based on package dependency graphs (environment management).
  • Command-line tools to resolve, build, and activate environments for projects and user workflows (developer tooling).
  • Integration model for existing build systems and studio pipelines via plugins and configuration hooks (pipeline integration).
  • Support for Linux, macOS, and Windows workflows used in animation, VFX, and related pipelines (cross-platform developer tooling).

More About Rez

Rez is a software package management and environment configuration system (developer tooling) originating from visual effects and animation production, designed to address reproducible software environments across heterogeneous pipelines. It focuses on defining software packages, their dependencies, and environment behavior in a way that can be consistently reproduced across artists’ and developers’ workstations, render farms, and automation infrastructure.

The core of Rez is a package model (package management) that represents each piece of software as a versioned package with metadata, dependencies, and environment modification rules. Packages are typically described via Python-based package definitions, which specify attributes such as name, version, dependencies, build commands, and environment changes like PATH or PYTHONPATH modifications. This model supports multiple versions and builds of tools, libraries, and applications coexisting on the same system.

Rez provides an environment resolution engine (environment management) that computes a dependency graph from a requested set of packages and then produces an isolated runtime environment matching those requirements. Users can request environments on the command line, after which Rez resolves compatible versions, applies constraints, and generates a shell environment where the requested tools and libraries are available. This allows teams to pin projects to known software stacks and reproduce them later for debugging, maintenance, or archiving.

The project includes command-line utilities (developer tooling) for tasks such as creating and building packages, inspecting dependency graphs, resolving environments, and spawning new shells or running commands within those environments. Build integration features allow Rez to drive or wrap existing build systems, so package builds can be automated as part of Continuous Integration (CI), render preparation, or general dev workflows. Hooks and configuration files support customization for site-specific policies and directory structures.

Rez is maintained under the Academy Software Foundation (open-source foundation), which focuses on open-source projects used in motion picture and media production. In enterprise settings, Rez is applicable where software stacks are complex, multi-language, and versioned per project, such as VFX, animation, and similar digital content creation pipelines. Its architecture positions it in categories such as environment management, software configuration management, and build orchestration. Interoperability comes from its ability to manage arbitrary executables and libraries rather than imposing a specific runtime, making it suitable to coexist with existing Continuous Integration and Continuous Deployment (CI/CD) tools, farm schedulers, and studio pipeline frameworks.