Some basic operators that give you geometry primitives
File
Loads a mesh (obj, bgeo, etc)
Trace
Uses a threshold to generate geometry from an image
Add
Creates individual points and/or polygons
Merge
Combines multiple pieces of geometry
Point
Manipulates
point properties and attributes. The second input allows operations
between two sets of points from different sources providing they have
the same number.
Primitive
Manipulates primitive (usually polygons) properties and attributes
Transform
Moves, rotates, and scales geometry
Facet
Most commonly used to calculate normals, but does a few other things too.
Group
Allows you to assign a group to a set of vertices, points, or primitives. (A bit like XSI’s Clusters)
Copy
Copies
input geometry. The second input allows you to copy the geometry from
the first input, onto each point of the second input. This operator
allows loop-style processing by using the Copy/Stamp feature.
Delete
Deletes geometry. Can be used with a Copy operator to perform loop-style processing.
AttribCreate
Allows you to store custom information at each vertex, point, primitive, or object
AttribTransfer
Copies attributes from one piece of geometry to another. The geometry does not have to match (just like XSI’s GATOR).
AttribPromote
Allows
you to do various statistics on an attribute (e.g. average, minimum,
maximum, mode, sum of squares, etc.) and transfer it to the
corresponding vertex, point, or primitive.
Measure
Allows you to calculate polygon area, perimeter or mesh curvature.
Cache
Stores geometry in memory to allow for faster previews.
Trail
Can calculate per a point velocity, or generate trails of points from animated geometry.
Skin
Performs a “loft” style operation
Resample
Redistributes points along a curve
Ray
Does ray tracing based on point nomal. Can be used to shrink wrap one mesh onto another.
Cookie, Boolean
Different types of Boolean style operations
Sort
Can sort point order based on various things.
Peak
Transforms points based on their normals
Connectivity
Creates an attribute with a value based on connectivity information. Works well with Partition operator
Partition
Assigns geometry to a group based on an attribute value. Often used with the Connectivity operator
Note: Trigonometric functions accept angles in degrees.
The modulus operation is achieved using the % character, and boolean
logic is achieved using the standard C operators, i.e. <. >,
<=, >=, ==, !=, !
Common Houdini Expression Local Variables
Important: The following variables are NOT available in every
operator. Each operator has its own local variables, and you can find
which ones in Houdini’s help documentation. The ones listed here are the
ones you’ll most commonly encounter.
$PT
Point number. Used in most SOPs that manipulate points
$PR
Primitive number. Used in most SOPs that manipulate primitives
$CY
Used by the Copy SOP to identify the current copy being made. Unless the second Copy input is being used, in which case $PT will be used instead.
$TX, $TY, $TZ
Position of a point
$NX, $NY, $NZ
Normal of a point/primitive
$CR, $CG, $CB, $CA
Color of a point/primitive
$VX, $VY, $VZ
Velocity of a point
$BBX, $BBY, $BBZ
The normalised (0 to 1) position of the point in the bounding box
$CEX, $CEY, $CEZ
Centroid of the geometry
$AGE
Number of seconds a particle has been alive
$LIFE
Normalised age (0 to 1) of a particle
$XMIN, $XMAX, etc.
Extents of the bounding box
$SIZEX, $SIZEY, $SIZEZ
Size of the bounding box
$TX2, $TY2, $TZ2
Used to identify the position of a point coming from the second input of a Point SOP. Similarly for other attributes, e.g. Normals, $NX2, etc.
Here’s a quick cheat sheet for Houdini that I wrote ages ago. It’s
probably got about 95% of what you need to use when you first start out
using Houdini.