Curve
Curve nodes: Read, Sample, Write, Operations, Primitives, Topology.
Read
Add - Curve - Read

Here you find curve related nodes.
Curve Handle Positions

Get the position of the left or right handle of a curve point.
Inputs
Relative
Data type: Boolean.
Output the handle positions relative to the corresponding control point instead of the local space of the geometry.
Outputs
Left
Data type: Vector.
The left handle of the curve point.
Right
Data type: Vector.
The right handle of the curve point.
Cuve Length

Retreives the length of all splines added together.
Inputs
Curve
The input curve.
Outputs
Length
The length of the curve.
Curve Tangent

Retreive the tangent direction of a curve. The output values are normalized vectors.
Note that for NURBS and Bézier spline curves the value retrieved from this node is the value at every control point, which may not correspond to the visible evaluated points. For NURBS splines the difference may be even more pronounced and the result may not be as expected. A Resample Curve Node node can be used to create a poly spline, where there is a control point for every evaluated point.
Outputs
Factor
The vector of the tangent.
Curve Tilt

Outputs the angle used to turn the curve normal around the direction of the curve tangent in its evaluated points.
The output is per control point. For NURBS and Bézier splines, the values will be interpolated to the final evaluated points.
Outputs
Tilt
Data type: Float.
The tilt angle for the normal in radians.
Endpoint Selection

The Endpoint Selection node allows for the Selection of an aribitrary
number of endpoints from each spline in a curve. The start and end
inputs are evaluated on the spline domain. The result is outputted
as a boolean field on the point domain.
Inputs
Start Size
Data type: Integer.
The start point of the spline.
End Size
Data type: Integer.
The end point of the spline.
Outputs
Selection
Data type: Boolean.
Selection output.
Handle Type Selection

Creates a selection based on the handle types of the control points.
Properties
Left / Right
Wether to check for the type of handles.
Handle Type

What handle type to compare.
Output
Selection
Data type: Boolean.
The selection.
Is Spline Cyclic

Retreive if the curve is set to cyclic.
Outputs
Cyclic
Data type: Boolean.
If the spline is cyclic or not.
NURBS Order

Reads the order of each NURBS spline. The order is how many control points pull on each point of the curve: a higher order gives a smoother, stiffer curve, a low order follows the control points more closely. Use it to find out how a NURBS curve is built, or to select the splines that have a certain order.
Outputs
Order
Data type: Integer.
The order of the spline. The value is meaningful for NURBS splines only.
NURBS Weight

Reads the weight of each control point of a NURBS spline. The weight sets how strongly a control point pulls the curve toward itself: a point with a high weight draws the curve closer, a point with a low weight lets it drift away. Use it to read the weights you set on a curve, or to select points by their pull.
Outputs
Weight
Data type: Float.
The weight of each control point. The value is meaningful for NURBS splines only.
Spline Length

Retreive the total length of each spline in a curve.
Outputs
Length
Data type: Float.
The length of each spline in the curve.
Point Count
Data type: Integer.
Integer Field input of the number of control points on each spline in the spline domain. Or in the point domain, it is the number of points on the spline that contains the given control point.
Spline Parameter

The Curve Parameter node outputs how far along each spline a control point is, with a value between zero and one. The output is different from dividing the index by the total number of control points, because the control points might not be equally spaced along the curve.
The first value is zero, so the output corresponds to the length at the control point rather than including the length of the following segment.
When used on the spline domain, the node outputs the portion of the total length of the curve (including all splines) has been traversed at the start of each spline. The order of the curve’s splines is visible in the Spreadsheet Editor.
Note that for NURBS and Bézier spline curves the value retrieved from this node is the value at every control point, which may not correspond to the visible evaluated points. For NURBS splines the difference may be even more pronounced and the result may not be as expected. A Resample Curve Node node can be used to create a poly spline, where there is a control point for every evaluated point.
Outputs
Factor
Data type: Float.
The factor of the curve.
Length
Data type: Float.
The length of the curve.
Index
Data type: Integer.
The index of the curve.
Spline Resolution

Retreive the curve resolution. Means the number of spline points.
Outputs
Resolution
Data type: Integer.
The spline resolution.
Sample
Add - Curve - Sample

Here you find curve related nodes.
Sample Curve

Calculates a point on a curve at a certain distance from the start of the curve, specified by the length or factor inputs. It also outputs data retrieved from that position on the curve.
The sampled values are linearly interpolated from the values at the evaluated curve points at each side of the sampled point.
In case that the curve contains multiple splines, the sample position is found based on the total accumulated length, including the lengths of all previous splines. The order of the splines is the same order as displayed in the Spreadsheet Editor.
Input
Curve
The input geometry.
Value
Data type: follows the Data Type setting.
Input Value.
Mode Factor
Factor
The resample amount with method Factor.
Curve Index
The curve index.
Mode Factor
Factor
The resample amount with method Factor.
Length
Data type: follows the Data Type setting.
The resample amount with method Length.
Properties
Data Type

What data to calculate.
Sample Curve Mode
How to calculate the curve. By a factor, or by its length.
All Curves
Sample lengths based on the length of all curves.
Output
Value
Data type: follows the Data Type setting.
Output Value.
Position
Data type: Vector.
The position at the sample along the spline.
Tangent
Data type: Vector.
The normalized curve tangent at the sample.
Normal
Data type: Vector.
The normalized curve normal at the sample.
Write
Add - Curve - Write

Here you find curve related nodes.
Set Curve Normal

Set the evaluation mode for curve normals.
Input
Curve
Data type: Geometry.
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Mode
Data type: Menu.

The evaluation mode for the curve normals.
Outputs
Curve
Data type: Geometry.
The curve output.
Set Curve Radius

Set the curve radius.
Inputs
Geometry
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Radius
Data type: Float (distance).
The radius to set.
Outputs
Geometry
Standard geometry output.
Set Curve Tilt

Controls the tilt angle at each curve control point.
Inputs
Geometry
The input curve.
Selection
Data type: Boolean.
Whether or not to change the value on each control point. True values mean the value will be changed, false values mean the value will remain the same.
Tilt
Data type: Float (angle).
The tilt rotation.
Outputs
Curve
Data type: Geometry.
Standard geometry output.
Set Handle Positions

Set the handle positions of bezier curves
Inputs
Geometry
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Position
Data type: Vector.
The position of the handle.
Offset
Data type: Vector (translation).
A vector 3 offset for the handles.
Properties
Mode
Left or right handles.
Outputs
Geometry
Standard geometry output.
Set Handle Type

Sets a handle type for the curve points of a bezier curve. Handle types determines how the interpolation before and after the curve point happens.
Input
Curve
Data type: Geometry.
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Properties
Mode
Left or right handles.
Handle Type

The different available handle types.
Free

The handles can be adjusted individually.
Auto

The left and the right handle will always point to each other. The length of the handles will start in equal size.
Vector

The handles can be adjusted individually.
Aligned

The left and the right handle will always point to each other.
Output
Curve
Data type: Geometry.
Standard geometry output.
Set Spline cyclic

Sets the spline cyclic. Means looping.
Inputs
Geometry
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Cyclic
Data type: Boolean.
Cyclic or not
Outputs
Geometry
Standard geometry output.
Set Spline Resolution

Sets the resolution of the spline. Means how many evaluated points should be generated on the curve for each control point.
Inputs
Geometry
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Resolution
Data type: Integer.
The resolution of the spline.
Outputs
Geometry
Standard geometry output.
Set Spline Type

Change the curve spline type.
Input
Curve
Data type: Geometry.
The input curve.
Selection
Data type: Boolean.
A selection of the input curve.
Properties
Spline Type

The spline type to set the curve to.
Note that when converting from a NURBS spline to a Bézier spline, at least six points are needed. When the number of points is not a multiple of three a full conversion is not possible and the spline has to be truncated.
Output
Curve
Data type: Geometry.
Standard geometry output.
Operations
Add - Curve

Here you find curve related nodes.
Cuve to Mesh

Converts a curve object to a mesh object. Optionally, a profile curve can be provided to give the curve a custom shape.
Inputs
Curve
The input curve.
Profile Curve
If a profile curve is provided, it will be extruded along all splines. Otherwise the generated mesh will just be a chain of edges.
Scale
Scale of the profile at each point.
Fill Caps
For cyclic profile curve. Fill the ends of the generated mesh for each spline combination with an N-gon. The resulting mesh is Manifold, the two new faces for each spline are simply connected to existing edges.
Outputs
Mesh
Standard mesh output.
Cuve to Points

Converts a curve object to a Point cloud.
Inputs
Curve
The input curve.
Properties
Mode

How to generate points from the input curve.
Evaluated

Create points from the evaluation points of the curve. This is based on the resolution attribute for nurbs and bezier splines.
Count

Sample each spline by evenly distributing the specified number of points along the spline.
Count Input
The number of points to distribute along the spline.
Length

Sample each spline by splitting the spline into segments by the specified length.
Length Input
The length of the single segments.
Outputs
Point
Generated point cloud.
Tangent
The normalized curve tangent at the sampled position, or the direct evaluated normal in Evaluated mode.
Normal
The normal value from the evaluated curve at each result point. This is the same value from the Normal Node at those positions.
Rotation
—
Cuves to Grease Pencil

Converts a curve object to a mesh object. Optionally, a profile curve can be provided to give the curve a custom shape.
Inputs
Curves
The input curves.
Selection
A selection of the curve
Instances as Layers
Create separate layers for each instance.
Outputs
Grease Pencil
Standard output. The Euler rotation build from the Tangent and Normal outputs.
Deform Curves on Surface

Curves that are attached to a surface can follow the surface at modification.
Inputs
Curves
Data type: Geometry.
The input curve.
Outputs
Curves
Data type: Geometry.
The output curve.
Fill Curve

Fills the curve with mesh geometry. The mesh is only generated flat with a local Z of 0.
Inputs
Curve
Data type: Geometry.
The input curve.
Group Input
An index used to rgoup curves together. Filling is done separately for each group.
Mode
Data type: Menu.

Triangles or N-gons
Fill the curve with either triangles, or use N-Gon geometry.
Outputs
Mesh
Data type: Geometry.
The output as mesh.
Fillet Curve

The Fillet Curve rounds corners on curve control points, similar to the effect of the Bevel Modifier on a 2D mesh.
A key difference is that the rounded portions created by the Fillet Curve node are always portions of a circle.
Input
Curve
Data type: Geometry.
The input curve.
Count
Data type: Integer.
Polymode. Define the number of vertices that are created.
Radius
Data type: Float (distance).
The radius of the arc
Limit Radius
Data type: Boolean.
Prevent overlapping when the defined radius exceeds the maximum possible radius for a given point.
Mode
Data type: Menu.

Bezier
Creates a circular arc at vertices by changing handle lengths (applicable only for Bezier splines).
Poly
Creates a circular arc by creating vertices (as many as defined by the Count fields input) along the arc (applicable for all spline types).
Outputs
Curve
Data type: Geometry.
Standard geometry input with a curve component.
Interpolate Curves

Generates new curve parts by interpolating between existing curves.
Input
Guide Curves
Data type: Geometry.
The base curves to interpolate from.
Guide Up
Data type: Vector.
An optional up vector that is typically a surface normal. Providing this up vector can improve the quality of the interpolation. This up direction can be retrieved with a combination of the Sample UV Surface Node using the same geometry that the points were distributed on, and the Normal Node.
Guide Group ID
Data type: Integer.
Splits guides into separate groups. New curves interpolate existing curves from a single group.
Points
Data type: Geometry.
The positions of the first root control points of the newly generated interpolated curves.
Points Up
Optional up vector that is typically a surface normal.
Point Group ID
Data type: Integer.
The curve group to interpolate in.
Max Neighbor
Maximum amount of close guide curves that are taken into account for interpolation.
Outputs
Curves
Data type: Geometry.
The new curve.
Closest Index
Data type: Integer.
Index of the closest guide curve for each generated curve. Note that internally this node mixes the data from multiple guide curves, with the maximum number of sources depending on the Max Neighbor input. This output is only the index of the curve with the largest weight.
Closest Weight
Data type: Float.
Weight of the closest guide curve for each generated curve.
Resample curve

Creates a poly spline for each input spline. In the Count and Length modes, the control points of the new poly splines will have uniform spacing.
Input
Curve
Data type: Geometry.
The input geometry.
Selection
Data type: Boolean.
A selection of the input geometry
Length
Data type: Float (distance).
The approximate length between the control points of the new splines.
Mode
Data type: Menu.

The resample mode.
Evaluated
Use the resolution attribute for spline and bezier curves.
Count
Use the count of the curve points.
Length
Use the length of the curve.
Count
Data type: Integer.
The number of control points on the new splines.
Output
Curve
Data type: Geometry.
Standard geometry output.
Reverse Curve

Reverses the direction of the spline. The start point becomes the end point and vice versa. The shape of the spline is not modified.
Inputs
Curve
Data type: Geometry.
The input curve.
Selection
Data type: Boolean.
An optional selection attribute to determine which part of the spline should be reversed.
Outputs
Curve
Data type: Geometry.
Standard geometry output.
Subdivide Curve

Subdivides the curve. The shape is not changed.
Inputs
Geometry
The input curve.
Cuts
Data type: Integer.
The number of cuts per segment.
Outputs
Geometry
Standard geometry output.
Trim Curve

The Curve Trim node shortens each spline in the curve by removing sections at the start and end of each spline.
Bézier splines will still output as Bézier splines. The first and last control point and its handles will be moved as necessary to preserve the shape. But NURBS splines will be transformed into poly splines in order to be trimmed.
Cyclic splines are currently not supported.
Note that if the Start input is larger than the End, then the resulting spline will have a single point, located at the sample location of the Start value.
Inputs
Curve
Data type: Geometry.
The input curve.
Selection
Data type: Boolean.
A selection of the curve.
Start
Data type: Float (factor) or Float (distance).
The start point of the spline, as a factor.
End
Data type: Float (factor) or Float (distance).
The end point of the spline, as a factor.
Properties
Mode
How to find endpoint positions for the trimmed spline.
Factor
The endpoint positions of each spline’s length is determined by a factor. The input values should be between 0 or 1.
Length
The endpoint positions of each spline is determined by a length from the start of each spline. The input values should be between 0 and the length of the splines.
Outputs
Curve
Data type: Geometry.
Standard geometry output.
Primitives
Add menu - Curve Primitives

Add curve primitives in different shapes.
Arc


Adds a bezier curve segment in the shape of an arc
Inputs
Resolution
Data type: Integer (unsigned).
The number of edges on the curve.
in Radius mode
Radius
Just Radius mode. The radius of the arc.
Start Angle
Just Radius mode. The start angle of the arc.
Sweep Angle
Just Radius mode. The sweep angle of the arc.
In Points Mode
Start
The start point vector of the ark.
Middle
The middle point vector of the ark.
End
The end point vector of the ark.
Offset Angle
The offset angle of the ark.
Connect Center
Data type: Boolean.
Connect the start and endpoins to the center.
Invert Arc
Data type: Boolean.
Inverts the arc.
Properties
Mode
Point or Radius mode.
Radius mode (default): Generates a fixed radius arc on XY plane with controls for Angle, Sweep and Invert.
Points mode: Generates a three point curve arc from Start to End via Middle with an Angle Offset and option to invert the arc. There are also outputs for arc center, radius and normal direction relative to the Z-axis.
Outputs
Curve
Data type: Geometry.
Curve output.
In Points Mode
Center
The center vector of the arc.
Normal
The normal of the arc.
Radius
The radius of the arc.
Bezier Segment

Adds a bezier curve segment.
Inputs
Resolution
The number of edges on the curve.
Start, End
Positions of the start and end control point of the curve.
Start Handle, End Handle
Positions of the handles used to define the shape of the curve.
Properties
Mode
Position
The handle inputs are the absolute positions of the handles in 3D space.
Offset
The handle positions are relative to the control point on the curve. The handle inputs give the offset from the control points.
Outputs
Curve
Bezier spline generated from the inputs.
Curve Circle

Adds a curve in circle shape.
Inputs
Resolution
Data type: Integer.
Number of edges on the circle.
Radius
Data type: Float (distance).

The radius of the circle.
Point 1, Point 2, Point 3
Appears when you change the method to Points. Defines three points on the circle. The order of the points determines the direction (clockwise or counterclockwise) of the circle.
Note that because of the finite resolution, the three points do not necessarily lie on the generated curve.
Properties
Mode
Points
The position and radius of the circle is defined by three points. The center of the circle is also given as an output. If the three points lie on one line, no geometry is generated.
Radius
The circle is defined by the radius.
Outputs
Curve
Data type: Geometry.
Poly spline generated from the inputs.
Center
Data type: Vector.
Appears when you change the method to Points. The center of the circle defined by the three points.
Curve Line

Adds a curve in the shape of a straight line.
Properties
Points
Calculates the curve by a start and end point.
Start
The start point of the curve.
End
The end point of the curve.
Direction

Calculates the curve by a start point, a direction vector and the length of the curve.
Start
The start point of the curve.
Direction
The direction vector.
Length
The length of the curve.
Outputs
Curve
Data type: Geometry.
The created curve.
Spiral

Adds a curve in spiral shape. By default the spiral twists clockwise.
Inputs
Resolution
Data type: Integer (unsigned).
Number of edges for each full rotation.
Rotations
Data type: Float.
Number of times the spiral makes a full rotation.
Start Radius, End Radius
Radius of the start point and end point of the spiral. The radius of the spiral changes linearly between the two values over the whole spiral.
Height
Data type: Float (distance).
Height of the spiral.
Reverse
Data type: Boolean.
Boolean value that changes the direction from clockwise to counterclockwise when turned on.
Outputs
Curve
Data type: Geometry.
Poly spline generated from the inputs.
Quadratic Bezier

Adds a curve from the given control points. The generated shape is a parabola.
Inputs
Resolution
The number of edges on the curve.
Start, Middle, End
Positions of the three control points. The generated curve passes through the two end points, and is tangent to the lines between the middle point and the two end points.
Outputs
Curve
Poly spline generated from the inputs.
Quadrilateral

Adds a curve in different geometric shapes.
Note that the names does not necessarily fit to the generated geometry.
Input
The input nodes may vary. See Properties.
Properties
Mode

Rectangle


creates a straight line in y direction.
Width
The length of the straight line.
Parallelogram


Creates a straight line that is adjustable in x and y direction.
Height
The height of the line.
Offset
The width of the line.
Trapezoid


Height
The height of the trapez.
Bottom Width
The width of the bottom line of the trapez.
Top Width
The width of the top line of the trapez.
Offset
The offset of the top line of the trapez.
Kite


creates a straight line in y direction. The curve end points are separately adjustable
Bottom Height
The length of the bottom part of the line.
Top Height
The length of the top part of the line.
Points


Creates a rectangle. Each point of the rectangle is independantly adjustable in x, y and z position.
Star

Adds a curve in star shape.
This is done by connecting alternating points of two circles. The points on the inner circle are offset by a rotation so that they lie in between the points on the outer circle. This offset can be changed with the twist input.
Inputs
Points
Data type: Integer (unsigned).
Number of points on each of the circles.
Inner Radius, Outer Radius
Radii of the two circles. The inner radius can be bigger than the outer radius.
Twist
Data type: Float (angle).
Angle offset of the inner circle. The twist value rotates the points on the circle corresponding with the inner radius counterclockwise by the given angle.
Outputs
Curve
Data type: Geometry.
Poly spline generated from the inputs.
Topology
Add menu - Curve Topology

Curve topology related nodes.
Curve of Point

Retrieve the curve of which the control point is part of.
Inputs
Point Index
Data type: Integer.
The point index of the curve.
Offset
Offset of the point index.
Outputs
Curve Index
Data type: Integer.
The curve of which the control point is part of.
Index in Curve
Data type: Integer.
How far along the curve the control point is.
Offset Points in Curve

Offset a control point index in the curve.
Inputs
Point Index
The point index of the curve.
Offset
Offset of the point index.
Outputs
Is Valid Offset
Outputs true if the evaluated controlpoint plus the offset is a valid index.
Point Index
The index of the control point plus the offset.
Points of Curve

Retreive a point index within a curve.
Inputs
Curve Index
Data type: Integer.
The curve to retreive the data from
Weights
Data type: Float.
Values to sort the curve points.
Sort Index
Data type: Integer.
The point to output.
Outputs
Point Index
Data type: Integer.
The output point.
Total
Data type: Integer.
The number of points in the curve.
Curve
Add menu - Curve
Construct Curves

Builds curves from raw point data. You give it one list with the positions of all points, and one list that tells where each curve starts. All curves it creates are Poly curves.
Inputs
Positions
Data type: Vector list.
A list with the positions of the points of all curves, one curve after the other.
Curve Offsets
Data type: Integer list.
A list that says which point each curve starts at. It is one entry longer than the number of curves. It holds the index of the first point of each curve, followed by the total number of points.
For example, two curves with 3 and 2 points use the offsets 0, 3, 5.
The first offset must be 0, the last offset must be the number of points, and every curve needs at least one point. If the lists do not fit, the node shows an error and outputs no curves.
Outputs
Curves
Data type: Geometry.
The new curves. If a list is missing or invalid, the output is empty.








