• 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.