How are licenses used when issuing the husk command?

Command line utility for rendering a USD file using Karma or some other Hydra client.


Overview

Husk will check out different licenses under specific conditions. Below, we have listed each condition and which license is checked out.

In normal usage

Husk itself will only check for the existence of a Houdini license but not checkout a license.

Husk rendering with the Karma delegate (Karma CPU, Karma XPU)

A Karma license will be checked out.

Husk invoking a Python script (or hython)

An Engine license will checked out for as long as the script executes.
If no Engine licenses are available, a Core or FX license is checked out.


Husk has several ways to invoke Python callbacks that can be specified

  • Pre-render, post-render scripts (--prerender-script, --preframe-script, etc.)
  • Evaluation of Procedurals
  • The progress callback script (specified in UsdRenderers.json)
  • etc.

When a script calls into the Houdini Libraries, an Engine license is checked out. If the script doesn't invoke any Houdini libraries, there is no Engine license checked out.

For example:

print("Hello world")

will not check out an Engine license. But the following will check out an Engine license:

import hou
lop = hou.node('/stage').createNode('sublayer')

One exception is invoking Python scripts for procedurals.
The --allowed-procedurals argument can tell husk to relax licensing requirements when invoking procedurals:

basic - Any factory Houdini procedurals will not require a license. Any other procedurals will require a license if they invoke the Houdini libraries.
Custom procedurals will not require a license if they don't call the Houdini libraries.

all - Procedurals will always check out an engine license - even if it's a factory Houdini procedural or a script which doesn't use the Houdini libraries.

none - Specifying none means that husk will never call Python code for procedurals. There should never be a license check due to procedurals. This will check out an engine license.