The Ultimate Houdini node reference

# Visit the Node Bible

The Add SOP is designed to "add" geometry to your scene.  Ironically, this can also isolate points by removing their associated primitives.
Drag to resize

Summary:

-  The Add sop is useful for a variety of tasks – especially when it comes to procedurally generating geometry based on some kind of group or pattern. In practice, this gets used a lot when isolating points, abstract FX, and generating detailed geometry that may be useful in a variety of situations. To make the most of this node, it’s also worth looking at the Sort sop to re-arrange the distribution of point ids. The point IDs form the basis of how the add node creates geometry, so re-arranging the point ids with the add sop works hand-in-hand in many situations.

Drag to resize

General Parameters:

Points:

• Delete Geometry But Keep the Points:
-  Just as the name suggests, this node will remove all primitives and leave only the points intact.
• Number of Points:
- To Add a point to your scene, click the “+” icon
- The checkbox will toggle on or off the new point
- The coordinates (in X,Y,Z) are represented in the boxes
- “W” stands for “weight” and is only applicable if this point gets used to create a NURBS or Bezier curve. The weight will influence the shape of the primitive. Polygons and metaballs are not affected by W.
- Note that you can move the point in your viewport by clicking on the multi-widget tool on the left-hand side of the screen. (Right above the snapping magnet icons)

Polygons:

This tab is responsible for generating polygon primitives.
• Number of Primitives:
- To add a new primitive, click the “+” icon
- Under “Polygon 0” the blank parameter is asking you for the point pattern of each polygon. This “Point pattern” is asking you for the point numbers that should be considered when drawing the new polygon.
- As an example, if you make 4 points, the ids of those points should be (0,1,2,3). In the parameter field, you can input 0-3, and it will draw a polyline starting at point ID 0, then 1, then 2, and 3.
- The documentation states what sort of patterns you can input as such:

{from}-{to}[:{every}][,{of}]
eg1: 1 2 3 4
eg2: 1 3-15 16 8
eg3: 1-234 820-410 235-409
eg4: 0-15:2
eg5: 0-15:2,3

What’s interesting here is that you can create polylines with the “every, of” syntax
- So, if you don’t want to go up sequentially (1,2,3,4,5, etc...) as you’re drawing the line, you can skip ids.
- For example, if you want to make a polyline between ids 1-100 and skip every 5 ids, you could say something like this:
- 1-100: 1, 5
- This will draw the polygon by going... (1,6,11,16,etc... until it reaches 100).
- In practice, this can provide interesting lines/shapes which may be useful for a variety of effects.
• By Group:
- Group = This allows you to specify a group of points that will be used for drawing out a polygon primitive.
- All points = The primitive will be drawn in ascending order of the point ID by default based on the specified group selection.
- Groups of N Points = The polygon will be drawn out for the selected points in the group field. In addition to that, polylines are only drawn for every other point Id as it is ascending. Unlike the syntax described above, this creates multiple polygons.
- Skip every Nth point = This works more like the syntax described above in the “By Pattern” section because it creates one big polygon that skips point ids.
- Each Group Separately = If you have multiple point groups specified on your mesh, then it will create a separate polygon for each group that’s specified.
- By Attribute = This is one of the most useful parameters on the add node. It will create a polyline based on matching point attribute values. So, if two points have an attribute called “trail-id” and their “trail-id” value is the same, then this can create a polygon based on those points.

Particles:

- This tab was used in some of the earliest versions of Houdini, and it is no longer as relevant. In the past, it was used to create the basis for particle systems by generating a “particle system” primitive. This existed before the pop source node was created. It used to be that you had to define a “particle system” primitive, assign attributes to that primitive, and then send it over to a pop solver for simulation. Nowadays, the pop source dop takes care of this entire process for you.
- In general, I would advise ignoring this tab because it is no longer relevant to modern workflows.

Drag to resize