Gaffer is a VFX application that enables look developers, lighters, and compositors to easily build, tweak, iterate, and render scenes. Gaffer supports in-application scripting in Python and OSL, so VFX artists and technical directors can design shaders, automate processes, and build production workflows.
An open-source project, Gaffer also provides an application framework for studios to design and create their own VFX production pipeline tools. Built using the Cortex libraries, Gaffer ships with a multi-threaded, deferred evaluation engine and a flexible user interface framework.
More information about Gaffer and its use in studios can be found at GafferHQ.
Users can learn how to use Gaffer through the documentation.
Developer notes are available on the Gaffer developer wiki.
Participating in the Gaffer community requires abiding by the project's Code of Conduct.
Compiled binary releases are available for download from the releases page.
Gaffer is officially supported and tested on Linux (CentOS 7) and macOS (macOS 10.14).
Gaffer targets the VFX Reference Platform. We are currently on CY2018. Aside from general platform development packages, we specifically require the following tools that may not be installed by default on your system. Without these, you will not be able to build Gaffer.
Note: From time to time, this list may change. For a complete, accurate, and up-to-date method of installing the prerequisites on CentOS, refer to the Docker setup we use for building automatic releases.
Note: Specific package names may differ depending on your Linux distribution and repository.
Main build requirements
Documentation build requirements
Note: Building the documentation is optional.
|Package Name||Minimum Version|
|Python Module||Required version|
git clone https://github.com/GafferHQ/gaffer.git cd gaffer
Gaffer depends on a number of 3rd-party libraries. We recommend using the pre-built dependencies from the Gaffer dependencies project. These are used in our automated test builds and so are guaranteed to be up-to-date with Gaffer's requirements.
The dependencies distribution forms the basis of a Gaffer build and the root of the expanded archive becomes the
BUILD_DIRECTORY we pass to
The easiest way to get the right dependencies version is to use the
config/installDependencies.sh script included in the Gaffer source tree. This downloads the correct version for the version of Gaffer you are building and unpacks them to a directory of your choice.
In this example we're going to build gaffer to a
gaffer-build directory next to our checkout.
You can then build Gaffer itself:
scons build BUILD_DIR=../gaffer-build
sconshas any issues finding dependencies or tools, see
SConstructfor the various options that can be set to specify their location.
With any luck, you now have a functioning version of Gaffer.
Building with third-party renderer support
Gaffer dependencies ships with Appleseed, but to build the modules for one of the other supported third-party renderers, you will need to set appropriate
scons options pointing to your installation. The options are:
For example, the following command builds Gaffer with Arnold support:
scons build ARNOLD_ROOT=/path/to/arnold/6 BUILD_DIR=...
Questions and troubleshooting
If you have any questions about using Gaffer, or encounter problems setting it up, feel free to ask on the Gaffer community group. Our users and contributors are happy to help.
If there is a feature you would like to see in Gaffer, request it on the Gaffer community group. Do not create an Issue for it on GitHub.
Contributions and bugs reports
Please see the project's contribution guidelines.
Copyright and license
© 2011–2020 John Haddon. All rights reserved.
© 2011–2020 Image Engine Design Inc. All rights reserved.
© 2011–2020 Cinesite VFX Ltd. All rights reserved.
Distributed under the BSD license.