# Primitive geometry node

Edits primitive, primitive attributes, and profile curves.

In Houdini, each geometry primitive has attributes such as XYZ position, size, orientation, color, and alpha.

A Bezier surface is a single primitive, as is a NURBS surface, while a polygon mesh can be made of hundreds of individual primitives.

You can use this operator to:

• Translate, rotate, and scale primitives.

• Apply parametric affine transformations to a profile curve.

(When transforming profile curves, you can only rotate around the Z axis, since the X and Y axes are projected onto the surface and so cannot rotate off the surface. Similarly, you cannot scale along the Z axis.)

• Make primitives open or closed.

• Reverse the vertex order of all faces.

• Reverse surface normals (for example, to map a texture onto the inside of a sphere).

• Apply transforms per-primitive.

• Set primitive attributes such as color.

## Template geometry

Various options let you modify the input primitives in relation to another piece of geometry. For example, you can match the normals of the input primitives to the normals of the template geometry.

You can use a group within the input primitives as the template geometry (using the Template group parameter), or connect the template geometry to this node’s second (Template) input.

## Parameters

Source Group

Primitive and/or profile group to operate on.

Template Group

A subset of template points to transform to.

## Transform

Do Transformation

Transform the input primitives using the parameters below.

Rotate to template

Available when geometry is connected to the second (template) input. Rotates primitives to face template normals. Match Normals

Off

Do not match the template.

On

Rotate primitives to face the normals of template geometry.

Match normals

Rotate primitive so their normals match the normals of the template geometry.

Transform Order

Order in which transformations occur.

Rotate Order

Order in which rotations occur.

Translate

Moves primitives along X, Y, and Z axes.

Rotate

Rotates primitives.

Scale

Scales primitives along X, Y, and Z axes.

Shear

Amount of shearing. The three values represent X on XY plane, X on XZ plane, and Y on YZ plane respectively.

Pivot

Local pivot point for transformations.

Lookat Object

Rotates the input primitives to point at this object.

Up-Vector

Orientation along axes.

Vector Attributes to Transform

Names of the vector attributes to transform using the parameters above. You can only transform point and primitive vectors can be transformed. You cannot transform vertex attributes.

A value of `*` means to transform all known vector attributes. If the field is empty, no attributes are transformed.

## Attributes

These attribute changes only apply to primitives, not to profiles.

Color

Diffuse color (RGB)

Alpha

Transparency value

Crease

Crease weight for polygonal subdivision

Texture

Create a string attribute for texture maps

## Face/Hull

Preserve Shape U/V

If clamping or closing rounded, preserves shape.

Close U/V

Closes, opens, or unrolls primitive in U direction.

Clamp U/V

Clamps NURBS endpoints to original positions.

Operation

Reverse

Reverses U for faces, U & V for hulls

Reverse U/V

Reverses U or V.

Swap

Interchanges U, V. Preserves topology.

Shift

Cycles vertices by U/V Offset.

U Offset

Amount to cycle vertices in U direction.

V Offset

Amount to cycle vertices in V direction.

## Meta

Overview

These options apply only to meta-surfaces.

Meta-surface Weight

Allows meta-surface weighting.

Weight

Weight of meta-surface.

## Particles

Overview

These options apply only to particle primitives. They can be used to override the options usually set by the Render POP.

Particle Render Type

Controls if the particle primitive’s render attributes should be overridden.

Particle Type

How the particles are rendered.

If you are outputting to RenderMan, use Disk for RiPoint and Line for RiCurve.

Spheres

Render particles as spheres.

Disks

Render particles as flat discs oriented toward the camera.

Lines

Render particles as lines between their previous and current positions. This is similar to how particles appear in the 3D viewport.

Tubes

Render particles as open tubes between their previous and current positions.

Capped

Render particles as capped tubes between their previous and current positions.

Rounded

Render particles as round-capped tubes between their previous and current positions.

Particle Size

Sets the size of rendered particles. To change particle size for individual particles, use the Property POP to set the particle’s scale (`pscale`) attribute.

Particle Blur

How long the particles will appear when rendered. For end to end connectivity, set this to `1/\$FPS`. To stretch particles increase this value, or to squash them decrease it.

## Volumes

These options only apply to volume primitives. They can adjust certain internal parameters of the volume primitives, such as the behavior when sampled outside their bounding box or their tolerance for compression.

These options can also apply to VDB primitives where sensible.

Controls if the visualization options will be changed. This also affects VDB primitives.

Display Mode

How this volume primitive will be displayed in the viewport. This does not affect the underlying volume at all, just its display-time appearance.

This also affects VDB primitives.

Smoke

The volume is rendered as smoke. Values of 0 or less are fully transparent. If lights are present, they are self-shadowed with the volume.

Rainbow

The volume is rendered as transparent smoke. Values of 0 or less are fully transparent. Lights are ignored, reducing computation time. Instead, the smoke is colored a rainbow hue according to the position in the bounding box.

Isosurface

An isosurface of equal valued voxels is extracted from the volume and displayed. This Display Isocontour is used to determine which isosurface is extracted.

Invisible

The contents of the volume are not rendered at all.

Display Density

Controls the fall off rate for the smoke visualization. Lower values allows the smoke to be more transparent.

This also affects VDB primitives.

Display Isocontour

Which isocontour to extract from the volume. The default of 0 is good for SDF volumes. Fog style volumes would work better with something non-zero, such as 0.5.

This also affects VDB primitives.

Taper

Allows you to override the tapering of the volume along the Z direction. This allows a volume that better fits a camera’s viewing area, so you can have a greater density of volumes close to the camera than far away.

The X taper can also control VDB primitives that have defined frustums.

### Volumes

These options only apply to Volume primitives.

Controls if the border type will be changed.

Border Type

The behavior when the volume is sampled outside of its defined box.

Constant

The border value will be returned.

Repeat

The volume will wrap, returning values from the opposite side of the volume.

Streak

The value at the edge of the volume closest to the sample will be returned.

SDF

The volume will be treated as a signed distance field. The distance from the sample point to the closest point on the volume will be added to the value at that closest point. This ensures the volume continues to approximate distances outside of its defined box.

Border Value

When the border type is constant, this is the value returned for out of bounds sampling.

Controls if the compression tolerance will be changed.

Compression Tolerance

When tiles in the volume are compressed this will be the tolerance used for lossy compression. A value of 0 will ensure lossless compression. (Note compression to constant tiles will still occur)

### VDB

These options only apply to VDB primitives

Class

The semantic meaning of the volume.

Other

No specific interpretation.

Level Set

The volume represents a surface.

Fog Volume

The volume consists of density values (eg. smoke).

Staggered Vector Field

Volume data for simulation grids.

Creator

An optional string of the entity responsible for creating the VDB.

Transform Values

If set, the actual voxel values of the VDB will be altered by transformation operations, when those transformation operations support this.

Vector Type

The semantic meaning of the components of a vector volume. This affects how transformations are applied.

Tuple/Colow/UVW

Does not transform.

Applies the inverse-transpose of the transform matrix, ignoring translation.

Unit Normal

Applies the forward transform matrix, ignoring translation.

Displacement/Velocity/Acceleration

Applies the forward transform matrix, ignoring translation.

Position

Applies "regular" transformation, vector translates.

Write 16-Bit Floats

A flag to specify that when writing to disk that the volume should be down converted to 16 bit. This does not affect how it is stored in memory.

## Inputs

Primitive(s)

Geometry to process.

Template

Geometry you can use to control various modifications of the input geometry. For example, you can match the normals of the input primitives to the template geometry. You can also use a group within the input geometry as the template geometry instead of connecting a node to this input.

## Locals

PR

Primitive or profile number.

NPR

Total number of primitives or profiles.

PT

Point number of first point in primitive.

NVTX

The number of vertices in the primitive.

CEX, CEY, CEZ

Centroid of the primitive or profile.

DX, DY, DZ

Direction from the centroid to the primitive centroid.

NX, NY, NZ

Normal of the primitive.

CR, CG, CB, CA

Diffuse primitive color & Alpha for primitive.

CREASE

Crease weight for each edge of primitive

WEIGHT

Weight of meta-primitive (0 for non-meta-primitive)

## Examples

PrimCenter Example for Primitive geometry node

This is an example of how to use the Primitive SOP to correctly sweep primitives on a curve.

The Sweep SOP places the origin of a primitive on a curve by default. If the primitive centroid is away from the origin, the primitive will be placed away from the curve.

In order to correctly place the primitive’s centroid on the backbone, its centroid must be at the origin. For this, the Primitive SOP is used.

PrimRotate Example for Primitive geometry node

This example demonstrates how to rotate individual primitives on a grid surface using the Primitive SOP.

A Group SOP is used to animate a bounding box over the grid surface, thereby activating the randomized rotations in the Primitive SOP.

PrimitiveColors Example for Primitive geometry node

This example demonstrates using the Primitive SOP to add a Color attribute to primitive geometry.

The rand() function is used in the RGB fields to generate different random colors for each primitive.

Then the prim() function is used to reference the attribute values of one SOP, to drive the attribute values of another SOP.

PrimitiveExplode Example for Primitive geometry node

This file demonstrates the ability of the Primitive SOP to control the individual primitives of the object.

With expressions in the Translate Parameter, motion is created driving the primitives away from their centroid. Yet another expression presents the primitives with a randomized rotation. Another randomizing expression colorizes each of the primitives.

Together these parameter create an explosion destroying the original sphere.

PrimitiveMetaWeight Example for Primitive geometry node

This example demonstrates the how the Primitive SOP can be used to drive the attributes of other geometry. In this case it is used to affect the Weight Parameter of a Metaball SOP.

In addition, the parameter can be animated over time. Press Play to see the animation.

The following examples include this node.

BlendPoseBasic Example for BlendPose channel node

This is a simple example of using the BlendPose CHOP to deform some geometry using random tracker point positions.

ChannelBasic Example for Channel channel node

This is a simple example of using the Channel CHOP along with a Noise CHOP to add some variety to keyframed animation that can still be easily tweaked as keyframe animation. Notice that the object can be manipulated as usual in the viewport transparently. The values will be modified in the Channel CHOP.

CopyAnimation Example for Copy channel node

This file demonstrates how the Copy CHOP can be used to copy channels and apply them to geometry.

CountImpacts Example for Count channel node

This example demonstrates how to count impacts from a DOPs simulation using the Count CHOP. Then, using the values from the Count CHOP, we generate copies of a teapot.

Lookup Example for Lookup channel node

This example demonstrates how to use the Lookup CHOP to play animation based on an event, or trigger.

Keyboard Example for MIDI Out channel node

This example demonstrates how to write MIDI data using the MIDI Out CHOP, and read it in using the MIDI In CHOP. The MIDI that is written out is based on geometry, and the MIDI that is read in is controlling other geometry.

NoiseTransform Example for Noise channel node

This example demonstrates using the Noise CHOP to generate animation and apply it to geometry.

AnimationSequence Example for Sequence channel node

This example demonstrates how to take the animation from three separate objects, and sequence their animation into one animation on a fourth object.

BridgeCollapse Example for Apply Relationship dynamics node

This example shows how to use the Apply Relationship DOP to propagate constraints automatically and create an RBD simulation of a collapsing bridge.

Street Crowd Example Example for Crowd Solver dynamics node

Crowd example showing a street setup with two agent groups

The setup creates two groups of agents. The yellow agents are zombies which follow a path of the street. The blue agents are living pedestrians that wander around until they come into proximity of the zombies and then they swtich into a running state.

Triggers to change agent states are setup in the crowd_sim dopnet. The zombies group uses proximity to the stoplights and the color of the light to transition into a standing state when lights are red. The living group transition into a running state when they get close to the zombie agents.

DensityViscosity Example for FLIP Solver dynamics node

This example demonstrates two fluids with different densities and viscosities interacting with a solid object.

EqualizeLiquid Example for Gas Equalize Volume dynamics node

This example demonstrates how the Gas Equalize Volume dop can be used to preserve the volume in a fluid simulation.

TeapotUnderTension Example for Gas Surface Tension dynamics node

This example creates a teapot shaped blob of liquid. It then uses surface tension forces to smooth the blob into a sphere.

InheritVelocity Example for RBD State dynamics node

This example demonstrates the use of the RBD State node to inherit velocity from movement and collision with other objects in a glued RBD fracture simulation.

rbdsmokesource Example for Smoke Object dynamics node

A ghostly tetrahedron bounces around a box, its presense shown by its continuous emission of smoke.

FractureExamples Example for Voronoi Fracture Solver dynamics node

This example actually includes eight examples of ways that you can use voronoi fracturing in Houdini. In particular, it shows how you can use the Voronoi Fracture Solver and the Voronoi Fracture Configure Object nodes in your fracture simulations. Turn on the display flags for these examples one at a time to play the animation and dive down into each example to examine the setup.

TransparentShadows Example for Light object node

This example shows how to configure transparent shadows with deep shadow maps. The scene includes a transparent grid which casts a shadow on the scene. The renderer used is micropolygon rendering.

AmbientOcclusion Example for Mantra render node

Ambient occlusion is a fast technique for producing soft, diffuse lighting in open spaces by using ray tracing. It is computed by determining how much of the hemisphere above a point is blocked by other surfaces in the scene, and producing a darker lighting value when the point is heavily occluded. This technique can be useful when you need a GI-like effect without paying the price for full global illumination.

With this particular example, an Ambient Occlusion light and some geometry is provided in the form of a Digital Asset. An Environment Light was used, and it’s parameters were promoted for easy access.

Decreasing the sample count allows you to improve render time at the expense of some additional noise in the render. The following render uses the same shader as the image above but decreases the samples from the default of 256 to 16. This value is set on the Sampling Quality under the Render Options tab of the Light.

Environment Maps

If you have a smooth environment map, it is possible to replace the global background color (white) with the value from an environment map. You can also enable the Sky Environment Map under the Sky Environment Map tab.

AttribPromoteSphere Example for Attribute Promote geometry node

This example demonstrates how the AttribPromote SOP can be used to transfer (promote) attributes between points and primitives.

AttributeRename Example for Attribute Rename geometry node

This is an example of how the Attribute SOP is used to delete and rename attributes within Houdini. Attributes may also be renamed for proper RIB outputs for Renderman.

ClipVariations Example for Clip geometry node

This network compares the various ways in which the Clip SOP can be used with geometry. Depending on what parts of the clipped geometry we want to keep, different effects are achievable.

The Clip SOP can also be used as a grouping tool by specify group boundaries with clip planes.

Clip planes can be animated. Play the animation to view the results.

ConnectedBalls Example for Connectivity geometry node

This example demonstrates how to use an attribute generated by the Connectivity SOP to color different pieces of geometry from a DOPs simulation.

StampStars Example for Copy Stamp geometry node

This example demonstrates the power of the Copy SOP’s Stamp operation.

Here, a Copy SOP is used to copy a circle onto the points of a sphere. The Stamp operation then applies various modifications to those copies based on division, scale, color, and extrusion. This results in the generation of a randomized variety of "stars".

Starting with a simple circle, a large number of variations are created using in the copies through the use of Stamping with expressions.

CreepParticleTubeA Example for Creep geometry node

This example shows two different ways in which particles can be crept on a surface. In this case, the surface is a contorted tube.

One version shows how particles are crept inside the surface, the other shows how particles are crept outside the surface. This is done by changing the z scale in the Creep SOP, which offsets the particles perpendicular to the surface.

The particles are birthed from a circle that is carved from the tube geometry.

CurveClayBasic Example for Curveclay geometry node

This is a demonstration of how the CurveClay SOP can create an embossed effect on nurbs or bezier geometry.

Two different methods of using the CurveClay SOP to imprint font onto a sphere are shown.

The first method uses a single projected profile, the second method uses two profiles.

FitSurfaces Example for Fit geometry node

This contains examples of fitting a Polygon Mesh to a NURBS surface through the use of the Fit SOP. There are two methods of fitting:

• Approximation, which generates primitives that roughly follow the path of the data points.

• Interpolation, which generates primitives that touch all the data points.

glueclusterexample Example for Glue Cluster geometry node

This example shows how to use the gluecluster SOP and glue constraint networks to cluster together the pieces of a voronoi fracture. This allows clustering to be used with Bullet without introducing concave objects.

GroupCopyBox Example for Group Copy geometry node

This example demonstrates how to group geometry based on a group from another network.

TransferProximity Example for Group Transfer geometry node

This example demonstrates how to use the proximity of a group’s primitives to transfer the group to a new set of geometry using the Group Transfer SOP.

Brickify Example for IsoOffset geometry node

This example shows how to 'brickify' or make an object appear to be made of bricks using the IsoOffset SOP.

This example demonstrates how to have multiple shading layers with different uv sets using the Layer SOP and the VEX Layered Surface SHOP.

MatchTopologySphere Example for Match Topology geometry node

This example demonstrates how the Match Topology SOP lines up the points and primitives between two geometries with equal amounts of points and primitives.

The Tracking Points, Reference Points, and Assume Primitives Match features are utilized to get a perfect match.

MeasureArea Example for Measure geometry node

This example demonstrates how to create groups based on the area of a primitive using the Measure SOP.

The Particle SOP enables the creation of particles at the SOP level and allows those particles to directly interact with geometry. Furthermore, these particles are in turn treated as point geometry.

In this example, particles are both crept along and collided with a collision tube object. It is possible to also manipulate and control particles in SOPs through the adjustment of point normals (including those of the particles).

PlatonicSolidsTypes Example for Platonic Solids geometry node

The Platonic Solids SOP generates platonic solids of different types. Platonic solids are polyhedrons which are convex and have all the vertices and faces of the same type. There are only five such objects, which form the first five choices of this operation.

This example shows all seven of the different polyhedron forms that can be made using the Platonic Solids SOP.

PrimCenter Example for Primitive geometry node

This is an example of how to use the Primitive SOP to correctly sweep primitives on a curve.

The Sweep SOP places the origin of a primitive on a curve by default. If the primitive centroid is away from the origin, the primitive will be placed away from the curve.

In order to correctly place the primitive’s centroid on the backbone, its centroid must be at the origin. For this, the Primitive SOP is used.

PrimRotate Example for Primitive geometry node

This example demonstrates how to rotate individual primitives on a grid surface using the Primitive SOP.

A Group SOP is used to animate a bounding box over the grid surface, thereby activating the randomized rotations in the Primitive SOP.

PrimitiveColors Example for Primitive geometry node

This example demonstrates using the Primitive SOP to add a Color attribute to primitive geometry.

The rand() function is used in the RGB fields to generate different random colors for each primitive.

Then the prim() function is used to reference the attribute values of one SOP, to drive the attribute values of another SOP.

PrimitiveExplode Example for Primitive geometry node

This file demonstrates the ability of the Primitive SOP to control the individual primitives of the object.

With expressions in the Translate Parameter, motion is created driving the primitives away from their centroid. Yet another expression presents the primitives with a randomized rotation. Another randomizing expression colorizes each of the primitives.

Together these parameter create an explosion destroying the original sphere.

PrimitiveMetaWeight Example for Primitive geometry node

This example demonstrates the how the Primitive SOP can be used to drive the attributes of other geometry. In this case it is used to affect the Weight Parameter of a Metaball SOP.

In addition, the parameter can be animated over time. Press Play to see the animation.

RayWrap Example for Ray geometry node

The Ray SOP projects one object over the surface contours of another.

It does so by calculating the collisions of the projected object’s normals with the surface geometry of the collided object.

In this example, a Grid is wrapped over the surface of a deformed Sphere using the Ray SOP.

A Facet SOP is used to correct the normals of the wrapped Grid after it is deformed over the surface.

SkinShip Example for Skin geometry node

This example displays a creative use for the Skin SOP involving the creation of an alien ship.

Curves are first created with the Curve SOP. Then, with the Skin SOP individual curves can be selected to be used as reference for a generated surface.

SkinSurfaceCopies Example for Skin geometry node

This is an example of how to create a new surface using the Skin SOP.

Here a surface is extracted from a torus, copied and used to create a skin that shoots up from the torus.

volumesurface_hierarchy Example for Volume Surface geometry node

This example shows how to use the Volume Surface SOP to surface a hierarchy of SDFs using explicit grading.

ImportVolumes Example for Volume VOP geometry node

This example shows how to import multiple volumes into a Volume VOP SOP.

# Geometry nodes

• Removes elements while trying to maintain the overall appearance.

• Creates Points or Polygons, or adds points/polys to an input.

• Creates agent primitives.

• Adds new clips to agent primitives.

• Adds new clips to agent primitives.

• Defines how agents' animation clips should be played back.

• Creates geometry describing possible transitions between animation clips.

• Creates a new agent layer that is suitable for collision detection.

• Creates point attributes that specify the rotation limits of an agent’s joints.

• Builds a constraint network to hold an agent’s limbs together.

• Writes agent definition files to disk.

• Edits properties of agent primitives.

• Adds a new layer to agent primitives.

• Adjusts the head of an agent to look at a specific object or position.

• Adjusts the head of an agent to look at a specific object or position.

• Adds various common point attributes to agents for use by other crowd nodes.

• Adds various common point attributes to agents for use by other crowd nodes.

• Provides simple proxy geometry for an agent.

• Creates parent-child relationships between agents.

• Adapts agents' legs to conform to terrain and prevent the feet from sliding.

• Adds new transform groups to agent primitives.

• Extracts geometry from agent primitives.

• Extracts geometry from agent primitives for a Vellum simulation.

• Loads the geometry from an Alembic scene archive (.abc) file into a geometry network.

• Creates a geometry group for Alembic primitives.

• Modifies intrinsic properties of Alembic primitives.

• Aligns a group of primitives to each other or to an auxiliary input.

• Cleans up a series of break operations and creates the resulting pieces.

• Blurs out (or "relaxes") points in a mesh or a point cloud.

• Changes the size/precision Houdini uses to store an attribute.

• Composites vertex, point, primitive, and/or detail attributes between two or more selections.

• Copies attributes between groups of vertices, points, or primitives.

• Adds or edits user defined attributes.

• Deletes point and primitive attributes.

• Allows simple VEX expressions to modify attributes.

• Fades a point attribute in and out over time.

• Interpolates attributes within primitives or based on explicit weights.

• Copies and flips attributes from one side of a plane to another.

• Adds noise to attributes of the incoming geometry.

• Promotes or demotes attributes from one geometry level to another.

• Generates random attribute values of various distributions.

• Renames or deletes point and primitive attributes.

• Modifies point attributes based on differences between two models.

• Edits string attribute values.

• Copies, moves, or swaps the contents of attributes.

• Transfers vertex, point, primitive, and/or detail attributes between two models.

• Transfers attributes between two geometries based on UV proximity.

• Runs a VOP network to modify geometry attributes.

• Runs a VEX snippet to modify attribute values.

• Samples texture map information to a point attribute.

• Copies information from a volume onto the point attributes of another piece of geometry, with optional remapping.

• Converts primitives for ODE and Bullet solvers.

• Computes lighting values within volume primitives

• Provides operations for moving knots within the parametric space of a NURBS curve or surface.

• Applies deformations such as bend, taper, squash/stretch, and twist.

• Deletes primitives, points, edges or breakpoints.

• Computes a 3D metamorphosis between shapes with the same topology.

• Computes a 3D metamorphosis between shapes with the same topology.

• The start of a looping block.

• The start of a compile block.

• The end/output of a looping block.

• The end/output of a compile block.

• Supports Bone Deform by assigning capture weights to bones.

• Supports Deform by assigning capture weights to points based on biharmonic functions on tetrahedral meshes.

• Supports Bone Capture Biharmonic by creating lines from bones with suitable attributes.

• Supports Bone Deform by assigning capture weights to points based on distance to bones.

• Uses capture attributes created from bones to deform geometry according to their movement.

• Creates default geometry for Bone objects.

• Combines two polygonal objects with boolean operators, or finds the intersection lines between two polygonal objects.

• Fractures the input geometry using cutting surfaces.

• Creates a bounding box, sphere, or rectangle for the input geometry.

• Creates a cube or six-sided rectangular box.

• Deforms the points in the first input using one or more magnets from the second input.

• Records and caches its input geometry for faster playback.

• Closes open areas with flat or rounded coverings.

• Converts array attributes into a single index-pair capture attribute.

• Converts a single index-pair capture attribute into per-point and detail array attributes.

• Adjusts capture regions and capture weights.

• Lets you paint capture attributes directly onto geometry.

• Copies capture attributes from one half of a symmetric model to the other.

• Overrides the capture weights on individual points.

• Supports Capture and Deform operation by creating a volume within which points are captured to a bone.

• Slices, cuts or extracts points or cross-sections from a primitive.

• Reads sample data from a chop and converts it into point positions and point attributes.

• Creates open or closed arcs, circles and ellipses.

• Lets you deform NURBS faces and NURBS surfaces by pulling points that lie directly on them.

• Helps clean up dirty models.

• Removes or groups geometry on one side of a plane, or creases geometry along a plane.

• Captures low-res simulated cloth.

• Deforms geometry captured by the Cloth Capture SOP.

• Creates a volume representation of source geometry.

• Fills a volume with a diffuse light.

• Applies a cloud like noise to a Fog volume.

• Low-level machinery to cluster points based on their positions (or any vector attribute).

• Higher-level node to cluster points based on their positions (or any vector attribute).

• Creates geometry and VDB volumes for use with DOPs collisions.

• Adds color attributes to geometry.

• Adjust surface point normals by painting.

• Creates lines between nearby pieces.

• Creates an attribute with a unique value for each set of connected primitives or points.

• Creates simple geometry for use as control shapes.

• Converts geometry from one geometry type to another.

• Converts a 2D height field to a 3D VDB volume, polygon surface, or polygon soup surface.

• Converts the input geometry into line segments.

• Polygonizes metaball geometry.

• Generates the oriented surface of a tetrahedron mesh.

• Converts sparse volumes.

• Converts a Point Cloud into a VDB Points Primitive, or vice versa.

• Converts the iso-surface of a volume into a polygonal surface.

• Decomposes the input geometry into approximate convex segments.

• Creates multiple copies of the input geometry, or copies the geometry onto the points of the second input.

• Copies geometry and applies transformations to the copies.

• Copies the geometry in the first input onto the points of the second input.

• Manually adds or removes a creaseweight attribute to/from polygon edges, for use with the Subdivide SOP.

• Deforms and animates a piece of geometry across a surface.

• Populates a crowd of agent primitives.

• Creates crowd agents to be used with the crowd solver.

• Creates polygonal, NURBS, or Bezier curves.

• Deforms a spline surface by reshaping a curve on the surface.

• Finds the intersections (or points of minimum distance) between two or more curves or faces.

• Imports fields from DOP simulations, saves them to disk, and loads them back again.

• Imports scalar and vector fields from a DOP simulation.

• Imports option and record data from DOP simulations into points with point attributes.

• Generates point emission sources for debris from separating fractured rigid body objects.

• Runs a VEX snippet to deform geometry.

• Deletes input geometry by group, entity number, bounding volume, primitive/point/edge normals, and/or degeneracy.

• Smooths out (or "relaxes") point deformations.

• Attempts to prevent collisions when deforming geometry.

• Deletes edges from the input polygonal geometry merging polygons with shared edges.

• Deletes points, primitives, and edges from the input geometry and repairs any holes left behind.

• Divides, smooths, and triangulates polygons.

• Imports and transforms geometry based on information extracted from a DOP simulation.

• Creates a curve based on user input in the viewport.

• Culls the input geometry according to the specifications of the For Each SOP.

• Collapses edges and faces to their centerpoints.

• Sharpens edges by uniquing their points and recomputing point normals.

• Inserts points on the edges of polygons and optionally connects them.

• Flips the direction of polygon edges.

• Cuts geometry along edges using guiding curves.

• Copies and optionally modifies attribute values along edges networks and curves.

• Edits points, edges, or faces interactively.

• Closes, opens, or clamps end points.

• Sets an attribute on selected points or primitives to sequential numbers.

• Generates a message, warning, or error, which can show up on a parent asset.

• Pushes geometry out from the center to create an exploded view.

• Pushes geometry out from the center to create an exploded view.

• Computes the centroid of each piece of the geometry.

• Computes the best-fit transform between two pieces of geometry.

• Extrudes geometry along a normal.

• Extrudes surface geometry into a volume.

• Creates a surface or density VDB for sourcing FLIP simulations.

• Controls the smoothness of faceting of a surface.

• Adds smooth distance attributes to geometry.

• Evolves polygonal curves as vortex filaments.

• Reads, writes, or caches geometry on disk.

• Writes and reads geometry sequences to disk.

• Reads and collates data from disk.

• Creates smooth bridging geometry between two curves or surfaces.

• Finds the shortest paths from start points to end points, following the edges of a surface.

• Fits a spline curve to points, or a spline surface to a mesh of points.

• Compresses the output of fluid simulations to decrease size on disk

• Creates 3D text from Type 1, TrueType and OpenType fonts.

• Uses a metaball to attract or repel points or springs.

• Creates jagged mountain-like divisions of the input geometry.

• Creates a set of hair-like curves across a surface.

• Merges points.

• Merges or splits (uniques) points.

• Adds strength to a glue constraint network according to cluster values.

• Generates particles to be used as sources in a particle-based grain simulation.

• Assigns a unique integer attribute to non-touching components.

• Creates planar geometry.

• Blends the guides and skin of two grooms.

• Fetches groom data from grooming objects.

• Packs the components of a groom into a set of named Packed Primitives for the purpose of writing it to disk.

• Switches between all components of two groom streams.

• Unpacks the components of a groom from a packed groom.

• Generates groups of points, primitives, edges, or vertices according to various criteria.

• Combines point groups, primitive groups, or edge groups according to boolean operations.

• Copies groups between two pieces of geometry, based on point/primitive numbers.

• Deletes groups of points, primitives, edges, or vertices according to patterns.

• Runs VEX expressions to modify group membership.

• Sets group membership interactively by painting.

• Converts point, primitive, edge, or vertex groups into point, primitive, edge, or vertex groups.

• Groups points and primitives by ranges.

• Renames groups according to patterns.

• Transfers groups between two pieces of geometry, based on proximity.

• Advects guide points through a velocity volume.

• Resolves collisions of guide curves with VDB signed distance fields.

• Deforms geometry with an animated skin and optionally guide curves.

• Allows intuitive manipulation of guide curves in the viewport.

• Creates standard primitive groups used by grooming tools.

• Quickly give hair guides some initial direction.

• Creates masking attributes for other grooming operations.

• Creates and prepares parting lines for use with hair generation.

• Looks up skin geometry attributes under the root point of guide curves.

• Constructs a coherent tangent space along a curve.

• Transfer hair guides between geometries.

• Converts dense hair curves to a polygon card, keeping the style and shape of the groom.

• Clumps guide curves together.

• Generates hair on a surface or from points.

• Generates a velocity field based on stroke primitives.

• Generates an initial heightfield volume for use with terrain tools.

• Blurs a terrain height field or mask.

• Limits height values to a certain minimum and/or maximum.

• Creates a copy of a height field or mask.

• Extracts a square of a certain width/length from a larger height volume, or resizes/moves the boundaries of the height field.

• Creates a cutout on a terrain based on geometry.

• Displaces a height field by another field.

• Advects the input volume through a noise pattern to break up hard edges and add variety.

• Lets you draw shapes to create a mask for height field tools.

• Calculates thermal and hydraulic erosion over time (frames) to create more realistic terrain.

• Calculates thermal and hydraulic erosion over time (frames) to create more realistic terrain.

• Simulates the erosion from one heightfield sliding over another for a short time.

• Distributes water along a heightfield. Offers controls for adjusting the intensity, variability, and location of rainfall.

• Calculates the effect of thermal erosion on terrain for a short time.

• Imports a 2D image map from a file or compositing node into a height field or mask.

• Generates flow and flow direction layers according to the input height layer.

• Copies another layer over the mask layer, and optionally flattens the height field.

• Composites together two height fields.

• Sets all values in a heightfield layer to a fixed value.

• Sets the border voxel policy on a height field volume.

• Creates a mask based on different features of the height layer.

• Creates a mask based some other geometry.

• Creates a mask where the input terrain is hollow/depressed, for example riverbeds and valleys.

• Adds vertical noise to a height field, creating peaks and valleys.

• Exports height and/or mask layers to disk as an image.

• Lets you paint values into a height or mask field using strokes.

• Patches features from one heightfield to another.

• Adds displacement in the form of a ramps, steps, stripes, Voronoi cells, or other patterns.

• Projects 3D geometry into a height field.

• Applies a material that lets you plug in textures for different layers.

• Remaps the values in a height field or mask layer.

• Changes the resolution of a height field.

• Scatters points across the surface of a height field.

• Scatters points across the surface of a height field.

• Simulates loose material sliding down inclines and piling at the bottom.

• Creates stepped plains from slopes in the terrain.

• Stitches height field tiles back together.

• Splits a height field volume into rows and columns.

• Height field specific scales and offsets.

• Visualizes elevations using a custom ramp material, and mask layers using tint colors.

• Makes holes in surfaces.

• Deforms the points in the first input to make room for the inflation tool.

• Instances Geometry on Points.

• Creates points with attributes at intersections between a triangle and/or curve mesh with itself, or with an optional second set of triangles and/or curves.

• Composes triangle surfaces and curves together into a single connected mesh.

• Processes its inputs using the operation of a referenced compiled block.

• Builds an offset surface from geometry.

• Generates an isometric surface from an implicit function.

• The Join op connects a sequence of faces or surfaces into a single primitive that inherits their attributes.

• Divides, deletes, or groups geometry based on an interactively drawn line.

• Creates fractal geometry from the recursive application of simple rules.

• Deforms geometry based on how you reshape control geometry.

• Reads a lidar file and imports a point cloud from its data.

• Creates polygon or NURBS lines from a position, direction, and distance.

• Animates points using an MDD file.

• Deforms geometry by using another piece of geometry to attract or repel points.

• Aligns the input geometry to a specific axis.

• Resizes and recenters the geometry according to reference geometry.

• Reorders the primitive and point numbers of the input geometry to match some reference geometry.

• Assigns one or more materials to geometry.

• Measures area, volume, or curvature of individual elements or larger pieces of a geometry and puts the results in attributes.

• Measures volume, area, and perimeter of polygons and puts the results in attributes.

• Merges geometry from its inputs.

• Defines groupings of metaballs so that separate groupings are treated as separate surfaces when merged.

• Creates metaballs and meta-superquadric surfaces.

• Duplicates and mirrors geometry across a mirror plane.

• Displaces points along their normals based on fractal noise.

• Displaces points along their normals based on fractal noise.

• Supports Muscle Deform by assigning capture weights to points based on distance away from given primitives

• Deforms a surface mesh representing skin to envelop or drape over geometry representing muscles

• Creates a "naming" attribute on points or primitives allowing you to refer to them easily, similar to groups.

• Computes surface normal attribute.

• Does nothing.

• Merges geometry from multiple sources and allows you to define the manner in which they are grouped together and transformed.

• Assists the creation of a Muscle or Muscle Rig by allowing you to draw a stroke on a projection surface.

• Deforms input geometry based on ocean "spectrum" volumes.

• Deforms input geometry based on ocean "spectrum" volumes.

• Generates particle-based foam

• Generates particles and volumes from ocean "spectrum" volumes for use in simulations

• Generates particles and volumes from ocean "spectrum" volumes for use in simulations

• Generates volumes containing information for simulating ocean waves.

• Instances individual waveforms onto input points and generated points.

• Executes an OpenCL kernel on geometry.

• Marks the output of a sub-network.

• Packs geometry into an embedded primitive.

• Packs points into a tiled grid of packed primitives.

• Editing Packed Disk Primitives.

• Editing Packed Primitives.

• Lets you paint color or other attributes on geometry.

• Creates a color volume based on drawn curve

• Creates a fog volume based on drawn curve

• Creates an SDF volume based on drawn curve

• Generates a surface around the particles from a particle fluid simulation.

• Creates a set of regular points filling a tank.

• Places points and primitives into groups based on a user-supplied rule.

• Moves primitives, points, edges or breakpoints along their normals.

• Creates a planar polygonal patch.

• Fills in a 2d curve network with triangles.

• Deforms flat geometry into a pleat.

• Creates platonic solids of different types.

• Manually adds or edits point attributes.

• Constructs an iso surface from its input points.

• Deforms geometry on an arbitrary connected point mesh.

• Creates new points, optionally based on point positions in the input geometry.

• Jitters points in random directions.

• Moves points with overlapping radii away from each other, optionally on a surface.

• Generates a cloud of points around the input points.

• Computes and manipulates velocities for points of a geometry.

• Creates set of regular points filling a volume.

• Creates flat or tube-shaped polygon surfaces between source and destination edge loops, with controls for the shape of the bridge.

• Creates offset polygonal geometry for planar polygonal graphs.

• Extrudes polygonal faces and edges.

• Creates straight, rounded, or custom fillets along edges and corners.

• Bevels points and edges.

• Breaks curves where an attribute crosses a threshold.

• Helps repair invalid polygonal geometry, such as for cloth simulation.

• Extrudes polygonal faces and edges.

• Fills holes with polygonal patches.

• Creates coordinate frame attributes for points and vertices.

• Creates new polygons using existing points.

• Creates a smooth polygonal patch from primitives.

• Cleans up topology of polygon curves.

• Reduces the number of polygons in a model while retaining its shape. This node preserves features, attributes, textures, and quads during reduction.

• Combines polygons into a single primitive that can be more efficient for many polygons

• The PolySpline SOP fits a spline curve to a polygon or hull and outputs a polygonal approximation of that spline.

• Divides an existing polygon into multiple new polygons.

• Divides an existing polygon into multiple new polygons.

• Stitches polygonal surfaces together, attempting to remove cracks.

• Constructs polygonal tubes around polylines, creating renderable geometry with smooth bends and intersections.

• Interpolates between a set of pose-shapes based on the value of a set of drivers.

• Combine result of Pose-Space Deform with rest geometry.

• Packs geometry edits for pose-space deformation.

• Creates common attributes used by the Pose-Space Edit SOP.

• Edits primitive, primitive attributes, and profile curves.

• Takes a primitive attribute and splits any points whose primitives differ by more than a specified tolerance at that attribute.

• Extracts or manipulates profile curves.

• Creates profile curves on surfaces.

• Creates points for sourcing pyro and smoke simulations.

• Runs a Python snippet to modify the incoming geometry.

• Combines fractured pieces or constraints into larger clusters.

• Creates attributes describing rigid body constraints.

• Creates rigid body constraint geometry from curves drawn in the viewport.

• Creates rigid body constraint geometry from interactively drawn lines in the viewport.

• Creates rigid body constraint geometry from a set of rules and conditions.

• Creates additional detail on the interior surfaces of fractured geometry.

• Fractures the input geometry based on a material type.

• Fractures the input geometry based on a material type.

• Packs RBD geometry, constraints, and proxy geometry into a single geometry.

• Paints values onto geometry or constraints using strokes.

• Unpacks an RBD setup into three outputs.

• Attaches RenderMan shaders to groups of faces.

• Generates surfaces by stretching cross-sections between two guide rails.

• Projects one surface onto another.

• Increases the number of points/CVs in a curve or surface without changing its shape.

• Scatters new guides, interpolating the properties of existing guides.

• Recreates the shape of the input surface using "high-quality" (nearly equilateral) triangles.

• Repacks geometry as an embedded primitive.

• Resamples one or more curves or surfaces into even length segments.

• Sets the alignment of solid textures to the geometry so the texture stays put on the surface as it deforms.

• Retimes the time-dependent input geometry.

• Reverses or cycles the vertex order of faces.

• Revolves a curve around a center axis to sweep out a surface.

• Rewires vertices to different points specified by an attribute.

• Generates ripples by displacing points along the up direction specified.

• Generates ripples by displacing points along the up direction specified.

• Scatters new points randomly across a surface or through a volume.

• Runs scripts when cooked.

• Lets you interactively reshape a surface by brushing.

• Morphs though a sequence of 3D shapes, interpolating geometry and attributes.

• Sequence Blend lets you do 3D Metamorphosis between shapes and Interpolate point position, colors…

• Computes the post-deform or pre-deform difference of two geometries with similar topologies.

• Computes the convex hull of the input geometry and moves its polygons inwards along their normals.

• Takes the convex hull of input geometry and moves its polygons inwards along their normals.

• Builds a skin surface between any number of shape curves.

• Creates a sky filled with volumentric clouds

• Smooths out (or "relaxes") polygons, meshes and curves without increasing the number of points.

• Smooths out (or "relaxes") polygons, meshes and curves without increasing the number of points.

• Moves the selected point along its normal, with smooth rolloff to surrounding points.

• Moves the selected point, with smooth rolloff to surrounding points.

• Creates a tetrahedral mesh that conforms to a connected mesh as much as possible.

• Creates a simple tetrahedral mesh that covers a connected mesh.

• Creates a partition of a tetrahedral mesh that can be used for finite-element fracturing.

• Allows running a SOP network iteratively over some input geometry, with the output of the network from the previous frame serving as the input for the network at the current frame.

• Reorders points and primitives in different ways, including randomly.

• Creates a sphere or ovoid surface.

• Splits primitives or points into two streams.

• Spray paints random points onto a surface.

• A SOP node that sets the sprite display for points.

• Insets points on polygonal faces.

• Caches the input geometry in the node on command, and then uses it as the node’s output.

• Stretches two curves or surfaces to cover a smooth area.

• Low level tool for building interactive assets.

• Subdivides polygons into smoother, higher-resolution polygons.

• The Subnet op is essentially a way of creating a macro to represent a collection of ops as a single op in the Network Editor.

• Trims or creates profile curves along the intersection lines between NURBS or bezier surfaces.

• Creates a surface by sweeping cross-sections along a backbone curve.

• Switches between network branches based on an expression or keyframe animation.

• Sends input geometry to a TOP subnet and retrieves the output geometry.

• Reads a CSV file creating point per row.

• Creates a rock creature, which can be used as test geometry.

• Creates a pig head, which can be used as test geometry..

• Creates a rubber toy, which can be used as test geometry.

• Creates a shader ball, which can be used to test shaders.

• Creates a squab, which can be used as test geometry.

• Creates a soldier, which can be used as test geometry.

• Provides a simple crowd simulation for testing transitions between animation clips.

• Provides a simple Bullet simulation for testing the behavior of a ragdoll.

• Partitions a given tetrahedron mesh into groups of tets isolated by a given polygon mesh

• Performs variations of a Delaunay Tetrahedralization.

• Cooks the input at a different time.

• Sets attributes used by the Toon Color Shader and Toon Outline Shader.

• Lets you interactively draw a reduced quad mesh automatically snapped to existing geometry.

• Creates a torus (doughnut) shaped surface.

• Traces curves from an image file.

• Creates trails behind points.

• The Transform operation transforms the source geometry in "object space" using a transformation matrix.

• Transforms the input geometry relative to a specific axis.

• Transforms the input geometry by a point attribute.

• Transforms input geometry according to transformation attributes on template geometry.

• Creates a triangular Bezier surface.

• Refines triangular meshes using various metrics.

• Connects points to form well-shaped triangles.

• Trims away parts of a spline surface defined by a profile curve or untrims previous trims.

• Creates open or closed tubes, cones, or pyramids.

• Generates an edge group representing suggested seams for flattening a polygon model in UV space.

• Adjusts texture coordinates in the UV viewport by painting.

• Lets you interactively move UVs in the texture view.

• Creates flattened pieces in texture space from 3D geometry.

• Creates flattened pieces in texture space from 3D geometry.

• Merges UVs.

• Packs UV islands efficiently into a limited area.

• Relaxes UVs by pulling them out toward the edges of the texture area.

• Assigns UVs by projecting them onto the surface from a set direction.

• Applies an image file as a textured shader to a surface.

• Assigns texture UV coordinates to geometry for use in texture and bump mapping.

• Transforms UV texture coordinates on the source geometry.

• Transforms UV texture coordinates on the source geometry.

• Separates UVs into reasonably flat, non-overlapping groups.

• Processes geometry using an external program.

• Unpacks packed primitives.

• Unpacks points from packed primitives.

• Creates one or more empty/uniform VDB volume primitives.

• Activates voxel regions of a VDB for further processing.

• Expand or contract signed distance fields stored on VDB volume primitives.

• Moves VDBs in the input geometry along a VDB velocity field.

• Moves points in the input geometry along a VDB velocity field.

• Computes an analytic property of a VDB volumes, such as gradient or curvature.

• Clips VDB volume primitives using a bounding box or another VDB as a mask.

• Combines the values of two aligned VDB volumes in various ways.

• Tests VDBs for Bad Values and Repairs.

• Cuts level set VDB volume primitives into multiple pieces.

• Build an LOD Pyramid from a VDB.

• Blends between source and target SDF VDBs.

• Create a mask of the voxels in shadow from a camera for VDB primitives.

• Deletes points inside of VDB Points primitives.

• Manipulates the Internal Groups of a VDB Points Primitive.

• Computes the steady-state air flow around VDB obstacles.

• Removes divergence from a Vector VDB.

• Fixes signed distance fields stored in VDB volume primitives.

• Re-samples a VDB volume primitive into a new orientation and/or voxel size.

• Reshapes signed distance fields in VDB volume primitives.

• Splits SDF VDBs into connected components.

• Smooths out the values in a VDB volume primitive.

• Smooths out SDF values in a VDB volume primitive.

• Creates an SDF VDB based on the active set of another VDB.

• Merges three scalar VDB into one vector VDB.

• Splits a vector VDB primitive into three scalar VDB primitives.

• Replaces a VDB volume with geometry that visualizes its structure.

• Generates a signed distance field (SDF) VDB volume representing the surface of a set of particles from a particle fluid simulation.

• Converts point clouds and/or point attributes into VDB volume primitives.

• Converts polygonal surfaces and/or surface attributes into VDB volume primitives.

• Fills a VDB volume with adaptively-sized spheres.

• Configures geometry for Vellum Grain constraints.

• Configure constraints on geometry for the Vellum solvers.

• Vellum solver setup to pre-roll fabric to drape over characters.

• Packs Vellum simulations, saves them to disk, and loads them back again.

• Packs Vellum geometry and constraints into a single geometry.

• Applies common post-processing effects to the result of Vellum solves.

• Blends the current rest values of constraints with a rest state calculated from external geometry.

• Runs a dynamic Vellum simulation.

• Unpacks a Vellum simulation into two outputs.

• Verify that a bsdf conforms to the required interface.

• Manually adds or edits attributes on vertices (rather than on points).

• Takes a vertex attribute and splits any point whose vertices differ by more than a specified tolerance at that attribute.

• Shows/hides primitives in the 3D viewer and UV editor.

• Lets you attach visualizations to different nodes in a geometry network.

• Creates a volume primitive.

• Computes analytic properties of volumes.

• Computes a speed-defined travel time from source points to voxels.

• Blurs the voxels of a volume.

• Bounds voxel data.

• Cuts polygonal objects using a signed distance field volume.

• Re-compresses Volume Primitives.

• Convolves a volume by a 3×3×3 kernel.

• Compute the Fast Fourier Transform of volumes.

• Feathers the edges of volumes.

• Flattens many volumes into one volume.

• Combines the scalar fields of volume primitives.

• Translates the motion between two "image" volumes into displacement vectors.

• Fill in a region of a volume with features from another volume.

• Remaps a volume according to a ramp.

• Rasterizes into a volume.

• Samples point attributes into VDBs.

• Converts a curve into a volume.

• Converts fur or hair to a volume for rendering.

• Converts a point cloud into a volume.

• Converts a point cloud into a volume.

• Reduces the values of a volume into a single number.

• Resamples the voxels of a volume to a new resolution.

• Resizes the bounds of a volume without changing voxels.

• Builds a Signed Distance Field from an isocontour of a volume.

• Extracts 2d slices from volumes.

• Splices overlapping volume primitives together.

• Stamps volumes instanced on points into a single target volume.

• Adaptively surfaces a volume hierarchy with a regular triangle mesh.

• Computes a trail of points through a velocity volume.

• Runs CVEX on a set of volume primitives.

• Computes a velocity volume.

• Generates a volume velocity field using curve tangents.

• Generates a velocity field within a surface geometry.

• Adjusts attributes for multi-volume visualization.

• Runs a VEX snippet to modify voxel values in a volume.

• Sets the voxels of a volume from point attributes.

• Fractures the input geometry by performing a Voronoi decomposition of space around the input cell points

• Fractures the input geometry by performing a Voronoi decomposition of space around the input cell points

• Given an object and points of impact on the object, this SOP generates a set of points that can be used as input to the Voronoi Fracture SOP to simulate fracturing the object from those impacts.

• Cuts the geometry into small pieces according to a set of cuts defined by polylines.

• Creates the point attributes needed to create a Vortex Force DOP.

• Generates volumes to be used as sources in a whitewater simulation.

• Generates emission particles and volumes to be used as sources in a Whitewater simulation.

• Computes generalized winding number of surface at query points.

• Morphs between curve shapes while maintaining curve length.

• Captures surfaces to a wire, allowing you to edit the wire to deform the surface.

• Deforms geometry captured to a curve via the Wire Capture node.

• Transfers the shape of one curve to another.

• Constructs polygonal tubes around polylines, creating renderable geometry.

• Assigns channel paths and/or pickscripts to geometry.