Houdini 20.0 Nodes Geometry nodes

Spline Project geometry node

Creates profile curves on surfaces.

On this page

The Project SOP creates profile curves (also known as trim curves or curves-on-surface) by projecting a 3D face onto a spline surface, much like a light casts a 2D shadow onto a 3D surface.

There are two projection methods: along a vector, or mapping the face directly onto the parametric space of the surface.

After a Project node you will often want to…

Additional Operations for Profile Curves

To delete a projected curve, use a Delete SOP, and enter the profile number (e.g. 1.4 returns the fifth profile on the second primitive (counting starts at 0) ). You can visualize the number of the profiles by enabling the Profile Number icon in the Viewport Display options.

You can group the profile curves with a Group SOP. Do this by typing the profile numbers in the Pattern field. You can use all regular expressions.

You can apply parametric affine transformations to the profile by using a Primitive SOP. You can also use the Primitive SOP to open, close, reverse, and cycle the profile curves.


When applying transformations to a profile in the Primitive SOP, you can only rotate about the Z axis because the projected curve is a planar curve that lives in the domain of the surface. Therefore it wouldn’t make any sense to allow rotations in X or Y for profiles.


  1. Place a Circle SOP, Type: NURBS, Radius 0.3, 0.3; then place a Tube SOP, Type: NURBS.

  2. Connect them into a Project op: Circle to Input1; Tube to Input2.

  3. Append a Trim SOP to the Project node. It trims the surface according to the projection provided by the Project node. You need to append a Trim node to a Project node to get this trimming.

  4. Turn on the template flags on the Circle and Tube nodes; make the Project op the display op.


The: Minimum Distance option is extremely useful, say in the following situation: You have a NURBS surface of a head, and you want to obtain a NURBS patch by projecting a hairline onto the head’s surface. You could:

  • Template the NURBS head.

  • Enable the “Snap to Template” option in the Model Editor (Snap options).

  • Draw a NURBS curve along the surface of the head where you want the hairline.

  • Then, with the Project op, you select the Minimum Distance option, and you have a profile curve with which you can trim the surface of the head to obtain the patch.

  • Thus having obtained a NURBS patch for the scalp, you could use it as the source, say for the Emit pop to grow a particle system in order to produce hair.


Face Group

Subset of faces (NURBS,Bezier,polygons) to project.

Surface Group

Subset of spline surfaces to project on.

Cycle Type

Ways of choosing projection order and sequencing:

All faces on each surface in sequence

In the given domain interval

All faces on each surface overlapping

In the given domain interval

One face per surface: Cycled

One face per surface, cycled until all surfaces have been traversed

Along Vector


Faces are projected along a 3D vector


Vector along which to project the faces: X, Y, Z, user-defined, or minimum distance to the surface


x,y,z components of projection vector


What side of the surface to project the face on:


On the first side encountered in either direction


On the last side encountered in either direction

Divisions Per Span

Number of 3D points evaluated in each span

Ray Tolerance

Precision of ray-surface intersection

Fit Tolerance

Precision of 2D fitting algorithm

Max UV Gap (%)

Percentage of domain to join 2 profiles


Spline order of resulting profile curve

Preserve Sharp Corners

Enable or disable fitting of sharp turns in curve

Super Accurate

Use a very accurate, yet time consuming algorithm



Direct conversion of 3D CVs to domain points

U From

Which of X,Y,Z must be mapped to the U parameter

V From

Which of X,Y,Z must be mapped to the V parameter

Map Profile to Range

Constrain the profile to the domain range below:

U Range

Area of the unit U domain to be mapped on

V Range

Area of the unit V domain to be mapped on

Mapping Type

Uniform or chord length based conversion


ProjectCurve Example for Spline Project geometry node

This example shows the Project SOP projecting a Circle onto a Tube geometry.

By projecting along a vector the Circle profile is attached to the tube. With the use of a Trim SOP the profile can then be used to cut holes in the Tube.

See also

Geometry nodes