• Reimplemented paths framework in C++ (#1190). This gives much improved performance - 10x or more speed improvements in the SceneHierarchy panel.

  • Fixed subprocess hangs seen when dispatching renders inside Maya.

  • Restored compatibility with references from prior to version


  • Added bookmarks system for NodeGraph (#849).

    • Bookmark nodes using the right-click node context menu

    • Connect plugs to bookmarked nodes using the right-click plug context menu.

  • Added NodeGraph Ctrl+Click to select all downstream nodes (#941).

  • Added additional “Edit/Select Connected” menu items

  • Fixed “Edit/SelectConnected” menu items to ignore invisible nodes.

  • Fixed “Edit/SelectAll” menu item to ignore invisible nodes (#1207).

  • Highlighted plugs at non-default values in the NodeEditor (#1216).

  • SceneInspector

    • Significant performance improvements.

    • Added name based filtering for options and attributes (#1159).

    • Added query caching.

  • Fixed bug whereby Widget.setVisible( notABool ) could cause problems.

  • Fixed clearing of StandardNodeGadget errors for non-DependencyNodes.


  • Added “mode” plug to Set node. This allows paths to be added to or removed from existing sets, in addition to the old behaviour of creating a new set (or replacing an existing one of the same name).

  • Added ClippingPlane node.

  • Added “enabled” plug to Filter nodes (#1196).

  • Added FilterSwitch node (#1197).

  • Added “name” plug to Duplicate node, to provide control over the names given to the duplicates (#1200).


  • Added photon target attribute.

  • Added sampler option.

  • Synced default options with new Appleseed defaults.


  • Added UI hint to control the visibility of the header in the ParameterisedHolder node UI.


  • GraphGadget

    • Added degreesOfSeparation argument to upstreamNodeGadgets() method.

    • Added downstreamNodeGadgets() and connectedNodeGadgets() methods.

  • EditMenu

    • Added scope() method. This should be used by custom edit menu commands to ensure they operate on the right portion of the node graph.

  • CompoundVectorParameterValueWidget

    • Added support for “showIndices” parameter user data.

  • PathMatcher

    • Added addPaths() and removePaths() methods, each taking a second PathMatcher to provide the paths.

  • Serialisation

    • Made classPath() and modulePath() methods compatible with passing a class as well as an instance.

  • PathListingWidget

    • Added setSortable() and getSortable() methods.

  • Added MatchPatternPathFilter

  • Added bindings for SceneAlgo camera() and shutter() functions.

  • Metadata

    • Added control over persistence of instance values.

  • Added preprocessor macros for gaffer version numbers.


  • Path

    • The info API has been replaced with a property API. Emulation for the old API exists, but it has been deprecated.

    • Properties must derive from RunTimeTyped, whereas info could contain any python type.

    • Subclasses now must implement the copy() method.

  • PathListingWidget

    • Column python class has been replaced with several specialised C++ subclasses. It is no longer possible to derive from Column in python.

  • GraphGadget

    • Added argument to upstreamNodeGadgets() method.

  • GafferScene::Filter

    • Renamed “match” plug to “out”. Backwards compatibility is provided by a getattr alias in Python.


  • Updated public build to use Cortex 9.0.0-b4.

  • libGafferUI now links with Qt. This must be considered when building Gaffer to be hosted inside other applications.

  • Requires subprocess32 python module.

  • Added subprocess32 to dependencies build process.