This release brings significant optimisations, further additions to the SceneInspector, and the usual collection of miscellaneous enhancements and bug fixes.


  • Optimised Context::substitute(). This gives a 73% reduction in runtime for a substitutions benchmark.
  • Added ‘’ as an escape character in Context::substitute() (#997).
  • Boxes may now be enabled/disabled and define pass-through behaviours (#1015).
  • Significant optimisations to the computation engine.
  • Added TaskList node for grouping the dispatch of several input requirements.


  • Fixed Display node for bucket sizes larger than the native tile size.
  • Fixed problems when running embedded in Maya.


  • Added code to clear caches after full procedural expansion in batch renders.
  • Added scene pass-through to the InteractiveRender node. This allows it to be seen in the Viewer, SceneHierarchy, SceneInspector etc.
  • Significant optimisations. A benchmark scene can now be generated in 3% of its previous runtime.


  • Added “command” plug to RenderManRender. This allows the user to customise the command used to render the RIB (#1017).


  • SceneInspector improvements
    • Added set membership section (#930).
    • Added sets section to globals (#895).
    • Improved responsiveness.
  • MenuButton improvements
    • Menus are shown on press rather than release (#742).
    • Added menu indicator (#493).
  • Fixed OpDialogue bug which caused it to return to the parameters pane when it should have been displaying an error.
  • Dispatcher improvements
    • Added PlaybackRange to the frames mode menu (#1007).
    • Renamed ScriptRange to FullRange.


  • Added custom Diff support to SceneInspector.
  • Fixed crashes when passing None to PathMatcher python methods.
  • Added accessors for the buttons on VectorDataWidget (#1003).
  • Fixed broken SceneInspector.Row.getAlternate() method.
  • Added SceneProcedural::allRenderedSignal().
  • Added Context::remove() method.

Incompatible changes

  • SceneInspector API changes.
  • Box rederived from DependencyNode.
  • Dispatcher ScriptRange renamed to FullRange.


  • Improved Travis continuous integration setup
    • Added running of unit tests
    • Added GafferRenderMan support
  • Fixed installation to paths starting with “./”
  • Fixed RenderManShader compilation in Clang 3.4
  • GafferOSL compatibility for OSL version 1.5