Houdini 20.0 Nodes Geometry nodes

Curve geometry node

Creates polygonal, NURBS, or Bezier curves.

On this page

You can optionally connect geometry to the node’s input and the curve will snap to its points. Use the Keep input geometry to make the snapping template part of the output geometry for this node.

Placing Curves

  1. Click the Curve shelf option on the Create tab.

  2. Select either Polygon, NURBS, or Bezier from the Primitive Type menu on the operation controls toolbar.

  3. Move the mouse into the scene view and click LMB to place the points.

    The points are grounded on the construction plane. You can hold Alt to detach the curve from the construction plane or hold ⌃ Ctrl to constrain the placement of the points within 45 degree angles.

    You can also reorient the construction plane completely before drawing the curve.

  4. Press Enter or ⇧ Shift + RMB to finish the curve.

To...Do this

Delete the last placed point

Press ⌦ Del.

Move the points of the curve

Click and drag them once they are created.

Note

You can only move individual points at the geometry level. At the object level you can move the entire curve.

Insert points on an existing curve

Press ⇧ Shift + LMB on the curve.

Insert points on the curve

Press ⇧ Shift + LMB anywhere in the scene view.

Connect the first and last points of the curve

Turn on the Close checkbox on the operation controls toolbar. NOTE

The closed curve will appear as a surface in shaded mode.

Change the order for NURBS and bezier

Set it in the operation controls toolbar.

NURBS and Bezier

You can create either NURBS or bezier curves with the curve shelf tool. These types of curves allow you to choose CVs, Breakpoint (knots), or Freehand from the Method menu on the operation controls toolbar. NURBS automatically determine the start and end points of your curve, whereas bezier curves recognize the first point as the start point, the second and third points as control points, and the fourth point as the end point. If the bezier curve has more than four points, the fourth point is also recognized as the start point for the next set of points.

NURBS Curve

Bezier Curve

Polygons

You can also create polygons with the curve shelf tool, and choose either CVs, Breakpoint (knots), or Freehand from the Method menu on the operation controls toolbar; however, when creating polygons both CVs and Breakpoint will act the same way (allow you to place points in the scene view).

NURBS Curve

Parameters

Primitive Type

Type of geometry to create.

Polygon

Create a polyline.

NURBS

Create a NURBS curve.

Bezier

Create a Bezier curve.

Points

Create disconnected points.

Method

Drawing method (how to interpret mouse clicks in the viewer and coordinates in the field below).

CVs

Click to place control vertices. When Primitive type is “Polygon”, this simply places polygonal vertices.

Breakpoints

Click to place breakpoints, and have Houdini calculate positions for the control vertices. When Primitive type is “Polygon”, this simply places polygonal vertices.

Freehand

Drag to draw a multi-point line, which Houdini then fits a curve to using the options on the Fitting properties tab.

Coordinates

Normally you will use this operator in the viewer and simply click to indicate coordinates; however, if you need to you can also use a space-separated list of coordinates in this field to specify points.

Coordinates can be specified in the following formats:

x,y,z

Absolute 3D coordinates, with a default weight of 1.

x,y,z,w

Absolute 3D coordinates and weighting factor.

@x,y,z

3D coordinates relative to the previous point in the list.

@x,y,z,w

3D coordinates and weighting factor relative to the previous point in the list.

pn

Reference the coordinates of point number n in the input geometry.

Pn

Copy the coordinates of point number n in the input geometry.

xbu, xb[u]

For example, 0b0, 0b[1].... Creates a point at breakpoint number u of curve number x in the input geometry.

xb[u,v]

For example, 0b[0,0].... Creates a point at breakpoint (u,v) of the surface number x in the input geometry.

Curve Properties

Close

Automatically closes the curve.

Reverse

Build the curve in the opposite direction. When building a curve, this reverses the vertex order, but does not affect the point order. When Primitive Type is Points, however, the points are reversed, since there are no vertices.

Normalize Basis

Normalizes the curve’s basis.

Order

The order of the NURBS or Bezier curve. Higher order curves give more control vertices and smoother curve interpolation between breakpoints.

Fitting Properties

These parameters control the fitting of the curve to the points you draw when Method is “Freehand”.

Parameterization

How to assign U values to breakpoints. This mainly affects the mapping of textures onto surfaces you create with the curve later.

Uniform

Make each breakpoint have consecutive integral U values. So, the first breakpoint is U=1.0, the second breakpoint is U=2.0, and so on.

This makes it easy to relate U values to breakpoint locations, but results in uneven distribution of U values along the curve (bunched up when the distance between breakpoints is short, and stretched out when the distance between breakpoints is long).

Chord length

Assigns U values along the curve based on the actual distance along the curve from the beginning. So, breakpoints have arbitrary U values based on how far along the curve they are.

This evenly distributes U values along the curve and makes it easy to relate U values to positions on the curve.

Centripetal

Like “Chord length” except instead of making U values proportional to the distance between breakpoints, they are proportional to the square root of the distance.

Tolerance

How close the fitted curve should be to the points you drew. Large values give a looser fit but a more efficient curve, while smaller values give a better fit but a heavier, more complex curve.

Smoothness

Extra smoothing of the fitted curve. Use this to smooth out rough patches.

Preserve Sharp Corners

Try to preserve sharp turns in the freehand points.

Keep Input Geometry

Include the input geometry in this node’s output.

Examples

CurveHood

This example demonstrates how to use the Curve SOP to create a car’s hood. It also shows how to make points on a new curve dependent on the points of a previous curve. This way, you can move the points on one curve and affect any curve further in the network.

See also

Geometry nodes