User guide

28 Render Farm API
The Render Farm Python API is an interface with hooks and utility functions for customizing the way jobs are
submitted to a render farm from Katana. It provides functions for adding options to the Render Farm menu, for
creating custom farm parameters, and for retrieving render node dependencies and render pass information.
The Render Farm API cannot export Scene Graphs or Katana recipes, and cannot be used for writing complex user
interfaces or for modifying the Node Graph. Katana provides other modules for accomplishing these tasks.
The Farm API works exclusively with the Render, RenderScript and ImageWrite nodes, which are typically the final
nodes in a recipe.
What scripts work with the Farm API?
To use the Farm API you must create a plug-in that is instantiated at the start of each Katana session. Python plug-
ins are modules which must be placed in a Plugins sub-directory of a location in your KATANA_RESOURCES.
For example, make a directory called MyResources, with a sub-directory called Plugins and append the path to
MyResources to your KATANA_RESOURCES environment variable. Plug-ins located in the Plugins directory are
instantiated at the start of each Katana session.
NOTE: The way plug-ins are picked up is similar to the way that Macros are located. See the Macros
chapter for more on this.
Farm XML Example
Katana ships with an example Farm API plug-in called Farm XML. When invoked, this plug-in produces an example
configuration script for submission to a Render Farm.
The Python source for this example is provided in:
${KATANA_ROOT}/plugins/Src/Resources/Examples/Plugins/FarmXML.py
The onStartup Callback
Plug-ins are initialized during the Katana startup sequence. Once initialized, a plug-in can register new node types or
callback handlers. For example, a Render Farm plug-in must register an onStartup handler to be invoked once