Duck model exported as .ass file and imported as a procedural


You can export any object as a .ass file. A procedural (also called stand-in, proxy or placeholder) references the .ass file on disk (or other procedural formats supported by Arnold such as .abc, .obj, .ply, .usd etc). They allow you to keep your working scene light and workable by deferring the loading of geometry data until render time.

During export, Arnold's current render settings will be used. Therefore, you should finalize these settings before exporting the Stand-in. For example, you should choose whether you wish to export with motion blur enabled or not.

The utility shader's object mode does not work with procedurals (stand-ins). This is a known limitation. The color of the spheres changes when the utility shader's mode is object. However, the stand-ins color remains the same.

Sharing Arnold Procedurals Between Plug-ins

Some users may be in a studio environment where a combination of Maya, 3DS Max, Houdini, and C4D are used. It is perfectly possible to export .ass Arnold Procedurals (stand-ins) and reuse them in other Arnold plug-ins (and vice versa), as long as Arnold can find both the plug-in and shaders. To do this, you must ensure that the Arnold shader path environment variable ARNOLD_PLUGIN_PATH is set to pick up both sets of shaders.


Arnold Procedurals can be created by tab-typing Arnold Procedural or Tab > Arnold > Arnold Procedural at the OBJ level. The procedural node can be used to load an external geometry file or a compiled DSO (Dynamic Shared Object).

Geometry File 

The path to the geometry file (obj, ply or ass) or program to be loaded.


Procedurals can declare a custom namespace using this parameter. This custom namespace can be used instead of the procedural name, to reference contents through absolute or relative paths. Multiple procedurals can share the same namespace by using the same custom name. Also, they can declare an empty name and they will use the global namespace. 

Override Nodes 

Nodes inside the procedural can be replaced by other nodes with this parameter. This may be used for example to replace shaders in an existing .ass procedural. When the parameter is enabled, nodes in the immediate parent scope of the procedural will replace identically named nodes inside the procedural.

Auto Instancing (Arnold)

Allows per-procedural selection of the use of this functionality (only '.ass' procedurals support it for now). When enabled, multiple uses of the same filename will be transparently converted to instances. This workaround is sometimes useful when overriding procedural parameters with operators.

You should only disable this to prevent automatic instancing of the same .ass file. It is enabled by default and is only intended for technical users.

Instance Cache (Alembic)

This can be used to disable the internal archive cache that shares alembic data between nodes, this helps when using operators to override alembic contents and make_instance is enabled. The parameter is enabled by default. 

The .asstoc file is a cache which describes the bounding box of the procedural. It allows an optimization of the scene since the plugin does not have to read the referenced ASS file to detect the bounds. However, there are cases when no asstoc files exist (e.g. the ASS files are coming from a different source (RealFlow, etc.)). If HtoA cannot detect the bounding box (e.g. no asstoc file is given and the bounds could not be read from the referenced ASS file) then a default bounding box is used (with a size of 1000 units) and a warning is displayed. The frame range of the generation is defined in the Arnold Render Output. Selecting the Render to Disk button, writes the .asstoc files to the disk, next to the ASS file.

Viewport Proxy


Reads the bounding box from the Geometry File. This will only work for .obj and .ply files. Bounds for .ass files will be displayed if an .asstoc file is found alongside the .ass file. 

Target SOP

Use an object in the scene to attach as a bounding box preview. 

Display As

The assigned file can be displayed as Global Bounding Box, Bounding Box per Node, Points, and Polygons. 

Proxy SOP

Provides a bounding box representation for visualizing the contents of a procedural when importing geometry into Houdini using a SOP.

Procedural Operator

You can choose to connect any existing Operator graph to a Procedural

To connect a Procedural Operator to an Arnold Procedural, you have to pick the operator ROP in the Arnold properties of the arnold_procedural OBJ node. Use the Arnold Properties top level Arnold | Operator Graph parameter to pick the operator ROP, which can be anywhere in your scene.

Procedural Operator parameter in Arnold properties of Arnold Procedural

  • No labels