Procedural Publishing in Houdini: AYON Publish ROP

Currently, the AYON Houdini addon lacks a dedicated HDA to be used for submitting and publishing custom outputs, such as Flipbooks, Alembic caches, geometry exports, simulations, and other arbitrary output types directly from within the Houdini network, for instance, from the OUT or TOP context.

Presently, it is only possible to publish these outputs via the AYON Publisher, which requires opening a separate publishing dialog and manually triggering the publish process.

While this works well for standardized outputs-such as renders, models, or caches-defined through templates, it can be very limiting when the artists or TDs want to:

Send custom tasks or outputs directly from within the Houdini scene.

Integrate procedural or automated publishing pipelines inside existing Houdini setups.

Publish Flipbooks, custom geometry exports, or intermediate caches all without leaving the node network. Create custom node-based submission systems that allow publishing to AYON directly from a node, similar to Deadline submission nodes.

I have created an issue for this.

Hello,
So this is currently under development/experimental.
And, this post is a great opportunity to discuss this feature and expected user experience.

As a food for thought here are some of the experimented solutions and the core concept/idea behind them:

  1. Official Generic Publish ROP
  2. Generic Publish ROP by community member (Fabia)
  3. Convert any node to publishable node
  4. Using OpenAssetIO

Official Publish ROP

This node just triggers a script which takes the output of previous ROPs and preforms publishing using pyblish api essentially similar to this code ayon-recipes/publish_from_code.py at 7294e2cf60036d24426a0e19fc2c6cfe19494d23 · MustafaJafar/ayon-recipes · GitHub

Here’s the PR for it Procedural Publishing: AYON Publish ROP by Lypsolon · Pull Request #122 · ynput/ayon-houdini · GitHub

Fabia’s Publish ROP

273287914-58be1026-bb82-4b95-9286-1ae3784bff8f

This Publish ROP followed a simple idea,

  1. Make a list of representations (files) to publish.
  2. Create a json file the same as the one created for deadline render.
  3. Convert any node into a publishable node
  4. Submit to Deadline the same as the farm rendering in AYON.

Note the deadline json and submission method is debatable but the idea of specifying a list of files as the publish instance’s files is cool.

Convert any node into publishable node

This idea was about exploring adding publish options to the rop node as parameters so that users don’t need to open the publisher window.
It also included experimenting having a list of files similar to fabia’s idea.

Here’s the PR for it Houdini: Convert any ROP to a publishable AYON instance by BigRoy · Pull Request #2 · ynput/ayon-houdini · GitHub
After some discussion, this idea was replaced by another one Publishing: Low-level dynamic runtime instance creator by BigRoy · Pull Request #691 · ynput/ayon-core · GitHub

OpenAssetIO the future

This thing is very powerful as it enables hijacking the render process and register intermediate processes such as AYON Publish process. while this is not available in Houdini as it doesn’t support OpenAssetIO yet.
However it’s important to keep it in mind.

Here’s a demo from Katana (which is the only DCC that supports it).