Houdini 18.5 Nodes Geometry nodes

L-System geometry node

Creates fractal geometry from the recursive application of simple rules.

On this page

About L-systems

L-systems (Lindenmayer-systems, named after Aristid Lindenmayer, 1925-1989), allow definition of complex shapes through the use of iteration. They use a mathematical language in which an initial string of characters is matched against rules which are evaluated repeatedly, and the results are used to generate geometry. The result of each evaluation becomes the basis for the next iteration of geometry, giving the illusion of growth.

The L-system SOP lets you simulate complex organic structures such as trees, lightning, snowflakes, flowers, and other branching phenomena.

Placing an L-System in the viewer

To...Do this

Place the L-System anywhere in the scene

  1. Click the L-System tool on the Create tab.

  2. Move the cursor into the scene view.


    You can hold Alt to detach the L-System from the construction plane.

  3. Click to place the L-System anywhere in the scene view and press Enter to confirm your selection.

    If you press Enter without clicking, Houdini places the L-System at the origin.

Place the L-System at the origin

Press ⌃ Ctrl + on the L-System tool on the shelf.


L-systems can be moved once they are placed by either dragging them in the scene view or changing the values in the parameter editor.

Default L-Systems can be chosen from the Gear drop-down menu at the geometry level.

L-System Handles

The L-System does not have its own rotation parameters; however, you can rotate it at the object level using the handles in the scene view or by adding a Transform node at the geometry level.


The origin of the L-System is at the base of the tree, not the middle of the object.

Fractal properties

There are several factors which combine to organize plant structures and contribute to their beauty. These include:

  • symmetry

  • self-similarity

  • developmental algorithms

With L-systems, we are mostly concerned with the latter two. Self-similarity implies an underlying fractal structure which is provided through strings of L-systems. Benoit Mandelbrot describes self-similarity as follows:

"When each piece of a shape is geometrically similar to the whole, both the shape and the cascade that generate it are called self-similar."

L-systems provide a grammar for describing the growth of self-similar structures in time. L-system rules determine the underlying structures of growth in a way that is analogous to the way that DNA is thought to determine biological growth. This growth relies on the principle of self-similarity to provide extremely compact descriptions of complex surfaces.


The central concept of L-systems is rewriting. This works by recursively replacing an initial state (the initiator) with rewritten geometry (the generator), reduced and displaced to have the same end points as those of the interval being replaced.

In 1968, Astrid Lindenmayer introduced a string rewriting mechanism termed "L-systems". The grammar of L-systems is unique in that the method of applying productions is applied in parallel and simultaneously replaces all letters in a given "word".

The simplest example of a rewriting grammar is where two "words" or strings are used, built from the two letters: a and b, which may occur many times in a string. Each letter is associated with a rewriting rule. The rule a = ab means that the letter a is to be replaced by the string ab, and the rule b = a means that the letter b is to be replaced by a.

If we start the process with the letter b (the premise), and follow it through in time, we see a certain pattern emerges by following the rewriting rules:

Production rule syntax

The general form of an L-system rule is:

[left_context<] symbol [>right_context] [:condition]=replacement [:probability]



An optional string that must precede the symbol for this rule to match.


The symbol to replace. For example, if the symbol is A, occurrences of A in the initial string will be replaced with replacement (if this rule matches).


An optional string that must follow the symbol for this rule to match.


An optional expression that must be true for this rule to match.


The string that will replace the symbol (if this rule matches).


The optional chance (between 0 and 1) that this rule will be executed. For example, using 0.8 means this rule will execute 80% of the time.


You can use -> in production rules instead of =. The meaning is identical.

Turtle commands

We can combine this string-manipulation system with a graphics routine that interprets the strings as commands for a drawing "turtle" with a position (XYZ) and heading (angle). By following the commands, the turtle traces out a shape as it moves.

Examples of simple turtle commands:


Move forward a step, drawing a line connecting the previous position to the new position.


Move forward without drawing.


Rotate right 90 degrees.


Rotate left 90 degrees.

(In the actual L-system node, the angle of the + and - commands is configurable.)

With these simple rules, we can easily come up with a string that causes the turtle to draw a shape such as the letter "L". For example, assuming the turtle is initially facing upwards, we would use the following string to create the letter "L":

Rewriting turtle command strings

By iteratively running a turtle command string through rewrite rules, you can generate surprisingly complex geometry. The power of self-reference in rewrite rules can create extremely intricate figures.

As a very simple example of self-reference, consider an L-system with the initial string A and the rule A=F+A. The rule means "Wherever you see 'A', replace it with 'F+A'". Because the replacement will contain within it the trigger for the rule, each generation will cause the string to grow in a cascade effect:

This generates a growing list of repeated "move forward, then turn" commands. With a turn angle less than 90 and a sufficient number of generations, this L-system will approximate an arc or circle. You could use this behavior as the basis for curling a sheet of paper or curling a scorpion’s tail. Or, you could randomize the turn angle and create a squiggly line, which you could use as the basis for a bolt of lightning.

(Be sure not to confuse the turtle command string F+A with the mathematical statement F plus A. In the context of L-systems, the + symbol means "turn", not "add".)

Another example: the following figure is called a quadratic Koch island. Beginning with these values:

Initial string (premise)


Rewrite rule

F = F-F+F+FF-F-F+F



…the turtle generates the following for three generations:


The work required for Houdini to calculate successive generations increases exponentially. If you try the island example in Houdini, make sure the Generations parameter is not greater than 3.


You can press on an L-system node to see the node’s current string. This can be very useful in debugging rule substitution.


The systems described so far generate a single continuous line. To describe things like trees, we need a way to create branches.

In L-systems, you create branches with the square brackets ([ and ]). Any turtle commands you put inside square brackets are executed separately from the main string by a new turtle.

For example, the turtle commands F [+F] F [+F] [-F] is interpreted as:

  1. Go forward.

  2. Branch off a new turtle and have it turn right and then go forward.

  3. Go forward.

  4. Branch off a new turtle and have it turn right and then go forward.

  5. Branch off a new turtle and have it turn left and then go forward.

This creates the following figure:

Another example: the command string F [+F] [-F] F [+F] -FF creates the following figure:


The systems described so far generate flat geometry.

To move the turtle in 3D, you use the & (pitch up), ^ (pitch down), \\ (roll clockwise), and / (roll counter-clockwise) commands.

For example, the initial premise FFFA and the rule A= " [&FFFA] //// [&FFFA] //// [&FFFA].

This creates the following 3D figure:


The rule creates three branches at every generation. The pitch up commands (&) split the branches off from the vertical. The roll commands (/) make the branches go out in different directions. (Note the A at the end of each branch that ensures new copies of the rule will grow from the ends of the branches.)

The " command makes the F commands half length in each generation, which makes the branches shrink further out.

Use multiple L-system rules

In the previous section we used the rule A= " [&FFFA] //// [&FFFA] //// [&FFFA].

Obviously this rule has redundancy. Since L-systems are about replacing symbols with strings, we can simply replace the repeated strings with a new symbol, and then create a new rule for that symbol:

Rule 1

A= " [B] //// [B] //// [B]

Rule 2


Because the branches are now defined in one place, if you want to change the branch instructions you only need to edit one string.

Note that the two-rule system will take twice as many generations to produce the same result. This is because each generation performs one rule substitution.

So, whereas the single rule A= " [&FFFA] //// [&FFFA] //// [&FFFA] grows by expanding A at each generation, the dual rules of A= " [B] //// [B] //// [B] and B= &FFFA work by alternating between replacing A with " [B] //// [B] //// [B] and replacing B with &FFFA.

Turtle command reference

Normally turtle symbols use the current length/angle/thickness etc. to determine their effect. You can provide explicit arguments in brackets to override the normal values used by the turtle command.

The following list shows the bracketed arguments. Remember that you can simply use the single-character command without the arguments and Houdini will simply use the normal values.

See local functions and variables below for what functions and variables you can use in argument expressions inside the brackets.


Move forward (creating geometry) distance l of width w using s cross sections of d divisions each.


Move forward half the length (creating geometry) distance l of width w using s cross sections of d divisions each.


Move forward but don’t record a vertex distance l of width w using s cross sections of d divisions each.


Move forward (no geometry created) distance l of width w using s cross sections of d divisions each.


Move forward a half length (no geometry created) distance l of width w using s cross sections of d divisions each.

J(s,x,a,b,c), K(s,x,a,b,c), M(s,x,a,b,c)

Copy geometry from leaf input J, K, or M at the turtle’s position after scaling and reorienting the geometry. The geometry is scaled by the s parameter (default Step Size) and stamped with the values a through c (default no stamping). Stamping occurs if the given parameter is present and the relevant Leaf parameter is set. The x parameter is not used and should be set to 0. Note that point vector attributes in the leaf inputs will be affected by the turtle movements.


Apply tropism vector (gravity). This angles the turtle towards the negative Y axis. The amount of change is governed by g. The default change is to use the Gravity parameter.


Turn right a degrees. Default Angle.


Turn left a degrees (minus sign). Default Angle.


Pitch up a degrees. Default Angle.


Pitch down a degrees. Default Angle.


Roll clockwise a degrees. Default Angle.


Roll counter-clockwise a degrees. Default Angle.


Turn 180 degrees


Roll 180 degrees


Pitch / Roll / Turn random amount up to a degrees. Default 180.


Multiply current length by s. Default Step Size Scale.


Multiply current thickness by s. Default Thickness Scale.


Multiply current angle by s. Default Angle Scale.


Divide current length (underscore) by s. Default Step Size Scale.


Divides current width by s. Default Thickness Scale.


Divide current angle by s. Default Angle Scale.


Increment color index U by u. Default UV Increment's first parameter.


Increment color index V by v. Default UV Increment's second parameter.


Cut off remainder of branch


Rotates the turtle so the up vector is (0,1,0). Points the turtle in the direction of the point (x,y,z). Default behavior is only to orient and not to change the direction.


Push turtle state (start a branch)


Pop turtle state (end a branch)


Start a polygon


Make a polygon vertex


End a polygon


Create a new primitive group to which subsequent geometry is added. The group name is the Group Prefix followed by the number i. The default if no parameter is given is to create a group with the current group number and then increment the current group number.

a(attrib, v1, v2, v3)

This creates a point attribute of the name attrib. It is then set to the value v1, v2, v3 for the remainder of the points on this branch, or until another a command resets it. v2 and v3 are optional. If they are not present, an attribute of fewer floats will be created. The created attribute is always of float type and with zero defaults. For example, the rule a("Cd", 1, 0, 1) added to the start of the premise will make the L-system a nice pugnacious purple.

Local functions and variables

These functions and variables are available in arguments to turtle commands such as F(). These are separate from parameter expression functions and node local variables.


Arc cosine, the inverse of cosine. Returns the result in degrees.


Arc sine, the inverse of sine. Returns the result in degrees.


Cosine. Takes an angle in degrees.


Sine. Takes an angle in degrees.


Returns the value of an animated spare parameter on this node at the current time.

You can add a spare parameter to the node, keyframe it, and then use the animated values to change the Lsystem over time.

Specify the name of the spare parameter using the LSystem channel prefix parameter.

For example, if you add a spare parameter tuple named spare, set the Lsystem channel prefix to spare. Then, to reference the value of spare's first component (at the current time), use chan(0) (this evaluates the channel named spare0). To access the second component, use chan(1), for the third component use chan(2), and so on.

min(a, b)

Returns the lower of a or b.

max(a, b)

Returns the higher of a or b.

in(x, y, z)

This determines if the point (x, y, z) is inside the Meta Test Input.

pic(x, y, plane)

This evaluates the LSystem Picture at coordinates (x, y). These should be in the range 0..1.


Which image channel to get. 0 = luminance, 1 = red, 2 = green, and 3 = blue.

Returns a value from 0..1.


Same as the rand expression function. You can get a quick random number using rand(i).


The LSystem angle parameter.


The LSystem b parameter.


The LSystem c parameter.


The LSystem d parameter.


Initially 0. After that it is set to the age of the current rule.


The offset into the current lsystem string where the rule is being applied.


Initially 0. After that it is set to the iteration count.

x, y, z

The current turtle position in space.


The arc length from the root of the tree to the current point.


The current length increment at the point.


The LSystem gravity parameter.


The color map U value.


The color map V value.


The current width at the current point.

Use modeled geometry in an L-system

Houdini lets you create a copy of some geometry at the turtle’s location using certain commands. You can use this to create leaves and flowers on an L-system shrub, for example.

  1. Connect the output of the geometry you want to stamp to one of the L-system node’s inputs.

  2. Use the corresponding command (J, K, or M) in a turtle command string to insert the geometry.

Input Turtle command
1 J
2 K
3 M

If you connect a leaf surface to the L-systems input 1 and a flower to input 2, you can use the following to create a bush with leaves and flowers:



Rule 1

A= [&FA [fK]] ///// [&FA [fJ]] /////// [&FA [fJ]]

Rule 2

F= S/////

Rule 3

S= F

Rule 1 prefaces the K and J commands with f (move forward without drawing) to offset the geometry a little bit. Otherwise, the leaf would be attached at its center, rather than the edge.

Symbol variables

Each symbol can have up to five user-defined variables associated with it. You can reference or assign these variables in expressions. Variables in the matched symbol are instanced while variables in the replacement are assigned.

For example, the rule A(i, j)=A(i+1, j-1) will replace each A with a new A in which the first parameter (i) has been incremented and the second parameter (j) decremented.

Parameters assigned to geometric symbols (for example, F, +, and !) are interpreted geometrically. For example, the rule: F(i, j) = F(0.5*i, 2*j) will again replace each F with a new F containing modified parameters. In addition to this, the new F will now be drawn at half the length and twice the width.


The variables in the predecessor can also be referenced by the condition or probability portions of the rule. For example, the rule A(i):i<5 = A(i+1) A(i+1) will double each A a maximum of five times (assuming a premise of A(0)).

Control length over time

To create an L-system which goes forward x percent less on each iteration, you need to start your Premise with a value, and then in a rule multiply that value by the percentage you want to remain.

Premise A(1)
Rule A(i)= F(i)A(i*0.5)

This way i is scaled before A is re-evaluated. The important part is the premise: you need to start with a value to be able to scale it.

Stamp variables onto input geometry

The third argument to the J/K/M commands is passed to the connected geometry.


You can use this trick to get around the limitation of only three geometry inputs on a L-system.

Create all the different models you want (say, 20 different types of leaves) and connect them to a Switch node. Set the switch node’s Select input parameter to stamp("/path/to/lsystem", "lsys",0).

Connect the switch node to the J input of an L-system node. Now you can insert any of the 20 leaf types using J(L,0,leaf_number).

  1. Create a Circle node and set the number of divisions to stamp("/path/to/lsystem", "lsys", 3).

    Because the default number of divisions is 3 (the second argument in the expression), this creates a triangle.

  2. Connect the output of the circle node to the J input of an L-system node.

  3. In the L-system rules, you can use J(L,0,number) to pass number to the J geometry. For example, J(L,0,4) produces a square, J(L,0,5) produces a pentagram.

Create groups within L-systems

The g command puts all geometry currently being built into a group.

The group name is composed of a prefix set on the Funcs tab and a number. Default prefix is lsys, producing group names like "lsys1". You can specify the number as an argument to the g command.

For example, g[F] puts geometry from the F into a group (named using ). Otherwise, the default index is incremented appropriately.

The current group is associated with the branch, so you can do things like gF [ gFF ] F to put the first and last F into group 0, and the middle (branched) FF into group 1.

To exclude a branch from its parent’s group, use g(-1).

Edge rewriting

In The Algorithmic Beauty of Plants, many examples use a technique called edge rewriting which involve left and right subscripts. A typical example is:

Generations 10
Angle 90
Premise F(l)
Rule 1 F(l) = F(l)+F(r)+
Rule 2 F(r)=-F(l)-F(r)

However, Houdini doesn’t support the F(l) and F(r) syntax. You can modify the rules to use symbol variables instead.

For the F turtle symbol, the first four parameters are length, width, tubesides, and tubesegs. The last parameter is user-definable. We can define this last parameter so 0 is left, and 1 is right:

Generations 10
Angle 90
Premise F(1,1,3,3,0)
Rule 1 F(i,j,k,l,m) :m=0 = F(i,j,k,l,0)+F(i,j,k,l,1)+
Rule 2 F(i,j,k,l,m) :m=1 =-F(i,j,k,l,0)-F(i,j,k,l,1)

After two generations this produces: Fl+Fr+-Fl-Fr There should not be any difference between this final string and: F+F+-F-F

Another approach is to use two new variables, and use a conditional statement on the final step to convert them to F:

b ch("generations")
Premise l
Rule 1 l:t<b=l+r+
Rule 2 r:t<b=-l-r
Rule 3 l=F
Rule 4 r=F

The produces the following output:

Generation String
0 l
1 F
2 F+F+
3 F+F++-F-F+

Limit L-system growth inside a shape

The L-system node’s meta-test input lets you generate rules that will cause the system to stop when it reaches the edges of a defined shape, like a topiary hedge.

  1. Create a metaball or merged metaballs that define the volume in which the L-system can grow.

  2. Connect the metaball node’s output to the Meta-test input of the L-system node.

  3. Use a conditional statement (:) with an "in" test. For example:




Rule 1

A: in(x,y,z) = F [+FA] -FA : 80

Rule 2

A: ! in(x,y,z) = A%

  • This L-system checks to see if the next iteration of growth will be within the Meta-test bounds, and if not it prunes the current branch.

  • Rule 1 executes 80% of the time when the branch is within the meta-test boundary.

  • Rule 2 executes when the branch is not within the meta-test boundary (the ! negates the in(x,y,z) condition). The % command ends the branch.


If the L-system start point is not inside the metaball envelope, it will stay dormant. Once you have set up your L-system and metaballs, make sure you transform them together so the L-system is not accidentally moved outside the metaball.

Arrange geometry instances with L-systems

L-systems can be a powerful tool for arranging modeled geometry. By using an L-system as the template input to a Copy SOP, you can place a copy of a model at every point of the L-system.

For example, you could use the "arc approximation" L-system from the L-system basics (premise=A, rule=A=F+A) to arrange a series of spheres in an arc or circle. This gives you parametric control of the bending and spacing of the arc of spheres.

Further reading

If you have any serious interests in creating L-systems, you should obtain the book:

The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindenmayer (1996, Springer-Verlag, New York. Phone 212.460.1500. ISBN: 0-387-94676-4)

It is the definitive work on the subject. It contains many L-systems examples along with ideas and theories about modeling realistic plant growth.

Speed up calculations

Modeling something like a whole tree as single large L-System may cause collision resolution calculations to be single threaded. The wire solver will look for pieces of wire objects that can be solved independently and divide the work among the available cores. One large connected L-System means the work cannot be divided into smaller work units.

Try using a Wire Glue Constraint DOP to constrain a point on the L-System where the branches join together near the root of the tree (constrain the point to its world space position). This will cause the wire solver to see the separate branches as distinct pieces that can be solved independently. Since the constrained point will not move, any motion on one of the branches will not affect the other branches. If possible, reducing the number of points in the wire object should also speed up the calculations.




The type of geometry to create as the turtle moves.


You can create a tube path from a skeleton L-system using a Polywire SOP.


Draw polylines.


Draw tubes.


The number of times to repeat the rule-substitution. If you specify a fractional number and Continuous angles and/or Continuous length are on (below), Houdini scales the geometry generated by the last substitution to give smooth growth between generations.

Start Position

This is the starting point position for the turtle.

Random Scale

If non-zero, randomly scales all the lengths specified by F and other similar turtle functions.

Random Seed

The seed to use for the random number generator. By varying this on a L-system using random rules (Ie: random scale, ~, or probabilistic rules) one can generate different instances of the L-system.

Continuous Angles

If set, the angles rotated by the last generation’s turtle operations will be scaled by the amount into the generation.

Continuous Length

If set, the lengths taken by the last generation’s turtle operations will be scaled by the amount into the generation.

Continuous Width

If set, the widths generated by the last generation’s turtle operations will be scaled by the amount into the generation.

Apply Color

If set, the L-system will output a color attribute on each point. The color value will be found by looking up into the Image File at the current U & V positions. The current U & V is altered with the ' and # turtle operations.

Image File

This is the image file which is used for the Apply Color operation. The image files used by the pic() expression is under Funcs tab.

UV Increment

These determine the default U and V increments of the ' and

  1. turtle operations.

Point Attributes

If the type is Skeleton, this is available. Turning this on will cause the creation of many point attributes to be created to track how each point was generated:


The width of the tube that would have been generated.


The number of segments that would be made on a tube.


The number of divisions the tube would be divided into.


The vertical increment from the root of the tree. This is affected by the Tube::Vertical Increment parameter. It is similar to arc, but not dependent on edge length.


The arc length from the root of the turtles path to this point.


The up vector of the turtle at this point.


The generation that created this point.



The number of rows to divide tubes into. A value of 3 will cause the tubes to be swept triangles.


The number of columns to divide the tubes in. A value of 4 means one F will create 4 cross sections.


How straight the tubes should sweep to their destination point.

Branch Blend

How much a new branch should inherit off an old branches direction.


Default width of the tubes.

Thickness Scale

How much the ! operation will affect the thickness.

Apply Tube Texture Coordinates

If checked, the tubes will generate uv texture coordinates.

Vertical Increment

The amount each tube will increment the V texture coordinate.


Step Size

The default size of a movement, such as F, command.

Step Size Scale

The number used by the " command.


The default angle for an angle, such as /, command. This also becomes the variable a in the expression.

Angle Scale

The number used by the ; command.

Variable b

The value of the expression variable b.

Variable c

The value of the expression variable c.

Variable d

The value of the expression variable d.


The amount of tropism from the T command. Also becomes the value of the expression variable T.

Number Of Variables

This multiparm allows the assignment of an arbitrary number of new expression variables.

Variable Name

The name of the expression variable. This is a single character. Check the Local Variables section to see what variables are already reserved.

Variable Value

The value of the expression variable.


Pic Image File

The image file to use with the pic() expression function.

Group Prefix

The prefix used by g command.

Channel Prefix

The prefix used by the chan() expression function.

Leaf Param A

This is the name of the stamp parameter to stamp the leaf with. The value of the stamp comes from the J, K, or M operation. It can be read upstream using the stamp() function.

Leaf Param B

This is the name of the stamp parameter to stamp the leaf with. The value of the stamp comes from the J, K, or M operation. It can be read upstream using the stamp() function.

Leaf Param C

This is the name of the stamp parameter to stamp the leaf with. The value of the stamp comes from the J, K, or M operation. It can be read upstream using the stamp() function.


Read Rules From File

If this is set, the rule fields are ignored. Instead, the Rule File is read and used as the rules.

Write Rule Parameters to File

This will write all the current rules to the Rule File.

Rule File

The name of the file to use as a source of rules. This file should have one line per rule. Blank lines and lines that start with '#' will be ignored, so comments may be added to the rule file with '#'.

Context Ignore

This is a list of symbols. They will be ignored when trying to determine contexts.

Context Includes Siblings

By default, the context of each branch only includes the symbols in that branch. Any sub-branches or parent branches will be skipped over. Given the rule A>B=F, A[B] will not resolve as B is in a sub-branch. A[Q]B will resolve because the [Q] is ignored. If you change the Context Ignore to have [], this effect is removed and A[Q]B will not resolve but A[B] will. The Context Includes Siblings flag restores the pre-Houdini 10 behavior of context of sibling branches being included. For example, [A]Q[B] will resolve if this flag is set, but not resolve if it is not set.


The initial state of the L-system. This is the state of the L-system at generation 0.

Rule #

A rule to apply to the L-system. Applying the toggle will disable the rule, removing it from the generation procedure.


Leaf J

This geometry is used by the J rules.

Leaf K

This geometry is used by the K rules.

Leaf M

This geometry is used by the M rules.

Meta Test Input

This geometry is used by the in() function to check bounding regions (for topiaries).


LSystemMaster Example for L-System geometry node

The LSystems SOP allows for the definition of complex shapes through the use of iteration. It uses a mathematical language in which an initial string of characters is evaluated repeatedly, and the results are used to generate geometry. The result of each evaluation becomes the basis for the next iteration of geometry, giving the illusion of growth.

The example networks located in this demonstration should be enough to get you started writing custom LSystem rules.

However, anyone seriously interested in creating LSystems should obtain the book:

The Algorithmic Beauty of Plants, Przemyslaw Prusinkiewicz and Aristid Lindenmayer

For a full list of LSystem commands, see the Houdini documentation.

LsystemBuilding Example for L-System geometry node

This example demonstrates how to use the L-System SOP to generate buildings with windows.

See also

Geometry nodes

  • Adapt to Terrain

    Adapts a character’s skeleton to conform to terrain.

  • Adaptive Prune

    Removes elements while trying to maintain the overall appearance.

  • Add

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

  • Agent

    Creates agent primitives.

  • Agent Animation Unpack

    Extracts animation or MotionClips from an agent primitive.

  • Agent Character Unpack

    Extracts the rest geometry, skeleton, and animation from an agent primitive.

  • Agent Clip

    Adds new clips to agent primitives.

  • Agent Clip Properties

    Defines how agents' animation clips should be played back.

  • Agent Clip Transition Graph

    Creates geometry describing possible transitions between animation clips.

  • Agent Collision Layer

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

  • Agent Configure Joints

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

  • Agent Constraint Network

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

  • Agent Definition Cache

    Writes agent definition files to disk.

  • Agent Edit

    Edits properties of agent primitives.

  • Agent Layer

    Adds a new layer to agent primitives.

  • Agent Look At

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

  • Agent Pose from Rig

    Updates an agent primitive’s pose from a geometry skeleton.

  • Agent Prep

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

  • Agent Proxy

    Provides simple proxy geometry for an agent.

  • Agent Relationship

    Creates parent-child relationships between agents.

  • Agent Terrain Adaptation

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

  • Agent Transform Group

    Adds new transform groups to agent primitives.

  • Agent Unpack

    Extracts geometry from agent primitives.

  • Agent Vellum Unpack

    Extracts geometry from agent primitives for a Vellum simulation.

  • Agent from Rig

    Creates an agent primitive from a geometry skeleton.

  • Alembic

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

  • Alembic Group

    Creates a geometry group for Alembic primitives.

  • Alembic Primitive

    Modifies intrinsic properties of Alembic primitives.

  • Alembic ROP output driver

  • Align

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

  • Assemble

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

  • Attach Control Geometry

    Creates control geometry for SOP-based KineFX rigs.

  • Attribute Adjust Float

    Modifies floating point attribute values on the incoming geometry.

  • Attribute Adjust Integer

    Modifies integer attribute values on the incoming geometry.

  • Attribute Adjust Vector

    Modifies values for a vector-type attribute on the incoming geometry.

  • Attribute Blur

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

  • Attribute Cast

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

  • Attribute Composite

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

  • Attribute Copy

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

  • Attribute Create

    Adds or edits user defined attributes.

  • Attribute Delete

    Deletes point and primitive attributes.

  • Attribute Expression

    Allows simple VEX expressions to modify attributes.

  • Attribute Fade

    Fades a point attribute in and out over time.

  • Attribute From Pieces

    Assigns an attribute to points specifying which of a set of models should be copied/instanced to that point, randomly or based on various rules.

  • Attribute Interpolate

    Interpolates attributes within primitives or based on explicit weights.

  • Attribute Mirror

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

  • Attribute Noise

    Adds or generates noise in geometry attributes.

  • Attribute Paint

    Interactively paint point attributes, such as color or deformation mask values, directly on geometry.

  • Attribute Promote

    Promotes or demotes attributes from one geometry level to another.

  • Attribute Randomize

    Generates random attribute values of various distributions.

  • Attribute Remap

    Fits an attribute’s values to a new range.

  • Attribute Rename

    Renames or deletes point and primitive attributes.

  • Attribute Reorient

    Modifies point attributes based on differences between two models.

  • Attribute String Edit

    Edits string attribute values.

  • Attribute Swap

    Copies, moves, or swaps the contents of attributes.

  • Attribute Transfer

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

  • Attribute Transfer By UV

    Transfers attributes between two geometries based on UV proximity.

  • Attribute VOP

    Runs a VOP network to modify geometry attributes.

  • Attribute Wrangle

    Runs a VEX snippet to modify attribute values.

  • Attribute from Map

    Samples texture map information to a point attribute.

  • Attribute from Parameters

    Creates a dictionary attribute filled with parameter values.

  • Attribute from Volume

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

  • Bake ODE

    Converts primitives for ODE and Bullet solvers.

  • Bake Volume

    Computes lighting values within volume primitives

  • Ballistic Path

    Generates ballistic projectile paths from the incoming points.

  • Basis

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

  • Bend

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

  • Blast

    Deletes primitives, points, edges or breakpoints.

  • Blend Shapes

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

  • Block Begin

    The start of a looping block.

  • Block Begin Compile

    The start of a compile block.

  • Block End

    The end/output of a looping block.

  • Block End Compile

    The end/output of a compile block.

  • Bone Capture

    Supports Bone Deform by assigning capture weights to bones.

  • Bone Capture Biharmonic

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

  • Bone Capture Lines

    Utility node that supports Bone Capture Biharmonic by creating lines from bones with suitable attributes.

  • Bone Capture Proximity

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

  • Bone Deform

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

  • Bone Link

    Creates default geometry for Bone objects.

  • Boolean

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

  • Boolean Fracture

    Fractures the input geometry using cutting surfaces.

  • Bound

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

  • Box

    Creates a cube or six-sided rectangular box.

  • Bulge

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

  • COP2 Network

    Imports 2d geometry from a Composite network.

  • Cache

    Records and caches its input geometry for faster playback.

  • Cap

    Closes open areas with flat or rounded coverings.

  • Capture Attribute Pack

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

  • Capture Attribute Unpack

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

  • Capture Correct

    Adjusts capture regions and capture weights.

  • Capture Layer Paint

    Lets you paint capture attributes directly onto geometry.

  • Capture Mirror

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

  • Capture Override

    Overrides the capture weights on individual points.

  • Capture Packed Geometry

    Rigidly capture input packed geometry to a SOP skeleton.

  • Capture Region

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

  • Carve

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

  • Chain

    Repeats one or more pieces of geometry along a curve.

  • Channel

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

  • Character Blend Shapes

    Applies blend shapes to a KineFX character’s geometry using the weight attributes on its skeleton.

  • Character I/O

    Packs Character mesh, capture pose and animation, saves them to disk, and loads them back again.

  • Character Pack

    Creates a packed geometry primitive from a rest geometry, skeleton, and animation inputs.

  • Character Unpack

    Extracts the rest geometry, skeleton, and animation from an packed geometry primitive.

  • Circle

    Creates open or closed arcs, circles and ellipses.

  • Circle from Edges

    Transforms selected geometry into a circle.

  • Clay

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

  • Clean

    Helps clean up dirty models.

  • Clip

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

  • Cloth Capture

    Captures low-res simulated cloth.

  • Cloth Deform

    Deforms geometry captured by the Cloth Capture SOP.

  • Cloud

    Creates a volume representation of source geometry.

  • Cloud Light

    Fills a volume with a diffuse light.

  • Cloud Noise

    Applies a cloud like noise to a Fog volume.

  • Cluster

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

  • Cluster Points

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

  • Collision Source

    Creates geometry and VDB volumes for use with DOPs collisions.

  • Color

    Adds color attributes to geometry.

  • Comb

    Adjust surface point normals by painting.

  • Compute Rig Pose

    Evaluates a multiparm of transform parameters and applies them to the input skeleton.

  • Compute Transform

    Recomputes world space or local space transforms for points in a hierarchy.

  • Configure Clip Info

    Edits properties of a skeleton animation or motion clip.

  • Connect Adjacent Pieces

    Creates lines between nearby pieces.

  • Connectivity

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

  • Control

    Creates simple geometry for use as control shapes.

  • Convert

    Converts geometry from one geometry type to another.

  • Convert HeightField

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

  • Convert Line

    Converts the input geometry into line segments.

  • Convert Meta

    Polygonizes metaball geometry.

  • Convert Tets

    Generates the oriented surface of a tetrahedron mesh.

  • Convert VDB

    Converts sparse volumes.

  • Convert VDB Points

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

  • Convert Volume

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

  • Convex Decomposition

    Decomposes the input geometry into approximate convex segments.

  • Copy Stamp

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

  • Copy and Transform

    Copies geometry and applies transformations to the copies.

  • Copy to Curves

    Copies geometry in the first input onto curves of the second input.

  • Copy to Points

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

  • Crease

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

  • Creep

    Deforms and animates a piece of geometry across a surface.

  • Cross Section Surface

    Creates a surface around cross sections.

  • Crowd Source

    Populates a crowd of agent primitives.

  • Curve

    Creates polygonal, NURBS, or Bezier curves.

  • Curveclay

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

  • Curvesect

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

  • DOP I/O

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

  • DOP Import Fields

    Imports scalar and vector fields from a DOP simulation.

  • DOP Import Records

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

  • DOP Network

  • Debris Source

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

  • Deformation Wrangle

    Runs a VEX snippet to deform geometry.

  • Delete

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

  • Delete Joints

    Delete Joints on a SOP Rig.

  • DeltaMush

    Smooths out (or "relaxes") point deformations.

  • Denoise AI

    Uses machine-learning algorithms to denoise images with high quality and speed.

  • Detangle

    Attempts to prevent collisions when deforming geometry.

  • Dissolve

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

  • Distance Along Geometry

    Measures the distance of the shortest path along the geometry’s edges or surfaces from each start point.

  • Distance from Geometry

    Measures distance between each point and a reference geometry.

  • Distance from Target

    Measures distance of each point from a target.

  • Divide

    Divides, smooths, and triangulates polygons.

  • Dop Import

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

  • Draw Curve

    Creates a curve based on user input in the viewport.

  • Draw Guides

  • Dynamic Warp

    Dynamically Time-warps the first input (the Source) using the second input (the Reference) as a reference.

  • Each

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

  • Edge Collapse

    Collapses edges and faces to their centerpoints.

  • Edge Cusp

    Sharpens edges by uniquing their points and recomputing point normals.

  • Edge Divide

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

  • Edge Equalize

    Transforms selected edges so that all edges are of equal length.

  • Edge Flip

    Flips the direction of polygon edges.

  • Edge Fracture

    Cuts geometry along edges using guiding curves.

  • Edge Straighten

    Straightens selected edges.

  • Edge Transport

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

  • Edit

    Edits points, edges, or faces interactively.

  • Ends

    Closes, opens, or clamps end points.

  • Enumerate

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

  • Error

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

  • Exploded View

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

  • Export Object Transforms

    Export transform attributes to object nodes.

  • Extract Centroid

    Computes the centroid of each piece of the geometry.

  • Extract Locomotion

    Extracts translation and orientation from a character using a given input joint.

  • Extract Point from Curve

    Creates new points where an interpolated attribute has a certain value on a curve.

  • Extract Transform

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

  • Extrude

    Extrudes geometry along a normal.

  • Extrude Volume

    Extrudes surface geometry into a volume.

  • FBIK Configure Joints

    Configures joint properties used by full-body inverse kinematics solvers.

  • FBIK Configure Targets

    Configures joint properties used by full-body inverse kinematics solvers.

  • FBX Animation Import

    Import animation from an FBX file as a geometry-based skeleton.

  • FBX Character Import

    Import a skinned character from an FBX file with animation.

  • FBX Skin Import

    Import skin geometry from an FBX file.

  • FEM Validate

    Visualizes the quality of a tetrahedral mesh.

  • FEM Visualize

  • FK Transfer

    Transfer forward kinematic motion to a SOP-based skeleton

  • FLIP Source

    Creates a surface or density VDB for sourcing FLIP simulations.

  • Facet

    Controls the smoothness of faceting of a surface.

  • Filament Advect

    Evolves polygonal curves as vortex filaments.

  • File

    Reads, writes, or caches geometry on disk.

  • File Cache

    Writes and reads geometry sequences to disk.

  • File Merge

    Reads and collates data from disk.

  • Fillet

    Creates smooth bridging geometry between two curves or surfaces.

  • Filmbox FBX ROP output driver

  • Find Shortest Path

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

  • Fit

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

  • Fluid Compress

    Compresses the output of fluid simulations to decrease size on disk

  • Font

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

  • Force

    Uses a metaball to attract or repel points or springs.

  • Fractal

    Creates jagged mountain-like divisions of the input geometry.

  • Full Body IK

    Transfer a motion to a SOP-based skeleton using full-body inverse kinematics algorithm.

  • Fur

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

  • Fuse

    Merges points.

  • Geometry nodes

    Geometry nodes live inside Geo objects and generate geometry.

  • Glue Cluster

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

  • Grain Source

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

  • Graph Color

    Assigns a unique integer attribute to non-touching components.

  • Grid

    Creates planar geometry.

  • Groom Blend

    Blends the guides and skin of two grooms.

  • Groom Fetch

    Fetches groom data from grooming objects.

  • Groom Pack

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

  • Groom Switch

    Switches between all components of two groom streams.

  • Groom Unpack

    Unpacks the components of a groom from a packed groom.

  • Group

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

  • Group Combine

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

  • Group Copy

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

  • Group Delete

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

  • Group Expand

    Expands or shrinks groups of Edges, Points, Primitives, or Vertices.

  • Group Expression

    Runs VEX expressions to modify group membership.

  • Group Find Path

    Constructs groups for paths between elements.

  • Group Joints

    Group Joints on a SOP Rig.

  • Group Paint

    Sets group membership interactively by painting.

  • Group Promote

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

  • Group Range

    Groups points and primitives by ranges.

  • Group Rename

    Renames groups according to patterns.

  • Group Transfer

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

  • Group by Lasso

    Groups points and primitives by lasso.

  • Group from Attribute Boundary

    Creates a group that includes the boundaries of the specified attribute.

  • Guide Advect

    Advects guide points through a velocity volume.

  • Guide Collide With VDB

    Resolves collisions of guide curves with VDB signed distance fields.

  • Guide Deform

    Deforms geometry with an animated skin and optionally guide curves.

  • Guide Groom

    Allows intuitive manipulation of guide curves in the viewport.

  • Guide Group

    Creates standard primitive groups used by grooming tools.

  • Guide Initialize

    Quickly give hair guides some initial direction.

  • Guide Mask

    Creates masking attributes for other grooming operations.

  • Guide Partition

    Creates and prepares parting lines for use with hair generation.

  • Guide Skin Attribute Lookup

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

  • Guide Tangent Space

    Constructs a coherent tangent space along a curve.

  • Guide Transfer

    Transfer hair guides between geometries.

  • Hair Card Generate

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

  • Hair Clump

    Clumps guide curves together.

  • Hair Generate

    Generates hair on a surface or from points.

  • Hair Growth Field

    Generates a velocity field based on stroke primitives.

  • HeightField

    Generates an initial heightfield volume for use with terrain tools.

  • HeightField Blur

    Blurs a terrain height field or mask.

  • HeightField Clip

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

  • HeightField Copy Layer

    Creates a copy of a height field or mask.

  • HeightField Crop

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

  • HeightField Cutout by Object

    Creates a cutout on a terrain based on geometry.

  • HeightField Distort by Layer

    Displaces a height field by another field.

  • HeightField Distort by Noise

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

  • HeightField Draw Mask

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

  • HeightField Erode

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

  • HeightField Erode Hydro

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

  • HeightField Erode Precipitation

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

  • HeightField Erode Thermal

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

  • HeightField File

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

  • HeightField Flow Field

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

  • HeightField Isolate Layer

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

  • HeightField Layer

    Composites together two height fields.

  • HeightField Layer Clear

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

  • HeightField Layer Property

    Sets the border voxel policy on a height field volume.

  • HeightField Mask by Feature

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

  • HeightField Mask by Object

    Creates a mask based some other geometry.

  • HeightField Mask by Occlusion

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

  • HeightField Noise

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

  • HeightField Output

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

  • HeightField Paint

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

  • HeightField Patch

    Patches features from one heightfield to another.

  • HeightField Pattern

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

  • HeightField Project

    Projects 3D geometry into a height field.

  • HeightField Quick Shade

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

  • HeightField Remap

    Remaps the values in a height field or mask layer.

  • HeightField Resample

    Changes the resolution of a height field.

  • HeightField Scatter

    Scatters points across the surface of a height field.

  • HeightField Slump

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

  • HeightField Terrace

    Creates stepped plains from slopes in the terrain.

  • HeightField Tile Splice

    Stitches height field tiles back together.

  • HeightField Tile Split

    Splits a height field volume into rows and columns.

  • HeightField Transform

    Height field specific scales and offsets.

  • HeightField Visualize

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

  • Hole

    Makes holes in surfaces.

  • IK Chains

    Create and evaluate Two-Bone IK solvers on a SOP skeleton.

  • Inflate

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

  • Instance

    Instances Geometry on Points.

  • Intersection Analysis

    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.

  • Intersection Stitch

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

  • Invoke Compiled Block

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

  • IsoOffset

    Builds an offset surface from geometry.

  • IsoSurface

    Generates an isometric surface from an implicit function.

  • Join

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

  • Knife

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

  • L-System

    Creates fractal geometry from the recursive application of simple rules.

  • LOP Import

  • Lattice

    Deforms geometry based on how you reshape control geometry.

  • Lidar Import

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

  • Line

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

  • MDD

    Animates points using an MDD file.

  • Magnet

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

  • Map Points

    Stores a reference on a point to a point in another geometry.

  • Mask by Feature

    Creates a point attribute "mask" based on visibility/lighting, letting you limit the effect of other nodes to areas that are visible, or facing a certain direction, or in shadow.

  • Match Axis

    Aligns the input geometry to a specific axis.

  • Match Size

    Resizes and recenters the geometry according to reference geometry.

  • Match Topology

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

  • Material

    Assigns one or more materials to geometry.

  • Measure

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

  • Merge

    Merges geometry from its inputs.

  • MetaGroups

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

  • Metaball

    Creates metaballs and meta-superquadric surfaces.

  • Mirror

    Duplicates and mirrors geometry across a mirror plane.

  • Mocap Import

    Parses and imports motion capture data as geometry.

  • MotionClip

    Converts a skeleton animation to a MotionClip

  • MotionClip Blend

    Blends the animation of one MotionClip on top of another

  • MotionClip Cycle

    Smoothly loops a section of a MotionClip

  • MotionClip Evaluate

    Evaluates a single frame of a MotionClip

  • MotionClip Extract

    Extracts the motion of joints over a set of frames from a MotionClip

  • MotionClip Pose Delete

    Removes the specified samples from the MotionClip

  • MotionClip Pose Insert

    Adds a new sample to a MotionClip containing the given pose

  • MotionClip Retime

    Adjusts the timing of a MotionClip

  • MotionClip Sequence

    Concatenates two MotionClips

  • MotionClip Update

    Update a MotionClip using the given point list

  • Mountain

    Displaces points along their normals based on fractal noise.

  • Muscle Capture

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

  • Muscle Deform

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

  • Name

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

  • Normal

    Computes surface normal attribute.

  • Null

    Does nothing.

  • Object Merge

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

  • Object_musclerig@musclerigstrokebuilder

  • Object_riggedmuscle@musclestrokebuilder

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

  • Ocean Evaluate

    Deforms input geometry based on ocean "spectrum" volumes.

  • Ocean Foam

    Generates particle-based foam

  • Ocean Source

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

  • Ocean Spectrum

    Generates volumes containing information for simulating ocean waves.

  • Ocean Waves

    Instances individual waveforms onto input points and generated points.

  • OpenCL

    Executes an OpenCL kernel on geometry.

  • Orientation Along Curve

    Computes orientations (frames) along curves.

  • Output

    Marks the output of a sub-network.

  • Pack

    Packs geometry into an embedded primitive.

  • Pack Points

    Packs points into a tiled grid of packed primitives.

  • Packed Disk Edit

    Editing Packed Disk Primitives.

  • Packed Edit

    Editing Packed Primitives.

  • Paint Color Volume

    Creates a color volume based on drawn curve

  • Paint Fog Volume

    Creates a fog volume based on drawn curve

  • Paint SDF Volume

    Creates an SDF volume based on drawn curve

  • Particle Fluid Surface

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

  • Particle Fluid Tank

    Creates a set of regular points filling a tank.

  • Partition

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

  • Path Deform

    Deforms geometry using the shape of a curve.

  • Peak

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

  • Planar Patch

    Creates a planar polygonal patch.

  • Planar Patch from Curves

    Fills in a 2d curve network with triangles.

  • Planar Pleat

    Deforms flat geometry into a pleat.

  • Platonic Solids

    Creates platonic solids of different types.

  • Point Cloud Iso

    Constructs an iso surface from its input points.

  • Point Deform

    Deforms geometry according to an arbitrary connected point mesh.

  • Point Generate

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

  • Point Jitter

    Jitters points in random directions.

  • Point Relax

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

  • Point Replicate

    Generates a cloud of points around the input points.

  • Point Split

    Splits points shared by multiple vertices, optionally only if the vertices differ in attribute values.

  • Point Velocity

    Computes and manipulates velocities for points of a geometry.

  • Point Weld

    Merges points interactively.

  • Points from Volume

    Creates set of regular points filling a volume.

  • Poly Bridge

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

  • Poly Expand 2D

    Creates offset polygonal geometry for planar polygonal graphs.

  • Poly Extrude

    Extrudes polygonal faces and edges.

  • PolyBevel

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

  • PolyCut

    Breaks curves where an attribute crosses a threshold.

  • PolyDoctor

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

  • PolyFill

    Fills holes with polygonal patches.

  • PolyFrame

    Creates coordinate frame attributes for points and vertices.

  • PolyLoft

    Creates new polygons using existing points.

  • PolyPatch

    Creates a smooth polygonal patch from primitives.

  • PolyPath

    Cleans up topology of polygon curves.

  • PolyReduce

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

  • PolySoup

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

  • PolySpline

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

  • PolySplit

    Divides an existing polygon into multiple new polygons.

  • PolyWire

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

  • Pose Difference

    Compute the difference between point transforms on two SOP skeletons.

  • Pose Scope

    Assigns channel paths and/or pickscripts to geometry.

  • Pose-Space Deform

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

  • Pose-Space Deform Combine

    Combine result of Pose-Space Deform with rest geometry.

  • Pose-Space Edit

    Packs geometry edits for pose-space deformation.

  • Pose-Space Edit Configure

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

  • Primitive

    Edits primitive, primitive attributes, and profile curves.

  • Profile

    Extracts or manipulates profile curves.

  • Project

    Creates profile curves on surfaces.

  • Pyro Bake Volume

    Helps develop the volume look both for viewport display and rendering after the pyro solve.

  • Pyro Burst Source

    Creates points suitable for sourcing into pyro simulations to create explosions.

  • Pyro Post-Process

    Applies common post-processing effects to the results of Pyro solves.

  • Pyro Scatter from Burst

    Generates a cloud of points around the input points suitable for pyro trails and particle simulations.

  • Pyro Solver

    Runs a dynamic Pyro simulation.

  • Pyro Source

    Creates points for sourcing pyro and smoke simulations.

  • Pyro Source Spread

    Pyro Source Spread solves for the spreading of flame across a point cloud.

  • Pyro Trail Path

    Generates curves to use as trails for the Pyro Trail Source node.

  • Pyro Trail Source

    Creates points suitable for sourcing into pyro simulations to create trails for explosions.

  • Python

    Runs a Python snippet to modify the incoming geometry.

  • RBD Bullet Solver

    Runs a dynamic Bullet simulation.

  • RBD Cluster

    Combines fractured pieces or constraints into larger clusters.

  • RBD Configure

    Packs and creates attributes describing rigid body objects.

  • RBD Connected Faces

    Stores the primitive number and distance to the opposite face on the inside faces of fractured geometry.

  • RBD Constraint Properties

    Creates attributes describing rigid body constraints.

  • RBD Constraints From Curves

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

  • RBD Constraints From Lines

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

  • RBD Constraints From Rules

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

  • RBD Convert Constraints

    Converts existing constraint prims into constraints with different anchor positions.

  • RBD Deform Pieces

    Deforms geometry with simulated proxy geometry.

  • RBD Disconnected Faces

    Detects when connected faces have become separated.

  • RBD Exploded View

    Visualize RBD fractured geometry merged with the proxy geometry, pushed out from the center to create an exploded view.

  • RBD Guide Setup

    Sets attributes on packed fragments for the RBD Guide DOP.

  • RBD I/O

    Packs RBD fractured geometry, saves them to disk, and loads them back again.

  • RBD Interior Detail

    Creates additional detail on the interior surfaces of fractured geometry.

  • RBD Material Fracture

    Fractures the input geometry based on a material type.

  • RBD Pack

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

  • RBD Paint

    Paints values onto geometry or constraints using strokes.

  • RBD Unpack

    Unpacks an RBD setup into three outputs.

  • RMan Shader

    Attaches RenderMan shaders to groups of faces.

  • ROP FBX Animation Output

    Export animation from geometry-based skeleton to an FBX file.

  • ROP FBX Character Output

    Export a skinned character with geometry-based skeleton to an FBX file.

  • ROP Geometry Output

  • Rails

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

  • Ray

    Projects one surface onto another.

  • Re-Orient Joints

    Re-Orient Joints on a SOP Rig..

  • Refine

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

  • Reguide

    Scatters new guides, interpolating the properties of existing guides.

  • Remesh

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

  • Repack

    Repacks geometry as an embedded primitive.

  • Reparent Joints

    Reparent Joints on a SOP Rig.

  • Resample

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

  • Rest Position

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

  • Retime

    Retimes the time-dependent input geometry.

  • Reverse

    Reverses or cycles the vertex order of faces.

  • Reverse Foot

    Creates a reverse foot set up for the given input skeleton.

  • Revolve

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

  • Rewire Vertices

    Rewires vertices to different points specified by an attribute.

  • Rig Attribute VOP

    Runs a VOP network to modify geometry attributes on a KineFX rig.

  • Rig Attribute Wrangle

    Runs a VEX snippet to modify transform attribute values on a KineFX rig.

  • Rig Copy Transforms

    Attach the joints of a skeleton SOP to another, posed skeleton.

  • Rig Doctor

    Optimize and run checks on a SOP skeleton

  • Rig Match Pose

    Conform the rest poses of two skeletons in preparation for retargeting.

  • Rig Mirror Pose

    Mirror a SOP skeleton’s pose.

  • Rig Pose

    Pose and animate a SOP rig or skeleton.

  • Rig Python

    Runs a Python snippet to modify the incoming rig geometry.

  • Rig Stash Pose

    Store a static pose on a skeleton as a matrix point attribute.

  • Ripple

    Generates ripples by displacing points along the up direction specified.

  • Ripple

    Generates ripples by displacing points along the up direction specified.

  • Scatter

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

  • Scatter and Align

    Scatters points across a surface with randomized scale and orientation attributes for use with Copy to Points.

  • Scene Character Export

    Export animation from a geometry-based character to the Scene (OBJ) context.

  • Scene Character Import

    Creates a geometry-based character with animation from the Scene (OBJ) context.

  • Script

    Runs scripts when cooked.

  • Sculpt

    Lets you interactively reshape a surface by brushing.

  • Sequence Blend

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

  • Shape Diff

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

  • Shrinkwrap

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

  • Skeleton

    Interactively create and edit geometry-based skeletons.

  • Skeleton Blend

    Blends two skeletons

  • Skeleton Mirror

    Modify an input skeleton by duplicating joints across a mirror plane.

  • Skin

    Builds a skin surface between any number of shape curves.

  • Sky

    Creates a sky filled with volumentric clouds

  • Smooth

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

  • Soft Peak

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

  • Soft Transform

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

  • Solid Fracture

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

  • Solver

    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.

  • Sort

    Reorders points and primitives in different ways, including randomly.

  • Sphere

    Creates a sphere or ovoid surface.

  • Split

    Splits primitives or points into two streams.

  • Spray Paint

    Spray paints random points onto a surface.

  • Sprite

    A SOP node that sets the sprite display for points.

  • Stabilize Joint

    Removes jitter from the input animation and handles terrain snapping of joints.

  • Starburst

    Insets points on polygonal faces.

  • Stash

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

  • Stitch

    Stretches two curves or surfaces to cover a smooth area.

  • Stroke

    Low level tool for building interactive assets.

  • Subdivide

    Subdivides polygons into smoother, higher-resolution polygons.

  • Subnetwork

    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.

  • Super Quad

    Generates an isoquadric surface.

  • Surfsect

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

  • Sweep

    Creates a surface by sweeping a cross section curve along a spine curve.

  • Switch

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

  • Switch-If

    Switches between two network branches based on an expression or geometry test.

  • TOP Geometry

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

  • Table Import

    Reads a CSV file creating point per row.

  • Test Geometry: Crag

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

  • Test Geometry: Pig Head

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

  • Test Geometry: Rubber Toy

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

  • Test Geometry: Shader Ball

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

  • Test Geometry: Squab

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

  • Test Geometry: Template Body

    Creates a template body, which can be used as test geometry.

  • Test Geometry: Template Head

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

  • Test Geometry: Tommy

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

  • Test Simulation: Crowd Transition

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

  • Test Simulation: Ragdoll

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

  • Tet Conform

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

  • Tet Embed

    Creates a simple tetrahedral mesh that covers a connected mesh.

  • Tet Partition

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

  • TimeShift

    Cooks the input at a different time.

  • Toon Shader Attributes

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

  • Topo Transfer

    Non-rigidly deforms a surface to match the size and shape of a different surface.

  • TopoBuild

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

  • Torus

    Creates a torus (doughnut) shaped surface.

  • Trace

    Traces curves from an image file.

  • Trail

    Creates trails behind points.

  • Transform

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

  • Transform Axis

    Transforms the input geometry relative to a specific axis.

  • Transform By Attribute

    Transforms the input geometry by a point attribute.

  • Transform Pieces

    Transforms input geometry according to transformation attributes on template geometry.

  • Tri Bezier

    Creates a triangular Bezier surface.

  • TriDivide

    Refines triangular meshes using various metrics.

  • Triangulate 2D

    Connects points to form well-shaped triangles.

  • Trim

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

  • Tube

    Creates open or closed tubes, cones, or pyramids.

  • USD Animation Import

    Imports a skeleton and animation from a UsdSkel character.

  • USD Character Import

    Imports the rest geometry, skeleton, and animation from a UsdSkel character.

  • USD Skin Import

    Imports skinned geometry from a UsdSkel character.

  • UV Autoseam

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

  • UV Brush

    Adjusts texture coordinates in the UV viewport by painting.

  • UV Edit

    Lets you interactively move UVs in the texture view.

  • UV Flatten

    Creates flattened pieces in texture space from 3D geometry.

  • UV Fuse

    Merges UVs.

  • UV Layout

    Packs UV islands efficiently into a limited area.

  • UV Pelt

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

  • UV Project

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

  • UV Quick Shade

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

  • UV Texture

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

  • UV Transform

    Transforms UV texture coordinates on the source geometry.

  • UV Unwrap

    Separates UVs into reasonably flat, non-overlapping groups.

  • Unix

    Processes geometry using an external program.

  • Unpack

    Unpacks packed primitives.

  • Unpack Points

    Unpacks points from packed primitives.

  • Unpack USD

    Converts "packed USD" primitives into normal Houdini geometry.

  • VDB

    Creates one or more empty/uniform VDB volume primitives.

  • VDB Activate

    Activates voxel regions of a VDB for further processing.

  • VDB Activate SDF

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

  • VDB Advect

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

  • VDB Advect Points

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

  • VDB Analysis

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

  • VDB Clip

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

  • VDB Combine

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

  • VDB Diagnostics

    Tests VDBs for Bad Values and Repairs.

  • VDB Fracture

    Cuts level set VDB volume primitives into multiple pieces.


    Build an LOD Pyramid from a VDB.

  • VDB Morph SDF

    Blends between source and target SDF VDBs.

  • VDB Occlusion Mask

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

  • VDB Points Delete

    Deletes points inside of VDB Points primitives.

  • VDB Points Group

    Manipulates the Internal Groups of a VDB Points Primitive.

  • VDB Potential Flow

    Computes the steady-state air flow around VDB obstacles.

  • VDB Project Non-Divergent

    Removes divergence from a Vector VDB.

  • VDB Renormalize SDF

    Fixes signed distance fields stored in VDB volume primitives.

  • VDB Resample

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

  • VDB Reshape SDF

    Reshapes signed distance fields in VDB volume primitives.

  • VDB Segment by Connectivity

    Splits SDF VDBs into connected components.

  • VDB Smooth

    Smooths out the values in a VDB volume primitive.

  • VDB Smooth SDF

    Smooths out SDF values in a VDB volume primitive.

  • VDB Topology to SDF

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

  • VDB Vector Merge

    Merges three scalar VDB into one vector VDB.

  • VDB Vector Split

    Splits a vector VDB primitive into three scalar VDB primitives.

  • VDB Visualize Tree

    Replaces a VDB volume with geometry that visualizes its structure.

  • VDB from Particle Fluid

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

  • VDB from Particles

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

  • VDB from Polygons

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

  • VDB to Spheres

    Fills a VDB volume with adaptively-sized spheres.

  • Vellum Brush

    Interactive brushing of Vellum geometry in the viewport.

  • Vellum Configure Grain

    Configures geometry for Vellum Grain constraints.

  • Vellum Constraint Property

    Modifies common Vellum Constraint properties.

  • Vellum Constraints

    Configure constraints on geometry for the Vellum solvers.

  • Vellum Drape

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

  • Vellum I/O

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

  • Vellum Pack

    Packs Vellum geometry and constraints into a single geometry.

  • Vellum Post-Process

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

  • Vellum Reference Frame

    Ties Vellum points to a reference frame defined by moving geometry.

  • Vellum Rest Blend

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

  • Vellum Solver

    Runs a dynamic Vellum simulation.

  • Vellum Unpack

    Unpacks a Vellum simulation into two outputs.

  • Verify BSDF

    Verify that a bsdf conforms to the required interface.

  • Vertex

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

  • Visibility

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

  • Visualize

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

  • Visualize Rig

    Visualize the transformations and parenting of a SOP skeleton

  • Volume

    Creates a volume primitive.

  • Volume Analysis

    Computes analytic properties of volumes.

  • Volume Arrival Time

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

  • Volume Blur

    Blurs the voxels of a volume.

  • Volume Bound

    Bounds voxel data.

  • Volume Break

    Cuts polygonal objects using a signed distance field volume.

  • Volume Compress

    Re-compresses Volume Primitives.

  • Volume Convolve 3×3×3

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

  • Volume FFT

    Compute the Fast Fourier Transform of volumes.

  • Volume Feather

    Feathers the edges of volumes.

  • Volume Merge

    Flattens many volumes into one volume.

  • Volume Mix

    Combines the scalar fields of volume primitives.

  • Volume Optical Flow

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

  • Volume Patch

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

  • Volume Ramp

    Remaps a volume according to a ramp.

  • Volume Rasterize

    Rasterizes into a volume.

  • Volume Rasterize Attributes

    Samples point attributes into VDBs.

  • Volume Rasterize Curve

    Converts a curve into a volume.

  • Volume Rasterize Hair

    Converts fur or hair to a volume for rendering.

  • Volume Rasterize Particles

    Converts a point cloud into a volume.

  • Volume Rasterize Points

    Converts a point cloud into a volume.

  • Volume Reduce

    Reduces the values of a volume into a single number.

  • Volume Resample

    Resamples the voxels of a volume to a new resolution.

  • Volume Resize

    Resizes the bounds of a volume without changing voxels.

  • Volume SDF

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

  • Volume Slice

    Extracts 2d slices from volumes.

  • Volume Splice

    Splices overlapping volume primitives together.

  • Volume Stamp

    Stamps volumes instanced on points into a single target volume.

  • Volume Surface

    Adaptively surfaces a volume hierarchy with a regular triangle mesh.

  • Volume Trail

    Computes a trail of points through a velocity volume.

  • Volume VOP

    Runs CVEX on a set of volume primitives.

  • Volume Velocity

    Computes a velocity volume.

  • Volume Velocity from Curves

    Generates a volume velocity field using curve tangents.

  • Volume Velocity from Surface

    Generates a velocity field within a surface geometry.

  • Volume Visualization

    Adjusts attributes for multi-volume visualization.

  • Volume Wrangle

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

  • Volume from Attribute

    Sets the voxels of a volume from point attributes.

  • Voronoi Adjacency

    Create a line segment between points with adjacent Voronoi cells

  • Voronoi Fracture

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

  • Voronoi Fracture 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.

  • Voronoi Split

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

  • Vortex Force Attributes

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

  • Whitewater Source

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

  • Winding Number

    Computes generalized winding number of surface at query points.

  • Wire Blend

    Morphs between curve shapes while maintaining curve length.

  • Wire Capture

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

  • Wire Deform

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

  • Wire Transfer

    Transfers the shape of one curve to another.

  • Wireframe

    Constructs polygonal tubes around polylines, creating renderable geometry.

  • glTF ROP output driver