Houdini Engine for Maya
 All Files Pages

The plug-in supports both inputting and outputting particle.


Maya particles are inputted into Houdini assets as points. Both Maya particle and nParticle nodes can be used for inputting. When inputting Maya particles, all of the custom Maya per-particle attributes are input as well. Since Maya only supports double and vector per-particle attributes, the input point attributes can only be float and float3 point attributes.


Points from a Houdini asset are output as an nParticle node. When points are output, the plug-in will output all Houdini point attributes as Maya per-particle attributes. Since Maya only supports float and vector per-particle attributes, float and float3 point attributes are output into Maya particles. Since Maya particles does not support integer per-particle attributes, int point attributes would be converted and outputted as float attributes. Any other attributes, such as string attributes, are ignored.

Mapped Attributes

Some standard per-particle attributes in Maya have different names in Houdini. These attributes are automatically mapped to the equivalent point attributes in Houdini.

Maya Houdini
position (vector) P (float3)
velocity (vector) v (float3)
acceleration (vector) force (float3)
rgbPP (vector) Cd (float3)
opacityPP (double) Alpha (float)
radiusPP (double) pscale (float)
finalLifespanPP (double) life (float)
particleId (double) id (float)

Also note that while age is explicitly represented in Houdini, in Maya it is computed from birthTime and the current frame. If an asset has explicitly defined a birthTime attribute, we use for output, otherwise we compute birthTime from age.

Nucleus Solver

When the asset creates an nParticle node for outputting points/particles, the nParticle node is assigned to the active Nucleus solver. This means that the output particles would then participate in any simulations that are assigned to the same Nucleus solver. This may or may not be the desired result.

One example is a Houdini asset that takes some input points, removes some points, and outputs the resulting points. If a simulated nParticle is used as the input, the output nParticle will be assigned to the same Nucleus Solver as the input nParticle. Since the output particles have the exact same positions as the input particles, this input particles would collide with the output particles, which affects the motion of the input particles. In this case, to prevent the collisions, one of the nParticle nodes should be assigned to a different Nucleus solver.

Start Frame

In order to create the output nParticle node, the Houdini asset needs to be synced at (or after) the Houdini particle's start frame. If you have loaded your asset before the start frame, you will not initally see any output particles until you have set the time to the start frame and resynced.

The output nParticle's start frame needs to be set at (or before) the Houdini particle's start frame in order to display the particles. If your start frame is before the default Nucleus start frame, you should set the start frame on the Nucleus node to match. If this would conflict with other objects attached to the same Nucleus solver, the output nParticle should be assigned to a different Nucleus solver.