Context Variable cheat sheet

Contexts are an essential part of Gaffer. We’re working on some more structured documentation about them. In the mean time, here is a list of common Context Variables set by Gaffer as part of the compute process. Amongst other things, they can be used in expressions or via ${variables} in string plug values.

Continue reading “Context Variable cheat sheet”

Labelled menu dividers

From 0.55.0.0 onwards, you can now label menu dividers. You can see an examples of this in the Editor Focus menu, which has both a title (in black) and two labelled dividers (dark grey).

To create these, simply add a label to your item when setting "divider" : True:

menu.append( "/Follow Divider",
  { "divider" : True, "label" : "Follow" }
)

G4P – part 6 – Node defaults

For this instalment in our ground-up series about integrating Gaffer into a pipeline, we cover how to change node defaults.

All Gaffer nodes have plugs, whether they are visible in the Graph Editor for easy connection, or in the Node Editor as settings. These plugs have default values defined by the node’s programming. It may be the case however, that these defaults aren’t the most useful values for your use. To help with this, Gaffer allows you to provide your own, “user” defaults.

Continue reading “G4P – part 6 – Node defaults”

Gaffer for pipeline – part 4 – which version?

When writing pipeline tools, it’s often useful to know which Gaffer version you are running in. In python, the Gaffer.About module is your friend:

import Gaffer
print( Gaffer.About.versionString() )
print( Gaffer.About.majorVersion(), Gaffer.About.minorVersion() )

We also define a (script + ABI) ‘compatibility’ version, that, as we use SemVer – is effectively tied to the milestone + major version:

print( Gaffer.About.compatibilityVersion() )

Gaffer for pipeline – part 3 – Compute cache size

Like many other applications that calculate data on-demand, Gaffer has a memory cache that can increase performance in UI sessions if you have RAM to spare.

The default size (1GB) is somewhat conservative as to ensure we don’t use up all the resources of more modest machines when Gaffer is used out-the-box. It is easy to increase the limit though, which can bring performance gains in real-world production scenarios.

Continue reading “Gaffer for pipeline – part 3 – Compute cache size”

Gaffer for pipeline – part 1 – App structure and startup

It can be hard to know where to start when you first start integrating a new application into a pipeline. This post is the first part in a series that takes a bottom-up approach and brings together a few helpful links for getting started with Gaffer configuration, scripting and development.

In this part, we take a look at how the gaffer application is structured, and what happens at startup.

Continue reading “Gaffer for pipeline – part 1 – App structure and startup”