Houdini Engine for Maya
 All Files Pages

Table of Contents

The plug-in supports outputting various types of Maya geometries from Houdini assets.

The supported Maya geometry types for input are:

Outputting geometries from Houdini assets is fairly straightforward. Geometries are outputted from the SOP nodes that have the display flag set. For SOP-type assets, the display SOP within the SOP subnet will be outputted. For Object-type assets, the display SOP of each Object node within the Object subnet will be outputted.

Custom Attributes

Depending on which geometry type is being outputted, the plug-in will recognize and use certain standard attributes. For example, N and uv attributes are used to output Maya meshes, and v and id attributes are used to output Maya particles. In addition to the standard attributes, it is common for Houdini assets to output custom attributes. When the output Houdini geometry contains attributes that are not recognized by the geometry type, the attributes will be treated as custom attributes. Custom attributes will be outputted onto the Maya shape node as an extra attribute.

Detail, primitive, vertex, and point class attributes are supported. The supported data types for custom attributes are:

  • float
  • int
  • string

Tuples of the above data types are also supported.

There are some restrictions when outputting particles. See particles for more details.


In Houdini, a SOP can output any combination of geometry types, and the output geometry can change dynamically depending on many factors, such as parameters, input geometries, and asset logic. On the other hand, Maya requires a specific shape node for each specific kind of geometry. For example, creating polygons in Maya would require a mesh node, and creating particles require a nParticle node.

This means that depending on what an asset outputs, the corresponding output nodes on the Maya side have to change. Otherwise, some of the geometries that the asset outputs would not incorrect or missing available on the Maya side.

For example, it's easy to create an asset that uses a Switch SOP to switch between a box and some points. Depending on the parameter on the Switch SOP, the output geometry could be polygons or points. If the asset is outputting the box, then the Maya scene would require a mesh node. And if the parameter is changed, and the asset is outputting points, then the Maya scene would require a nParticle node. So it's important to keep the Maya shape nodes in sync with what the asset is outputting.

Another common scenario is an asset that emits particles. In the initial frame, the asset might not be emitting any particles yet. This means if the asset is instantiated in the initial frame, the asset won't be outputting any geometry at all, and no shape node will be created on the Maya side. So when the asset does begin to emit particles, they will not be visible in Maya because no shape node was created. You will need to sync the asset representation in Maya to match what the asset is actually outputting.