Curve surface node

Creates polygonal, NURBS, or Bezier curves.

All Parameters Example files

See also: Add, Fit

  1. In the viewer, use the tab menu to select the Curve SOP.

  2. Use the operation controls toolbar at the top of the viewer, or the parameter editor, to set the type of geometry to create, drawing method, and whether to automatically close the curve.

  3. Click in the viewer to place points (control vertices or breakpoints, depending on the Method setting).

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 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 + to finish the curve.

  5. 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 + on the curve.

    Insert points on the curve

    Press ⇧ Shift + 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.

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.

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.

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.

Fitting Properties

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

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.

Example files

CurveHood

$HFS/houdini/help/examples/nodes/sop/curve/CurveHood.cmd

Load | Launch

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.

Usages in other examples

Example name Example for

Dynamics channel node

Load | Launch

Lookup channel node

Load | Launch

Material shader

Load | Launch

Attrib Create surface node

Load | Launch

Revolve surface node

Load | Launch

Convert surface node

Load | Launch

Convert surface node

Load | Launch

Refine surface node

Load | Launch

Dop Import surface node

Load | Launch

Dop Import surface node

Load | Launch

Primitive surface node

Load | Launch

Rails surface node

Load | Launch

Particle surface node

Load | Launch

Particle surface node

Load | Launch

Particle surface node

Load | Launch

Particle surface node

Load | Launch

Fit surface node

Load | Launch

Skin surface node

Load | Launch

Skin surface node

Load | Launch

Resample surface node

Load | Launch

Sequence Blend surface node

Load | Launch

Sequence Blend surface node

Load | Launch

Sequence Blend surface node

Load | Launch

Sequence Blend surface node

Load | Launch

Sequence Blend surface node

Load | Launch

Blend Shapes surface node

Load | Launch

Fuse surface node

Load | Launch

Poly Wire surface node

Load | Launch

Edge Cusp surface node

Load | Launch

Sweep surface node

Load | Launch

Sweep surface node

Load | Launch

Poly Split surface node

Load | Launch

Creep surface node

Load | Launch

Creep surface node

Load | Launch

Creep surface node

Load | Launch

Facet surface node

Load | Launch

Follow particle node

Load | Launch

Attractor particle node

Load | Launch

Multiple Solver dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Fluid Object dynamics node

Load | Launch

Blend Solver dynamics node

Load | Launch

RBD Fractured Object dynamics node

Load | Launch

Copy Objects dynamics node

Load | Launch

Copy Objects dynamics node

Load | Launch

RBD Visualization dynamics node

Load | Launch

RBD Keyframe Active dynamics node

Load | Launch

Switch Solver dynamics node

Load | Launch

Wire Object dynamics node

Load | Launch

RBD Auto Freeze dynamics node

Load | Launch

Smoke Object dynamics node

Load | Launch

Smoke Object dynamics node

Load | Launch

SOP Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Particle Fluid Solver dynamics node

Load | Launch

Buoyancy Force dynamics node

Load | Launch

POP Solver dynamics node

Load | Launch

Load | Launch

Cloth Solver dynamics node

Load | Launch

RBD Object dynamics node

Load | Launch

RBD Object dynamics node

Load | Launch

Particle Fluid Object dynamics node

Load | Launch

Particle Fluid Object dynamics node

Load | Launch

Particle Fluid Object dynamics node

Load | Launch

Particle Fluid Object dynamics node

Load | Launch

Particle Fluid Object dynamics node

Load | Launch

RBD Glue Object dynamics node

Load | Launch

RBD Glue Object dynamics node

Load | Launch

RBD Glue Object dynamics node

Load | Launch

File dynamics node

Load | Launch

Active Value dynamics node

Load | Launch

Active Value dynamics node

Load | Launch

Anchor: Align Axis dynamics node

Load | Launch

Reference Frame Force dynamics node

Load | Launch

Vortex Force dynamics node

Load | Launch

Script Solver dynamics node

Load | Launch

Script Solver dynamics node

Load | Launch