Houdini 20.0 Nodes Geometry nodes

PolyWire geometry node

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

On this page

This node works like the Wireframe node, but this node creates more complex tube geometry from curves, with smoother bends and intersections than Wireframe, especially for L-systems. (The Wireframe node creates transition surfaces where the original curve branches.)

The parameters support local variables but it it recommended that the attribute overloads are used for controlling the parameters.



The group of polygons to convert to wires.

Wire Radius

This is the radius of the wire to sweep over the polygon.

Scale Attrib

A float point attribute that will be multiplied with the wire radius to set the radius of the wire.

Prevent Joint Buckling

Scale the intersection point of edges to avoid a collapse when sharp turns are made.

Maximum Joint Scale

Prevent Joint Buckling scales up the intersection points so that they lie on the intersection of two tubes, rather than a width-sized sphere. This can cause the points to be scaled past the first segment of the tube, however, causing buckling. This parameter allows you to change on a point level what the maximum scale applied to the points is.

Smooth Point

If the expression evaluates to a non-zero value for a point, the generated tube is smooth and connected through that point. If the expression is zero, the corresponding segment is disconnected. A value of zero will leave ends uncapped.

Smooth Attrib

A float point attribute. If it is less than 0.5 for a point the point will be disconnected, as if the Smooth Point was set to zero.

Max Valence

Points with more than this number of edges connected to them will be treated as if the smooth point was set to zero. They will thus be disconnected. Such highly connected points will often produce bad results regardless, and more critically, require increasing time and memory to process that swiftly becomes prohibitive.


This is the number of divisions in the circle which is to be swept over the polygon. It can vary on a point basis.

Div Attrib

An integer point attribute to override the number of divisions at each point. This will override the Divisions parameter.


The number of segments to divide each edge of the polygon into. It can vary on a point basis.

Segs Attrib

An integer point attribute to override the number of segments each edge of the polygon will be broken into. The segment will use the average of the values of the end points. This overrides the Segments parameter.

Segment Scales

These are how far into the segment to make the first circle and how far towards the end to keep going. Both values are in the range 0-1, where 0 is the start and 1 the end. These are segment specific values. The local variable $NSEG is available here for the number of segments in the previous parameter.

If this is disabled, the values of 1/Segments and 1 - 1/Segments will be used.

Do Vertex Textures

Toggles whether vertex textures are generated for the geometry. For best texturing of branch points, the points of the wire should be ordered so the “important” side has least point number. For example, in a Y branch, the bottom of the Y should have the smallest point numbers.

U Seam Offset

A per segment parameter which cycles how far around the tube the seam is placed. The seam is always snapped to the nearest polygon edge.

U Textures

Per segment values for the starting/ending values of the u texture.

V Textures

Per segment values for the starting/ending values of the v textures.

V Texture Attrib

A float point attribute providing the v-coordinate for each point. Segments will get this value for all the points generated at the intersection point.

The Edge Transport SOP can be used to compute the lengths of curves from an origin to compute v texture attribute.

Joint Up Vector

If enabled, the up vector at each joint is set to the specified value. This will result in twisting of the branches.

Joint Up Attrib

A vector point attribute providing the up-direction for each point. This affects the twisting of the branches at this junction.



When resolving a segment, this is the distance between the end points of the segment.


This is the number of segments which the segments parameter evaluated to for this segment.


PolywireModel Example for PolyWire geometry node

This example demonstrates how the Polywire SOP builds polygonal geometry based on a polygonal frame, and how the parameters can be customized with local variables.

See also

Geometry nodes