<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.gaffer.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GafferBot</id>
	<title>Gaffer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gaffer.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GafferBot"/>
	<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/wiki/Special:Contributions/GafferBot"/>
	<updated>2026-04-11T01:17:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=654</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=654"/>
		<updated>2026-03-31T01:49:56Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.15.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=653</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=653"/>
		<updated>2026-03-27T03:19:48Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.14.2&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=651</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=651"/>
		<updated>2026-03-18T02:44:05Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.14.1&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=649</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=649"/>
		<updated>2026-02-28T05:23:42Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.13.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=645</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=645"/>
		<updated>2026-02-21T17:39:45Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.12.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=635</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=635"/>
		<updated>2026-01-30T05:12:00Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.10.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=634</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=634"/>
		<updated>2026-01-08T03:59:10Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.8.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=633</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=633"/>
		<updated>2025-12-17T04:40:51Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.7.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=632</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=632"/>
		<updated>2025-11-30T00:28:58Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.6.1&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=631</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=631"/>
		<updated>2025-11-27T05:18:36Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.6.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=630</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=630"/>
		<updated>2025-11-14T00:42:06Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.5.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=629</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=629"/>
		<updated>2025-11-03T00:34:32Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.4.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Learning_resources&amp;diff=628</id>
		<title>Learning resources</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Learning_resources&amp;diff=628"/>
		<updated>2025-10-31T21:06:30Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* {{GafferDocumentationLink|GettingStarted/TutorialAssemblingTheGafferBot/index.html|Assembling the Gaffer Bot - Gaffer Documentation}}&lt;br /&gt;
* [https://www.patreon.com/posts/introduction-to-94873751 Introduction to Gaffer - Brian Hanke]&lt;br /&gt;
* [https://blog.gafferhq.org/?cat=10 Artist Tips - GafferHQ Blog]&lt;br /&gt;
* [https://blog.gafferhq.org/?cat=35 Dev and Pipeline Tips - GafferHQ Blog]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Videos ==&lt;br /&gt;
{{#ev:vimeo|202088156}}&lt;br /&gt;
{{#ev:youtube|lAgBcOFMf5k}}&lt;br /&gt;
{{#ev:youtube|RiPmGDhxjGw}}&lt;br /&gt;
{{#ev:youtube|qJWtai73TB8}}&lt;br /&gt;
{{#ev:youtube|aKUMRKPbdZI}}&lt;br /&gt;
&lt;br /&gt;
== Production Examples ==&lt;br /&gt;
{{#ev:youtube|jtjDbAHbPuE}}&lt;br /&gt;
{{#ev:vimeo|739832240}}&lt;br /&gt;
{{#ev:vimeo|739832094}}&lt;br /&gt;
{{#ev:vimeo|739832505}}&lt;br /&gt;
&lt;br /&gt;
== User Groups ==&lt;br /&gt;
{{#ev:vimeo|1131945768}}&lt;br /&gt;
{{#ev:vimeo|1036919633}}&lt;br /&gt;
{{#ev:vimeo|923093356}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=627</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=627"/>
		<updated>2025-10-11T01:21:56Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.3.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=626</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=626"/>
		<updated>2025-10-02T05:06:37Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.2.1&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=625</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=625"/>
		<updated>2025-09-25T04:47:38Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.2.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=624</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=624"/>
		<updated>2025-09-19T06:26:17Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.1.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=608</id>
		<title>Getting started with Gaffer</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=608"/>
		<updated>2025-09-03T04:35:28Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: /* Configuring renderers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro to Gaffer ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:vimeo|739829903}}&lt;br /&gt;
&lt;br /&gt;
== Installing Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading a release ===&lt;br /&gt;
The latest release is available to download from [https://www.gafferhq.org/download gafferhq.org]. Previous releases can be downloaded from the GitHub [https://github.com/GafferHQ/gaffer/releases releases] page. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Each Gaffer release is a standalone archive that just requires extraction to the location you wish to run Gaffer from. See the {{GafferDocumentationLink|GettingStarted/InstallingGaffer/index.html|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
On Windows, the [https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Microsoft Visual C++ Redistributable] must be installed. If you see errors related to missing VCRUNTIME files such as VCRUNTIME140.dll, the redestributable will need to be downloaded and installed before Gaffer can be launched.&lt;br /&gt;
&lt;br /&gt;
=== 3rd party installers ===&lt;br /&gt;
&lt;br /&gt;
Brian Hanke maintains a Windows installer that downloads and extracts Gaffer releases. It can be downloaded from [https://github.com/BrianHanke/gaffer_windows_installer GitHub].&lt;br /&gt;
&lt;br /&gt;
== Configuring renderers ==&lt;br /&gt;
&lt;br /&gt;
=== Cycles ===&lt;br /&gt;
Gaffer comes pre-installed with Cycles, so no additional configuration is required.&lt;br /&gt;
&lt;br /&gt;
{{ info | To disable Cycles, set the  &amp;lt;code&amp;gt;GAFFERCYCLES_HIDE_UI&amp;lt;/code&amp;gt; environment variable to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
=== Arnold ===&lt;br /&gt;
Gaffer currently supports Arnold &amp;lt;code&amp;gt;7.3.x.x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;7.4.x.x&amp;lt;/code&amp;gt; releases. Earlier versions of Arnold are no longer compatible.&lt;br /&gt;
&lt;br /&gt;
{{ info | Note that Gaffer requires an Arnold SDK release to be installed - a MtoA, HtoA, KtoA etc release will not work. }}&lt;br /&gt;
&lt;br /&gt;
To configure Gaffer to use Arnold, the &amp;lt;code&amp;gt;ARNOLD_ROOT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the Arnold release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-arnold|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== 3Delight ===&lt;br /&gt;
To configure Gaffer to use 3Delight, the &amp;lt;code&amp;gt;DELIGHT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the 3Delight release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-3delight|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== RenderMan ===&lt;br /&gt;
RenderMan support is in active development and can be used in current Gaffer 1.6 releases by setting the &amp;lt;code&amp;gt;RMANTREE&amp;lt;/code&amp;gt; environment variable to point to the root directory of a RenderMan Pro Server 26.3 installation. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-renderman|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
== Running Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== GUI Mode ===&lt;br /&gt;
&lt;br /&gt;
Gaffer is launched via a wrapper script found in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, this wrapper is named &amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; on Linux and &amp;lt;code&amp;gt;gaffer.cmd&amp;lt;/code&amp;gt; on Windows&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;C:/software/gaffer-{{latestGafferVersion}}-windows/bin/gaffer.cmd&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
=== Command line execution ===&lt;br /&gt;
&lt;br /&gt;
Gaffer scripts can be executed on the command line via the {{GafferDocumentationLink|Reference/CommandLineReference/execute.html|execute}} app, or dispatched locally or to a render farm via the {{GafferDocumentationLink|Reference/CommandLineReference/dispatch.html|dispatch}} app.&lt;br /&gt;
&lt;br /&gt;
=== Additional utilities ===&lt;br /&gt;
&lt;br /&gt;
A Gaffer release includes a number of additional utility applications in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, such as [https://openusd.org/release/toolset.html#usdview usdview], [https://openimageio.readthedocs.io/en/stable/oiiotool.html oiiotool] and [http://www.alembic.io abcecho]. These tools can be run via the {{GafferDocumentationLink|Reference/CommandLineReference/env.html|env}} app.&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env usdview /path/to/file.usda&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env oiiotool /path/to/image.exr&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env abcecho /path/to/file.abc&amp;lt;/code&amp;gt; }}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=607</id>
		<title>Getting started with Gaffer</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=607"/>
		<updated>2025-09-03T04:33:13Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: /* RenderMan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro to Gaffer ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:vimeo|739829903}}&lt;br /&gt;
&lt;br /&gt;
== Installing Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading a release ===&lt;br /&gt;
The latest release is available to download from [https://www.gafferhq.org/download gafferhq.org]. Previous releases can be downloaded from the GitHub [https://github.com/GafferHQ/gaffer/releases releases] page. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Each Gaffer release is a standalone archive that just requires extraction to the location you wish to run Gaffer from. See the {{GafferDocumentationLink|GettingStarted/InstallingGaffer/index.html|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
On Windows, the [https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Microsoft Visual C++ Redistributable] must be installed. If you see errors related to missing VCRUNTIME files such as VCRUNTIME140.dll, the redestributable will need to be downloaded and installed before Gaffer can be launched.&lt;br /&gt;
&lt;br /&gt;
=== 3rd party installers ===&lt;br /&gt;
&lt;br /&gt;
Brian Hanke maintains a Windows installer that downloads and extracts Gaffer releases. It can be downloaded from [https://github.com/BrianHanke/gaffer_windows_installer GitHub].&lt;br /&gt;
&lt;br /&gt;
== Configuring renderers ==&lt;br /&gt;
&lt;br /&gt;
=== Cycles ===&lt;br /&gt;
Gaffer comes pre-installed with Cycles, so no additional configuration is required.&lt;br /&gt;
&lt;br /&gt;
{{ info | To disable Cycles, set the  &amp;lt;code&amp;gt;GAFFERCYCLES_HIDE_UI&amp;lt;/code&amp;gt; environment variable to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
=== Arnold ===&lt;br /&gt;
Gaffer currently supports Arnold &amp;lt;code&amp;gt;7.3.x.x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;7.4.x.x&amp;lt;/code&amp;gt; releases. Earlier versions of Arnold are no longer compatible.&lt;br /&gt;
&lt;br /&gt;
{{ info | Note that Gaffer requires an Arnold SDK release to be installed - a MtoA, HtoA, KtoA etc release will not work. }}&lt;br /&gt;
&lt;br /&gt;
To configure Gaffer to use Arnold, the &amp;lt;code&amp;gt;ARNOLD_ROOT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the Arnold release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-arnold|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== 3Delight ===&lt;br /&gt;
To configure Gaffer to use 3Delight, the &amp;lt;code&amp;gt;DELIGHT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the 3Delight release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-3delight|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== RenderMan ===&lt;br /&gt;
RenderMan support is in active development and can be used in current Gaffer 1.6 releases by:&lt;br /&gt;
&lt;br /&gt;
* Setting the &amp;lt;code&amp;gt;RMANTREE&amp;lt;/code&amp;gt; environment variable to point to the root directory of a RenderMan Pro Server 26.3 installation&lt;br /&gt;
&lt;br /&gt;
== Running Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== GUI Mode ===&lt;br /&gt;
&lt;br /&gt;
Gaffer is launched via a wrapper script found in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, this wrapper is named &amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; on Linux and &amp;lt;code&amp;gt;gaffer.cmd&amp;lt;/code&amp;gt; on Windows&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;C:/software/gaffer-{{latestGafferVersion}}-windows/bin/gaffer.cmd&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
=== Command line execution ===&lt;br /&gt;
&lt;br /&gt;
Gaffer scripts can be executed on the command line via the {{GafferDocumentationLink|Reference/CommandLineReference/execute.html|execute}} app, or dispatched locally or to a render farm via the {{GafferDocumentationLink|Reference/CommandLineReference/dispatch.html|dispatch}} app.&lt;br /&gt;
&lt;br /&gt;
=== Additional utilities ===&lt;br /&gt;
&lt;br /&gt;
A Gaffer release includes a number of additional utility applications in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, such as [https://openusd.org/release/toolset.html#usdview usdview], [https://openimageio.readthedocs.io/en/stable/oiiotool.html oiiotool] and [http://www.alembic.io abcecho]. These tools can be run via the {{GafferDocumentationLink|Reference/CommandLineReference/env.html|env}} app.&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env usdview /path/to/file.usda&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env oiiotool /path/to/image.exr&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env abcecho /path/to/file.abc&amp;lt;/code&amp;gt; }}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=606</id>
		<title>Getting started with Gaffer</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Getting_started_with_Gaffer&amp;diff=606"/>
		<updated>2025-09-03T04:32:47Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: /* Arnold */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro to Gaffer ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:vimeo|739829903}}&lt;br /&gt;
&lt;br /&gt;
== Installing Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading a release ===&lt;br /&gt;
The latest release is available to download from [https://www.gafferhq.org/download gafferhq.org]. Previous releases can be downloaded from the GitHub [https://github.com/GafferHQ/gaffer/releases releases] page. &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Each Gaffer release is a standalone archive that just requires extraction to the location you wish to run Gaffer from. See the {{GafferDocumentationLink|GettingStarted/InstallingGaffer/index.html|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
On Windows, the [https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 Microsoft Visual C++ Redistributable] must be installed. If you see errors related to missing VCRUNTIME files such as VCRUNTIME140.dll, the redestributable will need to be downloaded and installed before Gaffer can be launched.&lt;br /&gt;
&lt;br /&gt;
=== 3rd party installers ===&lt;br /&gt;
&lt;br /&gt;
Brian Hanke maintains a Windows installer that downloads and extracts Gaffer releases. It can be downloaded from [https://github.com/BrianHanke/gaffer_windows_installer GitHub].&lt;br /&gt;
&lt;br /&gt;
== Configuring renderers ==&lt;br /&gt;
&lt;br /&gt;
=== Cycles ===&lt;br /&gt;
Gaffer comes pre-installed with Cycles, so no additional configuration is required.&lt;br /&gt;
&lt;br /&gt;
{{ info | To disable Cycles, set the  &amp;lt;code&amp;gt;GAFFERCYCLES_HIDE_UI&amp;lt;/code&amp;gt; environment variable to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
=== Arnold ===&lt;br /&gt;
Gaffer currently supports Arnold &amp;lt;code&amp;gt;7.3.x.x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;7.4.x.x&amp;lt;/code&amp;gt; releases. Earlier versions of Arnold are no longer compatible.&lt;br /&gt;
&lt;br /&gt;
{{ info | Note that Gaffer requires an Arnold SDK release to be installed - a MtoA, HtoA, KtoA etc release will not work. }}&lt;br /&gt;
&lt;br /&gt;
To configure Gaffer to use Arnold, the &amp;lt;code&amp;gt;ARNOLD_ROOT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the Arnold release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-arnold|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== 3Delight ===&lt;br /&gt;
To configure Gaffer to use 3Delight, the &amp;lt;code&amp;gt;DELIGHT&amp;lt;/code&amp;gt; environment variable must point to the root directory of the 3Delight release to use. See the Gaffer {{GafferDocumentationLink|GettingStarted/ConfiguringGafferForThirdPartyTools/index.html#configuring-gaffer-for-3delight|documentation}} for more information.&lt;br /&gt;
&lt;br /&gt;
=== RenderMan ===&lt;br /&gt;
RenderMan support is in active development and can be tested in current Gaffer 1.5 releases by:&lt;br /&gt;
&lt;br /&gt;
* Setting the &amp;lt;code&amp;gt;RMANTREE&amp;lt;/code&amp;gt; environment variable to point to the root directory of a RenderMan Pro Server 26.3 installation&lt;br /&gt;
* Setting the &amp;lt;code&amp;gt;GAFFERRENDERMAN_FEATURE_PREVIEW&amp;lt;/code&amp;gt; environment variable to a value of &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running Gaffer ==&lt;br /&gt;
&lt;br /&gt;
=== GUI Mode ===&lt;br /&gt;
&lt;br /&gt;
Gaffer is launched via a wrapper script found in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, this wrapper is named &amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; on Linux and &amp;lt;code&amp;gt;gaffer.cmd&amp;lt;/code&amp;gt; on Windows&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;C:/software/gaffer-{{latestGafferVersion}}-windows/bin/gaffer.cmd&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
=== Command line execution ===&lt;br /&gt;
&lt;br /&gt;
Gaffer scripts can be executed on the command line via the {{GafferDocumentationLink|Reference/CommandLineReference/execute.html|execute}} app, or dispatched locally or to a render farm via the {{GafferDocumentationLink|Reference/CommandLineReference/dispatch.html|dispatch}} app.&lt;br /&gt;
&lt;br /&gt;
=== Additional utilities ===&lt;br /&gt;
&lt;br /&gt;
A Gaffer release includes a number of additional utility applications in the &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory, such as [https://openusd.org/release/toolset.html#usdview usdview], [https://openimageio.readthedocs.io/en/stable/oiiotool.html oiiotool] and [http://www.alembic.io abcecho]. These tools can be run via the {{GafferDocumentationLink|Reference/CommandLineReference/env.html|env}} app.&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env usdview /path/to/file.usda&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env oiiotool /path/to/image.exr&amp;lt;/code&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{ info | &amp;lt;code&amp;gt;/opt/gaffer-{{latestGafferVersion}}-linux-gcc11/bin/gaffer env abcecho /path/to/file.abc&amp;lt;/code&amp;gt; }}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Query&amp;diff=605</id>
		<title>Category:Nodes:Query</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Query&amp;diff=605"/>
		<updated>2025-08-30T00:43:40Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Query Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Query&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Query Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Query&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=CameraQuery&amp;diff=604</id>
		<title>CameraQuery</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=CameraQuery&amp;diff=604"/>
		<updated>2025-08-30T00:41:13Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;{{Node |namespace=GafferScene |description=Queries parameters from a camera, creating an output for each query. |categories=Camera, Query }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Node&lt;br /&gt;
|namespace=GafferScene&lt;br /&gt;
|description=Queries parameters from a camera, creating an output for each query.&lt;br /&gt;
|categories=Camera, Query&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=FocalBlur&amp;diff=603</id>
		<title>FocalBlur</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=FocalBlur&amp;diff=603"/>
		<updated>2025-08-30T00:40:27Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;{{Node |namespace=GafferOSL |description=Renders depth of field effects based on a 2D image with a depth channel. |categories=ImageFilter }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Node&lt;br /&gt;
|namespace=GafferOSL&lt;br /&gt;
|description=Renders depth of field effects based on a 2D image with a depth channel.&lt;br /&gt;
|categories=ImageFilter&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=DiskBlur&amp;diff=602</id>
		<title>DiskBlur</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=DiskBlur&amp;diff=602"/>
		<updated>2025-08-30T00:38:48Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;{{Node |namespace=GafferImage |description=A special disk blur node which efficiently supports large radius blurs, and allows for a variable radius. Works by rendering each input pixel as a disk in the output, using special acceleration structures that make rendering large disks fast. Suitable as a building block for focal blur. |categories=ImageFilter }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Node&lt;br /&gt;
|namespace=GafferImage&lt;br /&gt;
|description=A special disk blur node which efficiently supports large radius blurs, and allows for a variable radius. Works by rendering each input pixel as a disk in the output, using special acceleration structures that make rendering large disks fast. Suitable as a building block for focal blur.&lt;br /&gt;
|categories=ImageFilter&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=601</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=601"/>
		<updated>2025-08-30T00:37:48Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.6.0.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=600</id>
		<title>Gaffer 1.6 release</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=600"/>
		<updated>2025-08-30T00:37:06Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a collated and ordered list of [https://github.com/GafferHQ/gaffer/blob/1.6_maintenance/Changes.md changelog] entries for all Gaffer 1.6.x.x releases up to and including Gaffer &#039;&#039;&#039;1.6.0.0&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;DiskBlur&#039;&#039;&#039; : Added image node for doing fast variable-radius blur.&lt;br /&gt;
* &#039;&#039;&#039;FocalBlur&#039;&#039;&#039; : Added image node for approximating depth of field effects based on an image with a depth channel.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Rewrote using the same framework as LightEditor, AttributeEditor and RenderPassEditor.&lt;br /&gt;
** Added EditScope support, with in-place editing of attributes, options and shader parameters. Editing for other properties is planned for future versions.&lt;br /&gt;
** Improved comparison abilities, including the added ability to compare two render passes.&lt;br /&gt;
** Added subsections for options and attributes, splitting them by category.&lt;br /&gt;
** Added column resizing, including automatic resizing to show long attribute names.&lt;br /&gt;
** Added inspection of all shaders and parameters in shader networks.&lt;br /&gt;
** Added more detailed inspection of meshes and curves.&lt;br /&gt;
** Added more detailed inspection of primitive variables.&lt;br /&gt;
* &#039;&#039;&#039;ImageSelectionTool&#039;&#039;&#039; :&lt;br /&gt;
** Added new tool that allows selecting scene paths based on an image. Works with both Catalogue images and images on disk. Has two requirements : an&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; AOV (added using the&amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; preset on an&amp;lt;code&amp;gt;Outputs&amp;lt;/code&amp;gt; node), and a render manifest (added using StandardOptions &amp;gt; Render Manifest &amp;gt; File Path ).&lt;br /&gt;
** Also supports picking instance IDs, using an&amp;lt;code&amp;gt;instanceID&amp;lt;/code&amp;gt; aov. Supported when rendering an instancer that is encapsulated ( USD instancers rendered to Arnold are encapsulated by default ).&lt;br /&gt;
* &#039;&#039;&#039;ColorInspectorTool&#039;&#039;&#039; : Moved the Viewer&#039;s colour inspectors into a dedicated tool, selected from the toolbar on the left.&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039; : Added the ability to use&amp;lt;code&amp;gt;pointcloud_search()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;pointcloud_get()&amp;lt;/code&amp;gt; to query geometry from arbitrary scene locations.&lt;br /&gt;
* &#039;&#039;&#039;CameraQuery&#039;&#039;&#039; : Added a new node to query camera parameters (#6431).&lt;br /&gt;
&lt;br /&gt;
== Improvements ==&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Optimised case where all attributes are deleted. The input attributes are no longer accessed at all in this case.&lt;br /&gt;
* &#039;&#039;&#039;ShaderAssignment&#039;&#039;&#039; : The&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable is now available in Switches connected directly to the&amp;lt;code&amp;gt;ShaderAssignment.shader&amp;lt;/code&amp;gt; input. This allows different shaders to be assigned to different locations using a single ShaderAssignment node. Please note that the&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable remains unavailable to the individual shader nodes themselves for performance reasons.&lt;br /&gt;
* &#039;&#039;&#039;3Delight&#039;&#039;&#039;, &#039;&#039;&#039;Cycles&#039;&#039;&#039;, &#039;&#039;&#039;OpenGL&#039;&#039;&#039; : Added support for custom EXR metadata, using&amp;lt;code&amp;gt;header:*&amp;lt;/code&amp;gt; parameters on the output definition.&lt;br /&gt;
* &#039;&#039;&#039;RenderManAttributes&#039;&#039;&#039;, &#039;&#039;&#039;RenderManOptions&#039;&#039;&#039; : Plugs now respect minimum and maximum values specified by RenderMan.&lt;br /&gt;
* &#039;&#039;&#039;RenderManShader&#039;&#039;&#039; : Improved GraphEditor labels for parameter RGB and XYZ components.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Improved responsiveness for Viewer camera updates when using Cycles as the viewport renderer. One benchmark shows around a 10x improvement in frame rate.&lt;br /&gt;
** Added support for&amp;lt;code&amp;gt;layerName&amp;lt;/code&amp;gt; parameter in outputs, to control the naming of channels in EXR outputs.&lt;br /&gt;
* &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; :&lt;br /&gt;
** Added render manifest option.&lt;br /&gt;
** Added&amp;lt;code&amp;gt;render:cameraInclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:cameraExclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:matteInclusions&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;render:matteExclusions&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;CyclesMeshLight&#039;&#039;&#039; : Improved presentation of&amp;lt;code&amp;gt;cameraVisibility&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;lightGroup&amp;lt;/code&amp;gt; plugs in the Node Editor.&lt;br /&gt;
* &#039;&#039;&#039;VisualiserTool&#039;&#039;&#039; : Added visualisation of labels for uniform primitive variables, face indices and curve indices.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Improved formatting of Box and Matrix values.&lt;br /&gt;
** Improved performance when showing colour values.&lt;br /&gt;
** Added support for showing spline values.&lt;br /&gt;
* &#039;&#039;&#039;GafferUI&#039;&#039;&#039; : Added support for drag and dropping numeric vector data onto numeric vector plugs of compatible types ( For example, dropping a list of ints onto a FloatVectorDataPlug ).&lt;br /&gt;
* &#039;&#039;&#039;Switch&#039;&#039;&#039; : Optimised disabled switches using a direct internal connection, even when the&amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; is not constant.&lt;br /&gt;
* &#039;&#039;&#039;RenderMan&#039;&#039;&#039; : Added dedicated viewport visualisers for RenderMan lights.&lt;br /&gt;
* &#039;&#039;&#039;Viewer&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;Add&amp;lt;/code&amp;gt; image comparison mode.&lt;br /&gt;
* &#039;&#039;&#039;LocaliseAttributes&#039;&#039;&#039; : Added support for localising global attributes, controlled by the new&amp;lt;code&amp;gt;includeGlobalAttributes&amp;lt;/code&amp;gt; plug.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039;, &#039;&#039;&#039;ShaderTweaks&#039;&#039;&#039; : Global attributes are now localised when&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039;, &#039;&#039;&#039;ShaderQuery&#039;&#039;&#039; : Global attributes are now queried when&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;SphereLevelSet&#039;&#039;&#039; : Improved performance when evaluating the bounding box.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassMenu&#039;&#039;&#039; : Added a search menu which displays only the render passes matching the search text. The search menu can be disabled by registering the following metadata in a startup file.&amp;lt;code&amp;gt;Gaffer.Metadata.registerValue( Gaffer.ScriptNode, &amp;quot;variables.renderPass.value&amp;quot;, &amp;quot;renderPassPlugValueWidget:searchable&amp;quot;, False )&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039;, &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; : Improved presentation of VectorData types in the Inspect popup.&lt;br /&gt;
* &#039;&#039;&#039;CompoundDataPlugValueWidget&#039;&#039;&#039; : Removed unnecessary nesting from the menu for adding plugs.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Improved readability of shader node names as they appear in statistics and&amp;lt;code&amp;gt;.ass&amp;lt;/code&amp;gt; files. They are now formatted as&amp;lt;code&amp;gt;shader:{handle}:{uniqueId}&amp;lt;/code&amp;gt; where&amp;lt;code&amp;gt;{handle}&amp;lt;/code&amp;gt; is the Gaffer node name of the assigned shader, or if loaded from USD, the prim name.&lt;br /&gt;
* &#039;&#039;&#039;PrimitiveInspector&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; widget for selecting the location to be inspected.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : The widget for the&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; plug can now be customised using&amp;lt;code&amp;gt;plugValueWidget:type&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; : Improved formatting of TypedVectorData.&lt;br /&gt;
&lt;br /&gt;
== Fixes ==&lt;br /&gt;
* &#039;&#039;&#039;LocalDispatcher&#039;&#039;&#039;, &#039;&#039;&#039;SystemCommand&#039;&#039;&#039;,&amp;lt;code&amp;gt;gaffer env&amp;lt;/code&amp;gt; : Fixed unwanted upper-casing of environment variable names on Windows (#6371).&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of attribute plugs now correctly reflect the default behaviour of the OpenGL renderer.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Fixed default behaviour of&amp;lt;code&amp;gt;ai:abort_on_license_fail&amp;lt;/code&amp;gt; option with Arnold 7.3 and above.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Fixed bugs handling identical cameras with different transforms.&lt;br /&gt;
** Fixed handling of&amp;lt;code&amp;gt;cycles:volume_precision&amp;lt;/code&amp;gt; attribute, which was previously being ignored.&lt;br /&gt;
** Fixed bugs handling unknown VDB grid types.&lt;br /&gt;
** Fixed potential crash rendering VDB objects.&lt;br /&gt;
** Fixed potential threading-related crashes.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed default values displayed for&amp;lt;code&amp;gt;dl:oversampling&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;dl:quality.shadingsamples&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;PlugLayout&#039;&#039;&#039; : Fixed bug resolving&amp;lt;code&amp;gt;layout:index&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Stopped polluting the ScriptNode context with&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; variables. Warnings are now emitted by the UI if anything else causes similar pollution.&lt;br /&gt;
* &#039;&#039;&#039;Checkerboard&#039;&#039;&#039; : Fixed crash when evaluated for non-existent channel name.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Prevented emission of&amp;lt;code&amp;gt;updateFinishedSignal()&amp;lt;/code&amp;gt; when a new update is pending anyway.&lt;br /&gt;
** Fixed potential threading-related crash.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed missing history entries when two edits have the same source plug.&lt;br /&gt;
** Fixed potential crashes in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed potential UI lag in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed flickering in history window when scrubbing the timeline.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed error when deleting a pass while a history window was open for it.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : Fixed handling of keyword constructor arguments. In particular this meant that&amp;lt;code&amp;gt;parenting&amp;lt;/code&amp;gt; arguments did not work.&lt;br /&gt;
* &#039;&#039;&#039;ScenePathPlugValueWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed context used to evaluate the scene. This is now focus-aware, so the scene browser only shows locations that are available with respect to the current focus.&lt;br /&gt;
** Fixed bugs that prevented usage in&amp;lt;code&amp;gt;Editor.Settings&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039; : Fixed bug reading USD cameras without authored shutter attributes. Previously, the loaded camera would have an unwanted shutter parameter, but now the shutter parameter is correctly omitted.&lt;br /&gt;
* &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Fixed bug writing cameras without a shutter parameter to USD. Previously shutter attributes were authored with default values, but now the shutter attributes are not authored at all.&lt;br /&gt;
* &#039;&#039;&#039;ImageReader&#039;&#039;&#039; : Fixed color-space handling for secondary RGB layers. Previously color transformations were only being applied to the main&amp;lt;code&amp;gt;RGB&amp;lt;/code&amp;gt; channels and not to&amp;lt;code&amp;gt;someLayer.RGB&amp;lt;/code&amp;gt; (#6524).&lt;br /&gt;
* &#039;&#039;&#039;ContextQuery&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;Create Context Query...&amp;lt;/code&amp;gt; menu item from plugs where it was not relevant.&lt;br /&gt;
* &#039;&#039;&#039;Menu&#039;&#039;&#039; : Executing a non-searchable menu item from a searchable menu no longer causes it to appear as the last used action in the menu&#039;s search field.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed ordering of&amp;lt;code&amp;gt;selectionChangedSignal()&amp;lt;/code&amp;gt; emission from&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt; call. It is now emitted when&amp;lt;code&amp;gt;getColumns()&amp;lt;/code&amp;gt; returns the new columns, not the old ones.&lt;br /&gt;
** Fixed unwanted vertical scrolling caused by&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Columns set to automatically stretch now equally share available space when a PathListingWidget&#039;s columns are updated via&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed unwanted vertical scrolling when switching tabs.&lt;br /&gt;
** Fixed flickering when switching tabs.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
* &#039;&#039;&#039;Gaffer module&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;environment()&amp;lt;/code&amp;gt; method, returning a dictionary containing all current environment variables. Unlike&amp;lt;code&amp;gt;os.environ&amp;lt;/code&amp;gt;, this preserves case on Windows.&lt;br /&gt;
* &#039;&#039;&#039;GafferScene&#039;&#039;&#039;::RenderManifest : Added class for representing mapping of ids to paths in renders. Supports reading EXR and cryptomatte manifests, and writing EXR manifests.&lt;br /&gt;
* &#039;&#039;&#039;Metadata&#039;&#039;&#039; :&lt;br /&gt;
** Added&amp;lt;code&amp;gt;registerValues()&amp;lt;/code&amp;gt; function that registers multiple metadata entries from a dictionary of string targets.&lt;br /&gt;
** Updated&amp;lt;code&amp;gt;targetsWithMetadata()&amp;lt;/code&amp;gt; function to support matching multiple targets.&lt;br /&gt;
* &#039;&#039;&#039;MetadataAlgo&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;createPlugFromMetadata()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
* &#039;&#039;&#039;ImageGadget&#039;&#039;&#039; : Added support for showing selected and highlighted ids. Controlled using&amp;lt;code&amp;gt;setIDChannel&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;setSelectedIDs&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;setHighlightID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;ShadingEngine&#039;&#039;&#039; : Added support for passing custom pointclouds to the&amp;lt;code&amp;gt;shade()&amp;lt;/code&amp;gt; call.&lt;br /&gt;
* &#039;&#039;&#039;SceneAlgo&#039;&#039;&#039; :&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now always applies the&amp;lt;code&amp;gt;render:overscan[Top/Bottom/Left/Right]&amp;lt;/code&amp;gt; options to the camera if they exist in the scene globals.&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now applies the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option to the&amp;lt;code&amp;gt;depthOfField&amp;lt;/code&amp;gt; camera parameter. The&amp;lt;code&amp;gt;fStop&amp;lt;/code&amp;gt; camera parameter is no longer overridden to&amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; when the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option is&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; or not specified.&lt;br /&gt;
* &#039;&#039;&#039;ScenePlug&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;withGlobalAttributes&amp;lt;/code&amp;gt; arguments to&amp;lt;code&amp;gt;fullAttributes()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;fullAttributesHash()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;VectorDataWidget&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;maximumVisibleRows&amp;lt;/code&amp;gt; argument.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;contextProperty()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; :&lt;br /&gt;
** Removed support for Arnold 7.2.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;GafferArnoldUI.GPUCache.populateGPUCache()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldAttributes&#039;&#039;&#039;, &#039;&#039;&#039;CyclesAttributes&#039;&#039;&#039;, &#039;&#039;&#039;DelightAttributes&#039;&#039;&#039;, &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039;, &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039;, &#039;&#039;&#039;USDAttributes&#039;&#039;&#039; : Attributes plugs have been renamed to match the name of their attribute (e.g.&amp;lt;code&amp;gt;attributes.visibility&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;attributes.scene:visible&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039;, &#039;&#039;&#039;CyclesOptions&#039;&#039;&#039;, &#039;&#039;&#039;DelightOptions&#039;&#039;&#039;, &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; : Option plugs have been renamed to match the name of their option (e.g.&amp;lt;code&amp;gt;options.renderCamera&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;options.render:camera&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;ai:texture_max_memory_MB&amp;lt;/code&amp;gt; plug to 4096 to match Arnold&#039;s default.&lt;br /&gt;
* &#039;&#039;&#039;StandardNodule&#039;&#039;&#039; : Removed deprecated&amp;lt;code&amp;gt;setCompatibleLabelsVisible()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Changed base class and marked as&amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Wrapper&#039;&#039;&#039; : The&amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; wrapper on Linux no longer allows a custom Python build to be used. If you wish to use a custom Python, call&amp;lt;code&amp;gt;python _gaffer.py&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;RenderPasses&#039;&#039;&#039;, &#039;&#039;&#039;DeleteRenderPasses&#039;&#039;&#039; : Renamed TypeId enum values to&amp;lt;code&amp;gt;RenderPassesTypeId&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;DeleteRenderPassesTypeId&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of the attribute plugs authoring the&amp;lt;code&amp;gt;gl:primitive:bound&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:outline&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:points&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:pointColor&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:wireframe&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;gl:primitive:wireframeColor&amp;lt;/code&amp;gt; attributes have changed to match the default behaviour of the OpenGL renderer. Scripts loaded from previous Gaffer versions with these plugs enabled and set to the default value will see a difference in OpenGL renders.&lt;br /&gt;
* &#039;&#039;&#039;SceneTestCase&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;assertBoxesEqual()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;assertBoxesAlmostEqual()&amp;lt;/code&amp;gt; methods.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;pathForID()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;pathsForIDs()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;idForPath()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;idsForPaths()&amp;lt;/code&amp;gt;. Use&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;Catalogue&#039;&#039;&#039;, &#039;&#039;&#039;CatalogueSelect&#039;&#039;&#039;, &#039;&#039;&#039;Display&#039;&#039;&#039; : Moved from GafferImage module to GafferScene.&lt;br /&gt;
* &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plug to &amp;quot;defaultLights&amp;quot;. Scripts loaded from earlier Gaffer versions containing&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plugs set to the previous default of &amp;quot;&amp;quot; will need to be updated as those plugs will now default to &amp;quot;defaultLights&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ImageView&#039;&#039;&#039; : Changed image comparison hotkey from &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; to &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;K&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; ( &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; now selects the selection tool in the image view, same as in the scene view ).&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039;, &#039;&#039;&#039;OSLImage&#039;&#039;&#039;, &#039;&#039;&#039;Expression&#039;&#039;&#039; : Removed support for file-based pointclouds.&lt;br /&gt;
* &#039;&#039;&#039;ContextAlgo&#039;&#039;&#039; : Removed deprecated API. Use ScriptNodeAlgo instead, which has been available from Gaffer 1.4.13.0 onwards.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Reimplemented using Metadata rather than Context variables for storage. Use the ScriptNodeAlgo API instead of attempting direct access to&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; context variables.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039;, &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Changed handling of missing shutter parameters. See Fixes section for more detail.&lt;br /&gt;
* &#039;&#039;&#039;StandardLightVisualiser&#039;&#039;&#039; : Removed protected methods for drawing visualiser elements. These are now part of&amp;lt;code&amp;gt;GafferSceneUI::Private::LightVisualiserAlgo&amp;lt;/code&amp;gt;. This namespace can be used by light visualisers, but is currently&amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; while the API details are being resolved.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039; : Tweaks with&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; enabled and a mode of&amp;lt;code&amp;gt;CreateIfMissing&amp;lt;/code&amp;gt; will now not create an attribute if it is missing from the scene hierarchy, but exists in the globals.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039; : Queries with&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; enabled will now return a result when querying an attribute that does not exist in the scene hierarchy, but does exist in the globals.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Changed the naming of shader nodes in the generated Arnold scene.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;inspectionContext()&amp;lt;/code&amp;gt; method. Use&amp;lt;code&amp;gt;contextProperty( &amp;quot;inspector:context&amp;quot; )&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;setTargetPaths()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;getTargetPaths()&amp;lt;/code&amp;gt; methods. Use the&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;compare.location&amp;lt;/code&amp;gt; settings plugs instead.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;registerSection()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;Diff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;SideBySideDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;TextDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Row&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Inspector&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffRow&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffColumn&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Section&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;LocationSection&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;HistorySection&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;SetsSection&amp;lt;/code&amp;gt; classes.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
* &#039;&#039;&#039;Boost&#039;&#039;&#039; : Updated to version 1.82.0.&lt;br /&gt;
* &#039;&#039;&#039;Cortex&#039;&#039;&#039; : Updated to version 10.6.0.0a1.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;FreeType&#039;&#039;&#039; : Updated to version 2.13.3.&lt;br /&gt;
* &#039;&#039;&#039;LibRaw&#039;&#039;&#039; : Updated to version 0.21.4.&lt;br /&gt;
* &#039;&#039;&#039;MaterialX&#039;&#039;&#039; : Updated to version 1.39.3.&lt;br /&gt;
* &#039;&#039;&#039;Minizip&#039;&#039;&#039; : Updated to version 3.0.10.&lt;br /&gt;
* &#039;&#039;&#039;OpenColorIO&#039;&#039;&#039; : Updated to version 2.3.2.&lt;br /&gt;
* &#039;&#039;&#039;OpenEXR&#039;&#039;&#039; : Updated to version 3.2.4.&lt;br /&gt;
* &#039;&#039;&#039;OpenImageIO&#039;&#039;&#039; : Updated to version 3.0.6.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenShadingLanguage&#039;&#039;&#039; : Updated to version 1.14.5.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenSubdiv&#039;&#039;&#039; : Updated to version 3.6.0.&lt;br /&gt;
* &#039;&#039;&#039;OpenVDB&#039;&#039;&#039; : Updated to version 11.0.0.&lt;br /&gt;
* &#039;&#039;&#039;Python&#039;&#039;&#039; : Updated to version 3.11.12.&lt;br /&gt;
* &#039;&#039;&#039;PySide&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt.py&#039;&#039;&#039; : Updated to version 1.4.6.&lt;br /&gt;
* &#039;&#039;&#039;USD&#039;&#039;&#039; : Updated to version 25.05.01.&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=582</id>
		<title>Gaffer 1.6 release</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=582"/>
		<updated>2025-08-16T17:58:00Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;Note : Gaffer 1.6 is currently in alpha, with a stable release expected for September 2025.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;DiskBlur&#039;&#039;&#039; : Added image node for doing fast variable-radius blur. Will be used as core of upcoming focal blur node.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Rewrote using the same framework as LightEditor, AttributeEditor and RenderPassEditor.&lt;br /&gt;
** Added EditScope support, with in-place editing of attributes, options and shader parameters. Editing for other properties is planned for future versions.&lt;br /&gt;
** Improved comparison abilities, including the added ability to compare two render passes.&lt;br /&gt;
** Added subsections for options and attributes, splitting them by category.&lt;br /&gt;
** Added column resizing, including automatic resizing to show long attribute names.&lt;br /&gt;
** Added inspection of all shaders and parameters in shader networks.&lt;br /&gt;
** Added more detailed inspection of meshes and curves.&lt;br /&gt;
** Added more detailed inspection of primitive variables.&lt;br /&gt;
* &#039;&#039;&#039;ImageSelectionTool&#039;&#039;&#039; :&lt;br /&gt;
** Added new tool that allows selecting scene paths based on an image. Works with both Catalogue images and images on disk. Has two requirements : an&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; AOV (added using the&amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; preset on an&amp;lt;code&amp;gt;Outputs&amp;lt;/code&amp;gt; node), and a render manifest (added using StandardOptions &amp;gt; Render Manifest &amp;gt; File Path ).&lt;br /&gt;
** Also supports picking instance IDs, using an&amp;lt;code&amp;gt;instanceID&amp;lt;/code&amp;gt; aov. Supported when rendering an instancer that is encapsulated ( USD instancers rendered to Arnold are encapsulated by default ).&lt;br /&gt;
* &#039;&#039;&#039;ColorInspectorTool&#039;&#039;&#039; : Moved the Viewer&#039;s colour inspectors into a dedicated tool, selected from the toolbar on the left.&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039; : Added the ability to use&amp;lt;code&amp;gt;pointcloud_search()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;pointcloud_get()&amp;lt;/code&amp;gt; to query geometry from arbitrary scene locations.&lt;br /&gt;
* &#039;&#039;&#039;CameraQuery&#039;&#039;&#039; : Added a new node to query camera parameters (#6431).&lt;br /&gt;
&lt;br /&gt;
== Improvements ==&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Optimised case where all attributes are deleted. The input attributes are no longer accessed at all in this case.&lt;br /&gt;
* &#039;&#039;&#039;ShaderAssignment&#039;&#039;&#039; : The&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable is now available in Switches connected directly to the&amp;lt;code&amp;gt;ShaderAssignment.shader&amp;lt;/code&amp;gt; input. This allows different shaders to be assigned to different locations using a single ShaderAssignment node. Please note that the&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable remains unavailable to the individual shader nodes themselves for performance reasons.&lt;br /&gt;
* &#039;&#039;&#039;3Delight&#039;&#039;&#039;, &#039;&#039;&#039;Cycles&#039;&#039;&#039;, &#039;&#039;&#039;OpenGL&#039;&#039;&#039; : Added support for custom EXR metadata, using&amp;lt;code&amp;gt;header:*&amp;lt;/code&amp;gt; parameters on the output definition.&lt;br /&gt;
* &#039;&#039;&#039;RenderManAttributes&#039;&#039;&#039;, &#039;&#039;&#039;RenderManOptions&#039;&#039;&#039; : Plugs now respect minimum and maximum values specified by RenderMan.&lt;br /&gt;
* &#039;&#039;&#039;RenderManShader&#039;&#039;&#039; : Improved GraphEditor labels for parameter RGB and XYZ components.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Improved responsiveness for Viewer camera updates when using Cycles as the viewport renderer. One benchmark shows around a 10x improvement in frame rate.&lt;br /&gt;
** Added support for&amp;lt;code&amp;gt;layerName&amp;lt;/code&amp;gt; parameter in outputs, to control the naming of channels in EXR outputs.&lt;br /&gt;
* &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; :&lt;br /&gt;
** Added render manifest option.&lt;br /&gt;
** Added&amp;lt;code&amp;gt;render:cameraInclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:cameraExclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:matteInclusions&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;render:matteExclusions&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;CyclesMeshLight&#039;&#039;&#039; : Improved presentation of&amp;lt;code&amp;gt;cameraVisibility&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;lightGroup&amp;lt;/code&amp;gt; plugs in the Node Editor.&lt;br /&gt;
* &#039;&#039;&#039;VisualiserTool&#039;&#039;&#039; : Added visualisation of labels for uniform primitive variables, face indices and curve indices.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Improved formatting of Box and Matrix values.&lt;br /&gt;
** Improved performance when showing colour values.&lt;br /&gt;
** Added support for showing spline values.&lt;br /&gt;
* &#039;&#039;&#039;GafferUI&#039;&#039;&#039; : Added support for drag and dropping numeric vector data onto numeric vector plugs of compatible types ( For example, dropping a list of ints onto a FloatVectorDataPlug ).&lt;br /&gt;
* &#039;&#039;&#039;Switch&#039;&#039;&#039; : Optimised disabled switches using a direct internal connection, even when the&amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; is not constant.&lt;br /&gt;
* &#039;&#039;&#039;RenderMan&#039;&#039;&#039; : Added dedicated viewport visualisers for RenderMan lights.&lt;br /&gt;
* &#039;&#039;&#039;Viewer&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;Add&amp;lt;/code&amp;gt; image comparison mode.&lt;br /&gt;
* &#039;&#039;&#039;LocaliseAttributes&#039;&#039;&#039; : Added support for localising global attributes, controlled by the new&amp;lt;code&amp;gt;includeGlobalAttributes&amp;lt;/code&amp;gt; plug.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039;, &#039;&#039;&#039;ShaderTweaks&#039;&#039;&#039; : Global attributes are now localised when&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039;, &#039;&#039;&#039;ShaderQuery&#039;&#039;&#039; : Global attributes are now queried when&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;SphereLevelSet&#039;&#039;&#039; : Improved performance when evaluating the bounding box.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassMenu&#039;&#039;&#039; : Added a search menu which displays only the render passes matching the search text. The search menu can be disabled by registering the following metadata in a startup file.&amp;lt;code&amp;gt;Gaffer.Metadata.registerValue( Gaffer.ScriptNode, &amp;quot;variables.renderPass.value&amp;quot;, &amp;quot;renderPassPlugValueWidget:searchable&amp;quot;, False )&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039;, &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; : Improved presentation of VectorData types in the Inspect popup.&lt;br /&gt;
* &#039;&#039;&#039;CompoundDataPlugValueWidget&#039;&#039;&#039; : Removed unnecessary nesting from the menu for adding plugs.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Improved readability of shader node names as they appear in statistics and&amp;lt;code&amp;gt;.ass&amp;lt;/code&amp;gt; files. They are now formatted as&amp;lt;code&amp;gt;shader:{handle}:{uniqueId}&amp;lt;/code&amp;gt; where&amp;lt;code&amp;gt;{handle}&amp;lt;/code&amp;gt; is the Gaffer node name of the assigned shader, or if loaded from USD, the prim name.&lt;br /&gt;
* &#039;&#039;&#039;PrimitiveInspector&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; widget for selecting the location to be inspected.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : The widget for the&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; plug can now be customised using&amp;lt;code&amp;gt;plugValueWidget:type&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; : Improved formatting of TypedVectorData.&lt;br /&gt;
&lt;br /&gt;
== Fixes ==&lt;br /&gt;
* &#039;&#039;&#039;LocalDispatcher&#039;&#039;&#039;, &#039;&#039;&#039;SystemCommand&#039;&#039;&#039;,&amp;lt;code&amp;gt;gaffer env&amp;lt;/code&amp;gt; : Fixed unwanted upper-casing of environment variable names on Windows (#6371).&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of attribute plugs now correctly reflect the default behaviour of the OpenGL renderer.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Fixed default behaviour of&amp;lt;code&amp;gt;ai:abort_on_license_fail&amp;lt;/code&amp;gt; option with Arnold 7.3 and above.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Fixed bugs handling identical cameras with different transforms.&lt;br /&gt;
** Fixed handling of&amp;lt;code&amp;gt;cycles:volume_precision&amp;lt;/code&amp;gt; attribute, which was previously being ignored.&lt;br /&gt;
** Fixed bugs handling unknown VDB grid types.&lt;br /&gt;
** Fixed potential crash rendering VDB objects.&lt;br /&gt;
** Fixed potential threading-related crashes.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed default values displayed for&amp;lt;code&amp;gt;dl:oversampling&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;dl:quality.shadingsamples&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;PlugLayout&#039;&#039;&#039; : Fixed bug resolving&amp;lt;code&amp;gt;layout:index&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Stopped polluting the ScriptNode context with&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; variables. Warnings are now emitted by the UI if anything else causes similar pollution.&lt;br /&gt;
* &#039;&#039;&#039;Checkerboard&#039;&#039;&#039; : Fixed crash when evaluated for non-existent channel name.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Prevented emission of&amp;lt;code&amp;gt;updateFinishedSignal()&amp;lt;/code&amp;gt; when a new update is pending anyway.&lt;br /&gt;
** Fixed potential threading-related crash.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed missing history entries when two edits have the same source plug.&lt;br /&gt;
** Fixed potential crashes in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed potential UI lag in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed flickering in history window when scrubbing the timeline.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed error when deleting a pass while a history window was open for it.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : Fixed handling of keyword constructor arguments. In particular this meant that&amp;lt;code&amp;gt;parenting&amp;lt;/code&amp;gt; arguments did not work.&lt;br /&gt;
* &#039;&#039;&#039;ScenePathPlugValueWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed context used to evaluate the scene. This is now focus-aware, so the scene browser only shows locations that are available with respect to the current focus.&lt;br /&gt;
** Fixed bugs that prevented usage in&amp;lt;code&amp;gt;Editor.Settings&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039; : Fixed bug reading USD cameras without authored shutter attributes. Previously, the loaded camera would have an unwanted shutter parameter, but now the shutter parameter is correctly omitted.&lt;br /&gt;
* &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Fixed bug writing cameras without a shutter parameter to USD. Previously shutter attributes were authored with default values, but now the shutter attributes are not authored at all.&lt;br /&gt;
* &#039;&#039;&#039;ImageReader&#039;&#039;&#039; : Fixed color-space handling for secondary RGB layers. Previously color transformations were only being applied to the main&amp;lt;code&amp;gt;RGB&amp;lt;/code&amp;gt; channels and not to&amp;lt;code&amp;gt;someLayer.RGB&amp;lt;/code&amp;gt; (#6524).&lt;br /&gt;
* &#039;&#039;&#039;ContextQuery&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;Create Context Query...&amp;lt;/code&amp;gt; menu item from plugs where it was not relevant.&lt;br /&gt;
* &#039;&#039;&#039;Menu&#039;&#039;&#039; : Executing a non-searchable menu item from a searchable menu no longer causes it to appear as the last used action in the menu&#039;s search field.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed ordering of&amp;lt;code&amp;gt;selectionChangedSignal()&amp;lt;/code&amp;gt; emission from&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt; call. It is now emitted when&amp;lt;code&amp;gt;getColumns()&amp;lt;/code&amp;gt; returns the new columns, not the old ones.&lt;br /&gt;
** Fixed unwanted vertical scrolling caused by&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Columns set to automatically stretch now equally share available space when a PathListingWidget&#039;s columns are updated via&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed unwanted vertical scrolling when switching tabs.&lt;br /&gt;
** Fixed flickering when switching tabs.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
* &#039;&#039;&#039;Gaffer module&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;environment()&amp;lt;/code&amp;gt; method, returning a dictionary containing all current environment variables. Unlike&amp;lt;code&amp;gt;os.environ&amp;lt;/code&amp;gt;, this preserves case on Windows.&lt;br /&gt;
* &#039;&#039;&#039;GafferScene&#039;&#039;&#039;::RenderManifest : Added class for representing mapping of ids to paths in renders. Supports reading EXR and cryptomatte manifests, and writing EXR manifests.&lt;br /&gt;
* &#039;&#039;&#039;Metadata&#039;&#039;&#039; :&lt;br /&gt;
** Added&amp;lt;code&amp;gt;registerValues()&amp;lt;/code&amp;gt; function that registers multiple metadata entries from a dictionary of string targets.&lt;br /&gt;
** Updated&amp;lt;code&amp;gt;targetsWithMetadata()&amp;lt;/code&amp;gt; function to support matching multiple targets.&lt;br /&gt;
* &#039;&#039;&#039;MetadataAlgo&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;createPlugFromMetadata()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
* &#039;&#039;&#039;ImageGadget&#039;&#039;&#039; : Added support for showing selected and highlighted ids. Controlled using&amp;lt;code&amp;gt;setIDChannel&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;setSelectedIDs&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;setHighlightID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;ShadingEngine&#039;&#039;&#039; : Added support for passing custom pointclouds to the&amp;lt;code&amp;gt;shade()&amp;lt;/code&amp;gt; call.&lt;br /&gt;
* &#039;&#039;&#039;SceneAlgo&#039;&#039;&#039; :&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now always applies the&amp;lt;code&amp;gt;render:overscan[Top/Bottom/Left/Right]&amp;lt;/code&amp;gt; options to the camera if they exist in the scene globals.&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now applies the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option to the&amp;lt;code&amp;gt;depthOfField&amp;lt;/code&amp;gt; camera parameter. The&amp;lt;code&amp;gt;fStop&amp;lt;/code&amp;gt; camera parameter is no longer overridden to&amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; when the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option is&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; or not specified.&lt;br /&gt;
* &#039;&#039;&#039;ScenePlug&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;withGlobalAttributes&amp;lt;/code&amp;gt; arguments to&amp;lt;code&amp;gt;fullAttributes()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;fullAttributesHash()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;VectorDataWidget&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;maximumVisibleRows&amp;lt;/code&amp;gt; argument.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;contextProperty()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; :&lt;br /&gt;
** Removed support for Arnold 7.2.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;GafferArnoldUI.GPUCache.populateGPUCache()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldAttributes&#039;&#039;&#039;, &#039;&#039;&#039;CyclesAttributes&#039;&#039;&#039;, &#039;&#039;&#039;DelightAttributes&#039;&#039;&#039;, &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039;, &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039;, &#039;&#039;&#039;USDAttributes&#039;&#039;&#039; : Attributes plugs have been renamed to match the name of their attribute (e.g.&amp;lt;code&amp;gt;attributes.visibility&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;attributes.scene:visible&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039;, &#039;&#039;&#039;CyclesOptions&#039;&#039;&#039;, &#039;&#039;&#039;DelightOptions&#039;&#039;&#039;, &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; : Option plugs have been renamed to match the name of their option (e.g.&amp;lt;code&amp;gt;options.renderCamera&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;options.render:camera&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;ai:texture_max_memory_MB&amp;lt;/code&amp;gt; plug to 4096 to match Arnold&#039;s default.&lt;br /&gt;
* &#039;&#039;&#039;StandardNodule&#039;&#039;&#039; : Removed deprecated&amp;lt;code&amp;gt;setCompatibleLabelsVisible()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Changed base class and marked as&amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Wrapper&#039;&#039;&#039; : The&amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; wrapper on Linux no longer allows a custom Python build to be used. If you wish to use a custom Python, call&amp;lt;code&amp;gt;python _gaffer.py&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;RenderPasses&#039;&#039;&#039;, &#039;&#039;&#039;DeleteRenderPasses&#039;&#039;&#039; : Renamed TypeId enum values to&amp;lt;code&amp;gt;RenderPassesTypeId&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;DeleteRenderPassesTypeId&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of the attribute plugs authoring the&amp;lt;code&amp;gt;gl:primitive:bound&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:outline&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:points&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:pointColor&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:wireframe&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;gl:primitive:wireframeColor&amp;lt;/code&amp;gt; attributes have changed to match the default behaviour of the OpenGL renderer. Scripts loaded from previous Gaffer versions with these plugs enabled and set to the default value will see a difference in OpenGL renders.&lt;br /&gt;
* &#039;&#039;&#039;SceneTestCase&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;assertBoxesEqual()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;assertBoxesAlmostEqual()&amp;lt;/code&amp;gt; methods.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;pathForID()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;pathsForIDs()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;idForPath()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;idsForPaths()&amp;lt;/code&amp;gt;. Use&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;Catalogue&#039;&#039;&#039;, &#039;&#039;&#039;CatalogueSelect&#039;&#039;&#039;, &#039;&#039;&#039;Display&#039;&#039;&#039; : Moved from GafferImage module to GafferScene.&lt;br /&gt;
* &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plug to &amp;quot;defaultLights&amp;quot;. Scripts loaded from earlier Gaffer versions containing&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plugs set to the previous default of &amp;quot;&amp;quot; will need to be updated as those plugs will now default to &amp;quot;defaultLights&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ImageView&#039;&#039;&#039; : Changed image comparison hotkey from &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; to &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;K&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; ( &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; now selects the selection tool in the image view, same as in the scene view ).&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039;, &#039;&#039;&#039;OSLImage&#039;&#039;&#039;, &#039;&#039;&#039;Expression&#039;&#039;&#039; : Removed support for file-based pointclouds.&lt;br /&gt;
* &#039;&#039;&#039;ContextAlgo&#039;&#039;&#039; : Removed deprecated API. Use ScriptNodeAlgo instead, which has been available from Gaffer 1.4.13.0 onwards.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Reimplemented using Metadata rather than Context variables for storage. Use the ScriptNodeAlgo API instead of attempting direct access to&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; context variables.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039;, &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Changed handling of missing shutter parameters. See Fixes section for more detail.&lt;br /&gt;
* &#039;&#039;&#039;StandardLightVisualiser&#039;&#039;&#039; : Removed protected methods for drawing visualiser elements. These are now part of&amp;lt;code&amp;gt;GafferSceneUI::Private::LightVisualiserAlgo&amp;lt;/code&amp;gt;. This namespace can be used by light visualisers, but is currently&amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; while the API details are being resolved.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039; : Tweaks with&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; enabled and a mode of&amp;lt;code&amp;gt;CreateIfMissing&amp;lt;/code&amp;gt; will now not create an attribute if it is missing from the scene hierarchy, but exists in the globals.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039; : Queries with&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; enabled will now return a result when querying an attribute that does not exist in the scene hierarchy, but does exist in the globals.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Changed the naming of shader nodes in the generated Arnold scene.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;inspectionContext()&amp;lt;/code&amp;gt; method. Use&amp;lt;code&amp;gt;contextProperty( &amp;quot;inspector:context&amp;quot; )&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;setTargetPaths()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;getTargetPaths()&amp;lt;/code&amp;gt; methods. Use the&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;compare.location&amp;lt;/code&amp;gt; settings plugs instead.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;registerSection()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;Diff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;SideBySideDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;TextDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Row&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Inspector&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffRow&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffColumn&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Section&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;LocationSection&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;HistorySection&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;SetsSection&amp;lt;/code&amp;gt; classes.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
* &#039;&#039;&#039;Boost&#039;&#039;&#039; : Updated to version 1.82.0.&lt;br /&gt;
* &#039;&#039;&#039;Cortex&#039;&#039;&#039; : Updated to version 10.6.0.0a1.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;FreeType&#039;&#039;&#039; : Updated to version 2.13.3.&lt;br /&gt;
* &#039;&#039;&#039;LibRaw&#039;&#039;&#039; : Updated to version 0.21.4.&lt;br /&gt;
* &#039;&#039;&#039;MaterialX&#039;&#039;&#039; : Updated to version 1.39.3.&lt;br /&gt;
* &#039;&#039;&#039;Minizip&#039;&#039;&#039; : Updated to version 3.0.10.&lt;br /&gt;
* &#039;&#039;&#039;OpenColorIO&#039;&#039;&#039; : Updated to version 2.3.2.&lt;br /&gt;
* &#039;&#039;&#039;OpenEXR&#039;&#039;&#039; : Updated to version 3.2.4.&lt;br /&gt;
* &#039;&#039;&#039;OpenImageIO&#039;&#039;&#039; : Updated to version 3.0.6.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenShadingLanguage&#039;&#039;&#039; : Updated to version 1.14.5.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenSubdiv&#039;&#039;&#039; : Updated to version 3.6.0.&lt;br /&gt;
* &#039;&#039;&#039;OpenVDB&#039;&#039;&#039; : Updated to version 11.0.0.&lt;br /&gt;
* &#039;&#039;&#039;Python&#039;&#039;&#039; : Updated to version 3.11.12.&lt;br /&gt;
* &#039;&#039;&#039;PySide&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt.py&#039;&#039;&#039; : Updated to version 1.4.6.&lt;br /&gt;
* &#039;&#039;&#039;USD&#039;&#039;&#039; : Updated to version 25.05.01.&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=581</id>
		<title>Gaffer 1.6 release</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Gaffer_1.6_release&amp;diff=581"/>
		<updated>2025-08-16T17:55:11Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;&amp;lt;blockquote&amp;gt;Note : Gaffer 1.6 is currently in alpha, with a stable release planned for September 2025.&amp;lt;/blockquote&amp;gt;  The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below.  == Features == * &amp;#039;&amp;#039;&amp;#039;Arnold&amp;#039;&amp;#039;&amp;#039; : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver. * &amp;#039;&amp;#039;&amp;#039;Cycles&amp;#039;&amp;#039;&amp;#039; : Updated to...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;Note : Gaffer 1.6 is currently in alpha, with a stable release planned for September 2025.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The current alpha release is [https://github.com/GafferHQ/gaffer/releases/tag/1.6.0.0a3 1.6.0.0a3], and a consolidated set of changes from all alphas can be found below.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Added multi-layer EXR support. All outputs with the same filename are now written to the same file via a single output driver.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;DiskBlur&#039;&#039;&#039; : Added image node for doing fast variable-radius blur. Will be used as core of upcoming focal blur node.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Rewrote using the same framework as LightEditor, AttributeEditor and RenderPassEditor.&lt;br /&gt;
** Added EditScope support, with in-place editing of attributes, options and shader parameters. Editing for other properties is planned for future versions.&lt;br /&gt;
** Improved comparison abilities, including the added ability to compare two render passes.&lt;br /&gt;
** Added subsections for options and attributes, splitting them by category.&lt;br /&gt;
** Added column resizing, including automatic resizing to show long attribute names.&lt;br /&gt;
** Added inspection of all shaders and parameters in shader networks.&lt;br /&gt;
** Added more detailed inspection of meshes and curves.&lt;br /&gt;
** Added more detailed inspection of primitive variables.&lt;br /&gt;
* &#039;&#039;&#039;ImageSelectionTool&#039;&#039;&#039; :&lt;br /&gt;
** Added new tool that allows selecting scene paths based on an image. Works with both Catalogue images and images on disk. Has two requirements : an&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; AOV (added using the&amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; preset on an&amp;lt;code&amp;gt;Outputs&amp;lt;/code&amp;gt; node), and a render manifest (added using StandardOptions &amp;gt; Render Manifest &amp;gt; File Path ).&lt;br /&gt;
** Also supports picking instance IDs, using an&amp;lt;code&amp;gt;instanceID&amp;lt;/code&amp;gt; aov. Supported when rendering an instancer that is encapsulated ( USD instancers rendered to Arnold are encapsulated by default ).&lt;br /&gt;
* &#039;&#039;&#039;ColorInspectorTool&#039;&#039;&#039; : Moved the Viewer&#039;s colour inspectors into a dedicated tool, selected from the toolbar on the left.&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039; : Added the ability to use&amp;lt;code&amp;gt;pointcloud_search()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;pointcloud_get()&amp;lt;/code&amp;gt; to query geometry from arbitrary scene locations.&lt;br /&gt;
* &#039;&#039;&#039;CameraQuery&#039;&#039;&#039; : Added a new node to query camera parameters (#6431).&lt;br /&gt;
&lt;br /&gt;
== Improvements ==&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Optimised case where all attributes are deleted. The input attributes are no longer accessed at all in this case.&lt;br /&gt;
* &#039;&#039;&#039;ShaderAssignment&#039;&#039;&#039; : The&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable is now available in Switches connected directly to the&amp;lt;code&amp;gt;ShaderAssignment.shader&amp;lt;/code&amp;gt; input. This allows different shaders to be assigned to different locations using a single ShaderAssignment node. Please note that the&amp;lt;code&amp;gt;scene:path&amp;lt;/code&amp;gt; context variable remains unavailable to the individual shader nodes themselves for performance reasons.&lt;br /&gt;
* &#039;&#039;&#039;3Delight&#039;&#039;&#039;, &#039;&#039;&#039;Cycles&#039;&#039;&#039;, &#039;&#039;&#039;OpenGL&#039;&#039;&#039; : Added support for custom EXR metadata, using&amp;lt;code&amp;gt;header:*&amp;lt;/code&amp;gt; parameters on the output definition.&lt;br /&gt;
* &#039;&#039;&#039;RenderManAttributes&#039;&#039;&#039;, &#039;&#039;&#039;RenderManOptions&#039;&#039;&#039; : Plugs now respect minimum and maximum values specified by RenderMan.&lt;br /&gt;
* &#039;&#039;&#039;RenderManShader&#039;&#039;&#039; : Improved GraphEditor labels for parameter RGB and XYZ components.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Improved responsiveness for Viewer camera updates when using Cycles as the viewport renderer. One benchmark shows around a 10x improvement in frame rate.&lt;br /&gt;
** Added support for&amp;lt;code&amp;gt;layerName&amp;lt;/code&amp;gt; parameter in outputs, to control the naming of channels in EXR outputs.&lt;br /&gt;
* &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; :&lt;br /&gt;
** Added render manifest option.&lt;br /&gt;
** Added&amp;lt;code&amp;gt;render:cameraInclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:cameraExclusions&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;render:matteInclusions&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;render:matteExclusions&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;CyclesMeshLight&#039;&#039;&#039; : Improved presentation of&amp;lt;code&amp;gt;cameraVisibility&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;lightGroup&amp;lt;/code&amp;gt; plugs in the Node Editor.&lt;br /&gt;
* &#039;&#039;&#039;VisualiserTool&#039;&#039;&#039; : Added visualisation of labels for uniform primitive variables, face indices and curve indices.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Improved formatting of Box and Matrix values.&lt;br /&gt;
** Improved performance when showing colour values.&lt;br /&gt;
** Added support for showing spline values.&lt;br /&gt;
* &#039;&#039;&#039;GafferUI&#039;&#039;&#039; : Added support for drag and dropping numeric vector data onto numeric vector plugs of compatible types ( For example, dropping a list of ints onto a FloatVectorDataPlug ).&lt;br /&gt;
* &#039;&#039;&#039;Switch&#039;&#039;&#039; : Optimised disabled switches using a direct internal connection, even when the&amp;lt;code&amp;gt;index&amp;lt;/code&amp;gt; is not constant.&lt;br /&gt;
* &#039;&#039;&#039;RenderMan&#039;&#039;&#039; : Added dedicated viewport visualisers for RenderMan lights.&lt;br /&gt;
* &#039;&#039;&#039;Viewer&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;Add&amp;lt;/code&amp;gt; image comparison mode.&lt;br /&gt;
* &#039;&#039;&#039;LocaliseAttributes&#039;&#039;&#039; : Added support for localising global attributes, controlled by the new&amp;lt;code&amp;gt;includeGlobalAttributes&amp;lt;/code&amp;gt; plug.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039;, &#039;&#039;&#039;ShaderTweaks&#039;&#039;&#039; : Global attributes are now localised when&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039;, &#039;&#039;&#039;ShaderQuery&#039;&#039;&#039; : Global attributes are now queried when&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; is enabled and no matching attribute is found at the target location or any of its ancestors.&lt;br /&gt;
* &#039;&#039;&#039;SphereLevelSet&#039;&#039;&#039; : Improved performance when evaluating the bounding box.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassMenu&#039;&#039;&#039; : Added a search menu which displays only the render passes matching the search text. The search menu can be disabled by registering the following metadata in a startup file.&amp;lt;code&amp;gt;Gaffer.Metadata.registerValue( Gaffer.ScriptNode, &amp;quot;variables.renderPass.value&amp;quot;, &amp;quot;renderPassPlugValueWidget:searchable&amp;quot;, False )&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039;, &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; : Improved presentation of VectorData types in the Inspect popup.&lt;br /&gt;
* &#039;&#039;&#039;CompoundDataPlugValueWidget&#039;&#039;&#039; : Removed unnecessary nesting from the menu for adding plugs.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Improved readability of shader node names as they appear in statistics and&amp;lt;code&amp;gt;.ass&amp;lt;/code&amp;gt; files. They are now formatted as&amp;lt;code&amp;gt;shader:{handle}:{uniqueId}&amp;lt;/code&amp;gt; where&amp;lt;code&amp;gt;{handle}&amp;lt;/code&amp;gt; is the Gaffer node name of the assigned shader, or if loaded from USD, the prim name.&lt;br /&gt;
* &#039;&#039;&#039;PrimitiveInspector&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; widget for selecting the location to be inspected.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : The widget for the&amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; plug can now be customised using&amp;lt;code&amp;gt;plugValueWidget:type&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; : Improved formatting of TypedVectorData.&lt;br /&gt;
&lt;br /&gt;
== Fixes ==&lt;br /&gt;
* &#039;&#039;&#039;LocalDispatcher&#039;&#039;&#039;, &#039;&#039;&#039;SystemCommand&#039;&#039;&#039;,&amp;lt;code&amp;gt;gaffer env&amp;lt;/code&amp;gt; : Fixed unwanted upper-casing of environment variable names on Windows (#6371).&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of attribute plugs now correctly reflect the default behaviour of the OpenGL renderer.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Fixed default behaviour of&amp;lt;code&amp;gt;ai:abort_on_license_fail&amp;lt;/code&amp;gt; option with Arnold 7.3 and above.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; :&lt;br /&gt;
** Fixed bugs handling identical cameras with different transforms.&lt;br /&gt;
** Fixed handling of&amp;lt;code&amp;gt;cycles:volume_precision&amp;lt;/code&amp;gt; attribute, which was previously being ignored.&lt;br /&gt;
** Fixed bugs handling unknown VDB grid types.&lt;br /&gt;
** Fixed potential crash rendering VDB objects.&lt;br /&gt;
** Fixed potential threading-related crashes.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed default values displayed for&amp;lt;code&amp;gt;dl:oversampling&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;dl:quality.shadingsamples&amp;lt;/code&amp;gt; options.&lt;br /&gt;
* &#039;&#039;&#039;PlugLayout&#039;&#039;&#039; : Fixed bug resolving&amp;lt;code&amp;gt;layout:index&amp;lt;/code&amp;gt; metadata.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Stopped polluting the ScriptNode context with&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; variables. Warnings are now emitted by the UI if anything else causes similar pollution.&lt;br /&gt;
* &#039;&#039;&#039;Checkerboard&#039;&#039;&#039; : Fixed crash when evaluated for non-existent channel name.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Prevented emission of&amp;lt;code&amp;gt;updateFinishedSignal()&amp;lt;/code&amp;gt; when a new update is pending anyway.&lt;br /&gt;
** Fixed potential threading-related crash.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed missing history entries when two edits have the same source plug.&lt;br /&gt;
** Fixed potential crashes in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed potential UI lag in&amp;lt;code&amp;gt;Show History...&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Fixed flickering in history window when scrubbing the timeline.&lt;br /&gt;
* &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039; : Fixed error when deleting a pass while a history window was open for it.&lt;br /&gt;
* &#039;&#039;&#039;OptionalValuePlugValueWidget&#039;&#039;&#039; : Fixed handling of keyword constructor arguments. In particular this meant that&amp;lt;code&amp;gt;parenting&amp;lt;/code&amp;gt; arguments did not work.&lt;br /&gt;
* &#039;&#039;&#039;ScenePathPlugValueWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed context used to evaluate the scene. This is now focus-aware, so the scene browser only shows locations that are available with respect to the current focus.&lt;br /&gt;
** Fixed bugs that prevented usage in&amp;lt;code&amp;gt;Editor.Settings&amp;lt;/code&amp;gt; nodes.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039; : Fixed bug reading USD cameras without authored shutter attributes. Previously, the loaded camera would have an unwanted shutter parameter, but now the shutter parameter is correctly omitted.&lt;br /&gt;
* &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Fixed bug writing cameras without a shutter parameter to USD. Previously shutter attributes were authored with default values, but now the shutter attributes are not authored at all.&lt;br /&gt;
* &#039;&#039;&#039;ImageReader&#039;&#039;&#039; : Fixed color-space handling for secondary RGB layers. Previously color transformations were only being applied to the main&amp;lt;code&amp;gt;RGB&amp;lt;/code&amp;gt; channels and not to&amp;lt;code&amp;gt;someLayer.RGB&amp;lt;/code&amp;gt; (#6524).&lt;br /&gt;
* &#039;&#039;&#039;ContextQuery&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;Create Context Query...&amp;lt;/code&amp;gt; menu item from plugs where it was not relevant.&lt;br /&gt;
* &#039;&#039;&#039;Menu&#039;&#039;&#039; : Executing a non-searchable menu item from a searchable menu no longer causes it to appear as the last used action in the menu&#039;s search field.&lt;br /&gt;
* &#039;&#039;&#039;PathListingWidget&#039;&#039;&#039; :&lt;br /&gt;
** Fixed ordering of&amp;lt;code&amp;gt;selectionChangedSignal()&amp;lt;/code&amp;gt; emission from&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt; call. It is now emitted when&amp;lt;code&amp;gt;getColumns()&amp;lt;/code&amp;gt; returns the new columns, not the old ones.&lt;br /&gt;
** Fixed unwanted vertical scrolling caused by&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Columns set to automatically stretch now equally share available space when a PathListingWidget&#039;s columns are updated via&amp;lt;code&amp;gt;setColumns()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;LightEditor&#039;&#039;&#039;, &#039;&#039;&#039;RenderPassEditor&#039;&#039;&#039;, &#039;&#039;&#039;AttributeEditor&#039;&#039;&#039; :&lt;br /&gt;
** Fixed unwanted vertical scrolling when switching tabs.&lt;br /&gt;
** Fixed flickering when switching tabs.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
* &#039;&#039;&#039;Gaffer module&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;environment()&amp;lt;/code&amp;gt; method, returning a dictionary containing all current environment variables. Unlike&amp;lt;code&amp;gt;os.environ&amp;lt;/code&amp;gt;, this preserves case on Windows.&lt;br /&gt;
* &#039;&#039;&#039;GafferScene&#039;&#039;&#039;::RenderManifest : Added class for representing mapping of ids to paths in renders. Supports reading EXR and cryptomatte manifests, and writing EXR manifests.&lt;br /&gt;
* &#039;&#039;&#039;Metadata&#039;&#039;&#039; :&lt;br /&gt;
** Added&amp;lt;code&amp;gt;registerValues()&amp;lt;/code&amp;gt; function that registers multiple metadata entries from a dictionary of string targets.&lt;br /&gt;
** Updated&amp;lt;code&amp;gt;targetsWithMetadata()&amp;lt;/code&amp;gt; function to support matching multiple targets.&lt;br /&gt;
* &#039;&#039;&#039;MetadataAlgo&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;createPlugFromMetadata()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
* &#039;&#039;&#039;ImageGadget&#039;&#039;&#039; : Added support for showing selected and highlighted ids. Controlled using&amp;lt;code&amp;gt;setIDChannel&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;setSelectedIDs&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;setHighlightID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;ShadingEngine&#039;&#039;&#039; : Added support for passing custom pointclouds to the&amp;lt;code&amp;gt;shade()&amp;lt;/code&amp;gt; call.&lt;br /&gt;
* &#039;&#039;&#039;SceneAlgo&#039;&#039;&#039; :&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now always applies the&amp;lt;code&amp;gt;render:overscan[Top/Bottom/Left/Right]&amp;lt;/code&amp;gt; options to the camera if they exist in the scene globals.&lt;br /&gt;
**&amp;lt;code&amp;gt;applyCameraGlobals()&amp;lt;/code&amp;gt; now applies the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option to the&amp;lt;code&amp;gt;depthOfField&amp;lt;/code&amp;gt; camera parameter. The&amp;lt;code&amp;gt;fStop&amp;lt;/code&amp;gt; camera parameter is no longer overridden to&amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; when the&amp;lt;code&amp;gt;render:depthOfField&amp;lt;/code&amp;gt; option is&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; or not specified.&lt;br /&gt;
* &#039;&#039;&#039;ScenePlug&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;withGlobalAttributes&amp;lt;/code&amp;gt; arguments to&amp;lt;code&amp;gt;fullAttributes()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;fullAttributesHash()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;VectorDataWidget&#039;&#039;&#039; : Added optional&amp;lt;code&amp;gt;maximumVisibleRows&amp;lt;/code&amp;gt; argument.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Added&amp;lt;code&amp;gt;contextProperty()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; :&lt;br /&gt;
** Removed support for Arnold 7.2.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;GafferArnoldUI.GPUCache.populateGPUCache()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldAttributes&#039;&#039;&#039;, &#039;&#039;&#039;CyclesAttributes&#039;&#039;&#039;, &#039;&#039;&#039;DelightAttributes&#039;&#039;&#039;, &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039;, &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039;, &#039;&#039;&#039;USDAttributes&#039;&#039;&#039; : Attributes plugs have been renamed to match the name of their attribute (e.g.&amp;lt;code&amp;gt;attributes.visibility&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;attributes.scene:visible&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039;, &#039;&#039;&#039;CyclesOptions&#039;&#039;&#039;, &#039;&#039;&#039;DelightOptions&#039;&#039;&#039;, &#039;&#039;&#039;StandardOptions&#039;&#039;&#039; : Option plugs have been renamed to match the name of their option (e.g.&amp;lt;code&amp;gt;options.renderCamera&amp;lt;/code&amp;gt; is now&amp;lt;code&amp;gt;options.render:camera&amp;lt;/code&amp;gt;). Compatibility configs have been provided to allow these nodes to be loaded from scripts saved in earlier Gaffer versions.&lt;br /&gt;
* &#039;&#039;&#039;ArnoldOptions&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;ai:texture_max_memory_MB&amp;lt;/code&amp;gt; plug to 4096 to match Arnold&#039;s default.&lt;br /&gt;
* &#039;&#039;&#039;StandardNodule&#039;&#039;&#039; : Removed deprecated&amp;lt;code&amp;gt;setCompatibleLabelsVisible()&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;DeleteAttributes&#039;&#039;&#039; : Changed base class and marked as&amp;lt;code&amp;gt;final&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Wrapper&#039;&#039;&#039; : The&amp;lt;code&amp;gt;gaffer&amp;lt;/code&amp;gt; wrapper on Linux no longer allows a custom Python build to be used. If you wish to use a custom Python, call&amp;lt;code&amp;gt;python _gaffer.py&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;RenderPasses&#039;&#039;&#039;, &#039;&#039;&#039;DeleteRenderPasses&#039;&#039;&#039; : Renamed TypeId enum values to&amp;lt;code&amp;gt;RenderPassesTypeId&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;DeleteRenderPassesTypeId&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;OpenGLAttributes&#039;&#039;&#039; : The default values of the attribute plugs authoring the&amp;lt;code&amp;gt;gl:primitive:bound&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:outline&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:points&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:pointColor&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;gl:primitive:wireframe&amp;lt;/code&amp;gt;, and&amp;lt;code&amp;gt;gl:primitive:wireframeColor&amp;lt;/code&amp;gt; attributes have changed to match the default behaviour of the OpenGL renderer. Scripts loaded from previous Gaffer versions with these plugs enabled and set to the default value will see a difference in OpenGL renders.&lt;br /&gt;
* &#039;&#039;&#039;SceneTestCase&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;assertBoxesEqual()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;assertBoxesAlmostEqual()&amp;lt;/code&amp;gt; methods.&lt;br /&gt;
* &#039;&#039;&#039;RenderController&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;pathForID()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;pathsForIDs()&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;idForPath()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;idsForPaths()&amp;lt;/code&amp;gt;. Use&amp;lt;code&amp;gt;renderManifest()&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;Catalogue&#039;&#039;&#039;, &#039;&#039;&#039;CatalogueSelect&#039;&#039;&#039;, &#039;&#039;&#039;Display&#039;&#039;&#039; : Moved from GafferImage module to GafferScene.&lt;br /&gt;
* &#039;&#039;&#039;StandardAttributes&#039;&#039;&#039; : Changed the default value of the&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plug to &amp;quot;defaultLights&amp;quot;. Scripts loaded from earlier Gaffer versions containing&amp;lt;code&amp;gt;linkedLights&amp;lt;/code&amp;gt; plugs set to the previous default of &amp;quot;&amp;quot; will need to be updated as those plugs will now default to &amp;quot;defaultLights&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;ImageView&#039;&#039;&#039; : Changed image comparison hotkey from &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; to &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;K&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; ( &amp;lt;nowiki&amp;gt;&amp;lt;kbd&amp;gt;Q&amp;lt;/kbd&amp;gt;&amp;lt;/nowiki&amp;gt; now selects the selection tool in the image view, same as in the scene view ).&lt;br /&gt;
* &#039;&#039;&#039;OSLObject&#039;&#039;&#039;, &#039;&#039;&#039;OSLImage&#039;&#039;&#039;, &#039;&#039;&#039;Expression&#039;&#039;&#039; : Removed support for file-based pointclouds.&lt;br /&gt;
* &#039;&#039;&#039;ContextAlgo&#039;&#039;&#039; : Removed deprecated API. Use ScriptNodeAlgo instead, which has been available from Gaffer 1.4.13.0 onwards.&lt;br /&gt;
* &#039;&#039;&#039;ScriptNodeAlgo&#039;&#039;&#039; : Reimplemented using Metadata rather than Context variables for storage. Use the ScriptNodeAlgo API instead of attempting direct access to&amp;lt;code&amp;gt;ui:*&amp;lt;/code&amp;gt; context variables.&lt;br /&gt;
* &#039;&#039;&#039;SceneReader&#039;&#039;&#039;, &#039;&#039;&#039;SceneWriter&#039;&#039;&#039; : Changed handling of missing shutter parameters. See Fixes section for more detail.&lt;br /&gt;
* &#039;&#039;&#039;StandardLightVisualiser&#039;&#039;&#039; : Removed protected methods for drawing visualiser elements. These are now part of&amp;lt;code&amp;gt;GafferSceneUI::Private::LightVisualiserAlgo&amp;lt;/code&amp;gt;. This namespace can be used by light visualisers, but is currently&amp;lt;code&amp;gt;Private&amp;lt;/code&amp;gt; while the API details are being resolved.&lt;br /&gt;
* &#039;&#039;&#039;AttributeTweaks&#039;&#039;&#039; : Tweaks with&amp;lt;code&amp;gt;localise&amp;lt;/code&amp;gt; enabled and a mode of&amp;lt;code&amp;gt;CreateIfMissing&amp;lt;/code&amp;gt; will now not create an attribute if it is missing from the scene hierarchy, but exists in the globals.&lt;br /&gt;
* &#039;&#039;&#039;AttributeQuery&#039;&#039;&#039; : Queries with&amp;lt;code&amp;gt;inherit&amp;lt;/code&amp;gt; enabled will now return a result when querying an attribute that does not exist in the scene hierarchy, but does exist in the globals.&lt;br /&gt;
* &#039;&#039;&#039;Arnold&#039;&#039;&#039; : Changed the naming of shader nodes in the generated Arnold scene.&lt;br /&gt;
* &#039;&#039;&#039;Path&#039;&#039;&#039; : Removed&amp;lt;code&amp;gt;inspectionContext()&amp;lt;/code&amp;gt; method. Use&amp;lt;code&amp;gt;contextProperty( &amp;quot;inspector:context&amp;quot; )&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;SceneInspector&#039;&#039;&#039; :&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;setTargetPaths()&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;getTargetPaths()&amp;lt;/code&amp;gt; methods. Use the&amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;compare.location&amp;lt;/code&amp;gt; settings plugs instead.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;registerSection()&amp;lt;/code&amp;gt; method.&lt;br /&gt;
** Removed&amp;lt;code&amp;gt;Diff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;SideBySideDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;TextDiff&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Row&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Inspector&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffRow&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;DiffColumn&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;Section&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;LocationSection&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;HistorySection&amp;lt;/code&amp;gt; and&amp;lt;code&amp;gt;SetsSection&amp;lt;/code&amp;gt; classes.&lt;br /&gt;
&lt;br /&gt;
== Build ==&lt;br /&gt;
* &#039;&#039;&#039;Boost&#039;&#039;&#039; : Updated to version 1.82.0.&lt;br /&gt;
* &#039;&#039;&#039;Cortex&#039;&#039;&#039; : Updated to version 10.6.0.0a1.&lt;br /&gt;
* &#039;&#039;&#039;Cycles&#039;&#039;&#039; : Updated to version 4.4.0.&lt;br /&gt;
* &#039;&#039;&#039;FreeType&#039;&#039;&#039; : Updated to version 2.13.3.&lt;br /&gt;
* &#039;&#039;&#039;LibRaw&#039;&#039;&#039; : Updated to version 0.21.4.&lt;br /&gt;
* &#039;&#039;&#039;MaterialX&#039;&#039;&#039; : Updated to version 1.39.3.&lt;br /&gt;
* &#039;&#039;&#039;Minizip&#039;&#039;&#039; : Updated to version 3.0.10.&lt;br /&gt;
* &#039;&#039;&#039;OpenColorIO&#039;&#039;&#039; : Updated to version 2.3.2.&lt;br /&gt;
* &#039;&#039;&#039;OpenEXR&#039;&#039;&#039; : Updated to version 3.2.4.&lt;br /&gt;
* &#039;&#039;&#039;OpenImageIO&#039;&#039;&#039; : Updated to version 3.0.6.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenShadingLanguage&#039;&#039;&#039; : Updated to version 1.14.5.1.&lt;br /&gt;
* &#039;&#039;&#039;OpenSubdiv&#039;&#039;&#039; : Updated to version 3.6.0.&lt;br /&gt;
* &#039;&#039;&#039;OpenVDB&#039;&#039;&#039; : Updated to version 11.0.0.&lt;br /&gt;
* &#039;&#039;&#039;Python&#039;&#039;&#039; : Updated to version 3.11.12.&lt;br /&gt;
* &#039;&#039;&#039;PySide&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt&#039;&#039;&#039; : Updated to version 6.5.6.&lt;br /&gt;
* &#039;&#039;&#039;Qt.py&#039;&#039;&#039; : Updated to version 1.4.6.&lt;br /&gt;
* &#039;&#039;&#039;USD&#039;&#039;&#039; : Updated to version 25.05.01.&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=548</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=548"/>
		<updated>2025-07-28T15:38:23Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.5.16.1&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=525</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=525"/>
		<updated>2025-07-10T23:16:56Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.5.16.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=522</id>
		<title>Template:LatestGafferVersion</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Template:LatestGafferVersion&amp;diff=522"/>
		<updated>2025-06-12T17:35:17Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.5.15.0&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Encapsulate&amp;diff=518</id>
		<title>Encapsulate</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Encapsulate&amp;diff=518"/>
		<updated>2025-05-19T22:54:30Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Node&lt;br /&gt;
|namespace=GafferScene&lt;br /&gt;
|description=Encapsulates a portion of the scene by collapsing the hierarchy and replacing it with a procedural which will be evaluated at render time.&lt;br /&gt;
|categories=Capsule, Hierarchy&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Set&amp;diff=517</id>
		<title>Category:Nodes:Set</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Set&amp;diff=517"/>
		<updated>2025-05-19T22:52:48Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Set Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Set&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Set Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Set&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:ContextVariable&amp;diff=516</id>
		<title>Category:Nodes:ContextVariable</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:ContextVariable&amp;diff=516"/>
		<updated>2025-05-19T22:52:28Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Context Variable Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;ContextVariable&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Context Variable Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;ContextVariable&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Cycles&amp;diff=515</id>
		<title>Category:Nodes:Cycles</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Cycles&amp;diff=515"/>
		<updated>2025-05-19T22:51:36Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: /* Hierarchy Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cycles Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Cycles&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Cycles&amp;diff=514</id>
		<title>Category:Nodes:Cycles</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Cycles&amp;diff=514"/>
		<updated>2025-05-19T22:51:30Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Hierarchy Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Cycles&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hierarchy Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Cycles&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Attribute&amp;diff=513</id>
		<title>Category:Nodes:Attribute</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Attribute&amp;diff=513"/>
		<updated>2025-05-19T22:51:07Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Attribute Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Attribute&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Attribute Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Attribute&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Option&amp;diff=512</id>
		<title>Category:Nodes:Option</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Option&amp;diff=512"/>
		<updated>2025-05-19T22:50:03Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Option Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Option&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Option Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Option&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:RenderMan&amp;diff=511</id>
		<title>Category:Nodes:RenderMan</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:RenderMan&amp;diff=511"/>
		<updated>2025-05-19T22:49:43Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== RenderMan Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;RenderMan&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RenderMan Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;RenderMan&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:USD&amp;diff=510</id>
		<title>Category:Nodes:USD</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:USD&amp;diff=510"/>
		<updated>2025-05-19T22:49:24Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== USD Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;USD&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== USD Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;USD&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Alembic&amp;diff=509</id>
		<title>Category:Nodes:Alembic</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Alembic&amp;diff=509"/>
		<updated>2025-05-19T22:48:58Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Alembic Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Alembic&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Alembic Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Alembic&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Cube&amp;diff=508</id>
		<title>Cube</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Cube&amp;diff=508"/>
		<updated>2025-05-19T22:48:08Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Node&lt;br /&gt;
|namespace=GafferScene&lt;br /&gt;
|description=Produces scenes containing a cube.&lt;br /&gt;
|categories=Create, Primitive, Mesh&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Mesh&amp;diff=507</id>
		<title>Category:Nodes:Mesh</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Mesh&amp;diff=507"/>
		<updated>2025-05-19T22:47:34Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Mesh Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Mesh&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mesh Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Mesh&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:RenderPass&amp;diff=506</id>
		<title>Category:Nodes:RenderPass</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:RenderPass&amp;diff=506"/>
		<updated>2025-05-19T22:47:13Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Render Pass Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;RenderPass&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Render Pass Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;RenderPass&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:OCIO&amp;diff=505</id>
		<title>Category:Nodes:OCIO</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:OCIO&amp;diff=505"/>
		<updated>2025-05-19T22:46:51Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== OCIO Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;OCIO&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OCIO Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;OCIO&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:ImageTransform&amp;diff=504</id>
		<title>Category:Nodes:ImageTransform</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:ImageTransform&amp;diff=504"/>
		<updated>2025-05-19T22:46:27Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Image Transform Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;ImageTransform&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Image Transform Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;ImageTransform&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:GafferArnold&amp;diff=503</id>
		<title>Category:Nodes:GafferArnold</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:GafferArnold&amp;diff=503"/>
		<updated>2025-05-19T22:45:58Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Hierarchy Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.namespace=&amp;#039;GafferArnold&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hierarchy Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.namespace=&#039;GafferArnold&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Constraint&amp;diff=502</id>
		<title>Category:Nodes:Constraint</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Constraint&amp;diff=502"/>
		<updated>2025-05-19T22:45:24Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Constraint Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Constraint&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Constraint Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Constraint&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Arnold&amp;diff=501</id>
		<title>Category:Nodes:Arnold</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Arnold&amp;diff=501"/>
		<updated>2025-05-19T22:45:01Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Arnold Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Arnold&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arnold Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Arnold&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
	<entry>
		<id>https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Curve&amp;diff=500</id>
		<title>Category:Nodes:Curve</title>
		<link rel="alternate" type="text/html" href="https://www.gaffer.wiki/w/index.php?title=Category:Nodes:Curve&amp;diff=500"/>
		<updated>2025-05-19T22:44:34Z</updated>

		<summary type="html">&lt;p&gt;GafferBot: Created page with &amp;quot;== Curve Nodes == {{#cargo_query: tables=Nodes |fields=Nodes._pageName=Name,Nodes.description=Description |where=Nodes.categories HOLDS &amp;#039;Curve&amp;#039; |limit=500 |format=dynamic table |column widths=180px }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Curve Nodes ==&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Nodes&lt;br /&gt;
|fields=Nodes._pageName=Name,Nodes.description=Description&lt;br /&gt;
|where=Nodes.categories HOLDS &#039;Curve&#039;&lt;br /&gt;
|limit=500&lt;br /&gt;
|format=dynamic table&lt;br /&gt;
|column widths=180px&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>GafferBot</name></author>
	</entry>
</feed>