Attributes are named values stored on vertices, points, primitives, and objects. Point color, position, UV coordinates , spline weight ( W ), and normal, for example, are stored as point attributes.

When dealing with attributes, its important to know that there are different Nodes which can either generate new attributes, modify existing or even convert (promote in Houdini language) from one type to another.

Generating Attributes Modify Attribute Values Use Attribute Values Utility Attribute Nodes
Convert to Line Attribute Randomize Transform Attribute Promote
Measure Attribute Noise PolyWire Attribute Swap
Mask from Geometry Attribute Create Primitive Attribute Rename
Mask from Target Attribute Remap Soft Transform
Distance along Geometry Attribute Expression Poly Extrude
Orient along curves Attribute Adjust Color PolyBevel
PolyFrame Attribute Adjust Float Soft Peak
Normal Attribute Adjust Vector Copy to Points
Attribute Create Mountain SOP [N, P etc] Sweep
Pyro Source

Geometry Attributes

Attribute Type Summary
P vector Point position. The viewport uses this to lay out the points of the model in 3D space. You can overwrite this attribute to move the point.
N vector Normal direction. You can overwrite this attribute to change the normal.
v vector Velocity. The renderer uses this attribute to know where to add motion blur. This attribute is not computed automatically, but several nodes, especially particle DOPs, can set/use it. You can add velocity to points using the Trail SOP.
id integer A unique element ID. This is not the same as the element number (for example, the point number). This is an attribute you can, for example, assign to points to keep track of them even if the point numbers change (which can happen if the number of points changes). Particle DOPs often set/use this attribute.
name string This is a value you can set on primitives, such as volumes or packed primitives, to be able to find them in code by name. Some nodes set/read this attribute.
piece integer Nodes the break up geometry into pieces will often set this attribute so you can tell which polygonal faces are part of the same piece. Faces in the same piece will share the same value in their piece attribute. Other nodes may use this attribute to operate on pieces.

Sizes and Rotations

Attribute Type Summary
pscale float Uniform scaling factor. This is used in different ways in different places. For particle/point rendering, it controls the size of the particle/point (in world space units) at render time. For instancing, you can use it to uniformly scale the instanced geometry.
scale vector Whereas pscale is a single uniform scaling factor in all axes, this attribute lets you scale non-uniformly along each axis separately. See the pscale attribute for more information.
width float When rendering open curves, sets the line width (in world space units) at render time. If this attribute does not exist, Mantra renders the open curve a thin line instead of as a ribbon with thickness.
lod float Level of detail. This may be used in instancing.
spritescale vector When displaying particles using sprint images, this gives additional sprite scaling over pscale.
spriterot float When displaying particles using sprint images, this gives sprite rotation (around camera angle) in degrees.

Particle Attributes

Attribute Type Summary
force vector The force attribute on the current point. This is set/used by some particle DOPs. It represents a change to the particle’s position computed by adding up all the forces acting on the particle.
rest vector Conventional name for an attribute containing each point’s rest position, used by various nodes. Some shaders can use this rather than P, so procedural textures will stick even if you deform your geometry.
torque vector The torque attribute on the current point. This is set/used by the Torque DOP to spin particles.
up vector Represents the up vector of a particle’s local space. This is used for instancing geometry onto a point. You can overwrite this attribute to change the particle’s orientation.
orient vector4 Quaternion orientation of a particle. Allows fully specifying rotation, whereas up only orients along a single axis. If this exists, it is used for instancing geometry onto a point.
rot vector4 An additional offset-quaternion applied after all other attributes, used when instancing geometry onto a point.
nextid int Detail attribute storing the largest particle ID, allowing Houdini to create new particle ids efficiently.
pstate int A bit field encoding different pieces of information about a particle’s state (for example, whether it’s alive, whether it’s stopped, whether it collided in the previous frame, and so on). Various particle DOPs read and write this attribute.

Shader Overrides

Attribute Type Summary
C vector Diffuse color override. The viewport uses this to color OpenGL geometry.
Alpha float Alpha transparency override. The viewport uses this to set the alpha of OpenGL geometry.
Cs vector Specular color override.
Cr vector Reflect color override.
Ct vector Transmit color override.
Ce vector Emission color override.
rough float Roughness override.
fresnel float Fresnel coefficient override.
shadow float Shadow intensity override.
sbias float Shadow bias override.

Rendering Attributes

Attribute Type Summary
uv vector The UV coordinates of the point/vertex. The first two elements of this vector contain the current U and V coordinates. Note that uv is Houdini’s conventional attribute name for storing texture coordinates. You can store texture coordinates in other attributes, so you can have multiple UV layouts on the same geometry. Most texture-related nodes have a field to let you specify the name of the UV attribute to use.
material float The node path to the material to use to shade this primitive. Overrides the object’s material.
instance vector The instance attribute on the current point, containing a path to the geometry instanced on the point. This can be a file path to a geometry file, or an op: path to a Geometry object or geometry node. You can overwrite this attribute to change the instanced geometry.
rishade vector Detail/primitive. The name of a RenderMan shader.

Viewport Volume Display Attributes

A volume visualization set can have the following 4 components.

Attribute Summary
density For fog, this component contains the optical thickness of the smoke. With height fields, this main volume should store the elevation at each voxel.
cd The color field. This component can be used with both fog (to color the smoke) and height fields (to texture the terrain).
emit With fog, this component contains the intensity of emission (or internal glowing). For height fields, this component acts like a visualization stencil: the viewport only draws parts of the height field where the emit value is at least 0.5.
emitcd This component can be used with fog volumes to color the internal emission.

*More on Geometry Attributes can be seen here: [Geometry attributes (sidefx.com)](https://www.sidefx.com/docs/houdini/model/attributes.html#:~:text=Attributes are named values stored,you can use in expressions.)*