NURBS Curves

NURBS modeling is often based on the idea that the user first creates one or more freeform curves and then applies appropriate surface construction tools to the curves.

In this tutorial we explore various NURBS curve manipulation tools.

To create a cubic NURBS curve:

1. Click the NURBS/Curve tool.

As always, the control bar shows you the curve tool specific options. The default options are set for open cubic NURBS curves.

The curve tool activated. The control bar shows the curve specific options.

3. Click the left mouse button in the View window to enter a desired number of control points for the NURBS curve. If you click a new point in a wrong place, select Go Back from the view's popup menu to remove the last entered point. When done, select Accept from the tool control bar or from the view popup menu.

Create a cubic NURBS curve by entering a desired number of control points

Editing NURBS curves

Similar to most other geometric objects, also NURBS curves specify object specific handles which can be accessed in the Edit mode.

For example, to change the position of the first control point:

1. Select the curve and enter the Edit mode (hit the Space bar, for example).

You can now see the control polygon of the curve.

2. Drag the first control point to move it.

Curve modified in the edit mode

You can also modify the curve using any transformation tool, such as the Move tool. First select some control points by using dragging or by clicking them while holding down the Shift key. Then use the move tool the usual way to move the selected points.

You can also modify the knot points (the actual curve points). Knot points are represented as small crosses on the curve. Just drag them to move them.

Interpolation curves

You can also create a NURBS curve by defining the actual curve points (the knot points). This is called 'interpolating' or 'inverse design'.

To create a curve which passes through the desired points:

1. Activate the curve tool and set the Interpolate check box.

Set the Interpolate option

2. Enter a number of points through the view window and select Accept.

A curve passing through the specified knot points

Creating freehand curves

The curve tool can be used for creating freehand curves. When using the Freehand option, you don't define curve by clicking the left mouse button. Instead, you drag with the mouse to define a freehand shape. The tool then creates a curve which represent the specified path with a minimal number of control points.

To create a freehand curve:

1. Activate the curve tool.

2. Set the Freehand option.

Freehand option set

3. Press down the left mouse button in the view window and move the mouse to define a desired freehand shape. When done, release the mouse and the curve is created.

Hold down the left mouse button while moving the mouse to create a freehand curve

Controlling the order

The Order option controls whether the created curve is polygonal, quadric or cubic.

To create a closed polygonal curve:

1. Activate the curve tool.

2. Set Order to Polygonal and check the Closed option.

Select Polygonal order and check the Closed option

3. Click a desired number of points through the view window. Finish the curve by clicking the Accept button.

Polygonal, quadric and cubic NURBS curves

Creating circles and rectangles

The NURBS tab also has tools for creating circles and rectangles. These tools can be used exactly the same way as the Curve tool to create NURBS curves. In many cases you have to create circles or arcs. The circle tool can be used for this purpose.

For example, to create an exact NURBS circle:

1. Activate the NURBS/Circle tool.

Circle tool selected with the Exact option set

2. Check the Exact check box. Make sure that the Filled option is not set.

3. Enter two points through the view window to define the center and the radius for the circle.

You can also create non-exact circles. In this case, you can freely control the number of control points used in defining the circle. Such a circle is not mathematically exact but is often useful when creating various freeform objects.

To create a circle consisting of 8 control points:

1. Activate the NURBS/Circle tool.

2. Define a desired number of control points to the Point field of the control bar.

An exactly circular NURBS curve

3. Define the center and the radius in a view window.

[Note] Note
You can also create polygonal circles. For example, a triangle can be represented as a closed, polygonal NURBS curve consisting of three control points.

A cubic circle consisting of eight control points on the left. Two polygonal circles on the right.

Inserting points

When you select a NURBS curve, the tool control bar automatically shows the curve specific tools, which can be applied to the selected curves.

Control bar with the NURBS curve specific tools

To add a point to a curve:

1. Select a NURBS curve.

2. Click the New Point tool in the tool control bar.

3. Drag along the curve to find an appropriate position for the new point. The new point is indicated as a small cross. When you release the left mouse button, the new point is inserted to the curve.

Find a position for the point by dragging near the curve

Inserting new points to a curve does not change the shape of the curve. You can also create a new point by duplicating existing points. Holding down the 'Ctrl' key while dragging a knot point in the edit mode does this.

Creating sharp corners

You can also add a new point to a curve so that the new point allows you to create a sharp corner to the curve. To add a sharp point to a curve:

1. Select the curve and activate the 'Sharpen' tool.

The Sharpen tool

2. The Sharpen tool works exactly the same way as the Add Point tool: Move the mouse near the NURBS curve and drag with the left mouse button to find an appropriate position on the curve. When found, release the mouse button and the new point is inserted to the curve.

Drag along the curve to find a position for the new point
A Sharp point added and moved

The tool does not change the shape of the curve in any way. The nature of the inserted point is revealed when you modify the point.

3. Move the new point in the Edit mode. A sharp corner is formed.

Breaking curves

The Break tool splits a curve into two parts.

The break point is defined the same way as the position of the new point in the 'Add Point' and 'Sharpen' tools:

1. Select the curve to be split and activate the 'Break' tool.

2. Drag along the curve to find a desired break point. Then release the mouse to accept the tool.

Drag along the curve to define the break point

The shapes of the resulting two curves represent together exactly the shape of the original curve.

You can apply this tool to a closed curve to open it from a desired point. Again, the shape of the curve remains unchanged.

A curve split into two parts. The first point of the tail part moved.

The original closed curve on the left. The Break tool applied and end points modified on the right.

Defining the start point of a closed curve

NURBS curves are 'parametric curves'. The beginning of a curve corresponds to the parameter value 0 and the end point of the curve corresponds to the parameter value of 1. However, a closed curve does not have an apparent beginning - any point could start the curve.

The 'Start' tool can be applied to translate the parameter space of a closed curve so that the given point becomes the start point of the curve. The start point is rendered as a small triangle. This can be relevant when using closed curves in path animations or as parameters for constructing surfaces.

The new 'start point' can be set to any position of the curve. The operation does not change the shape of the curve.

1. Select a closed curve and activate the 'Start' tool.

2. Drag the mouse along the curve. Release the left mouse button at a desired point.

Two identical curves with different start points indicated by a small black triangle

Deleting control points

To delete one or more control points from a curve:

1. Select the curve and hit the space bar to enter the Edit mode. The curve now reveals its control polygon. Select the control points to be deleted.

Two rightmost control points selected
The selected control points deleted

3. Click the Delete button in the control bar.

Delete Control Points tool

The shape of the remaining curve is changed by the operation. You can use the 'Break' tool to get rid of a part of the curve without affecting the shape.

Weights

NURBS curves support a parameter called 'weight'.

The weight parameter allows you to control how strongly a control point affects the corresponding curve point (knot point). The higher the weight, the stronger the control point pulls the curve towards the control point.

You can modify the weight parameter interactively as follows:

1. In Edit mode, select the desired control point.

2. Activate the Weight tool from the control bar and click the mouse in the view window. By moving the mouse up/down you can increase/decrease the weight of the selected control points. Click the mouse again to accept the tool.

Three NURBS curves with different weights at the topmost control point

[Note] Note
You can also modify the weight of the selected control points by dragging them while holding down the Alt key.

Degree elevation and reduction

The NURBS Curve tool can create polygonal, quadric and cubic nurbs curves using the selected Order parameter.

The order of a polygonal curve is two. Mathematically speaking, such a curve is of first degree. Second degree curves are called 'quadrics' and they can represent accurately circles and ellipse arcs, for example. Cubic curves are often a very good compromise between smoothness and performance. However, even higher order curves can be created. The higher the degree, the smoother the curve.

The Elevate and Reduce tools modify the degree of a curve.

Assume that you have a polygonal curve and you need to bend its tail smoothly. A polygonal curve does not allow smooth bending. Therefore:

1. Create a polygonal curve.

2. Select the curve and click the Elevate button on the control bar.

The original polygonal curve on the left. The degree elevated quadric curve on the right.

As you can see, the degree elevation didn't change the shape of the curve. This is possible because quadric NURBS curves are flexible enough to represent also polygonal shapes. To see that the curve is really quadric, edit the last control points to bend the tail.

Two control points moved
Degree elevate and smooth

You can also elevate the degree of a curve so that the increased order is used to smooth the curve. The Elevate tool includes a pop-up menu, which selects the elevation method. Click the small arrow associated with the Elevate button to open the menu.

High order NURBS curves are useful when you need extra smooth and continuous curves for motion paths. High level of smoothness is important in camera fly animations, for example.

To reduce the degree of a curve, just click the Reduce tool. Note that degree reduction always changes the shape of the curve.

The original polygonal curve on the left, Elevate by Smoothing applied on the right

Concatenating curves

As demonstrated above, NURBS curves can represent both polygonal and smooth shapes. How about creating a single curve, which contains both polygonal and smooth sections?

An easy way to achieve this is by using the Concatenate tool.

Concatenate multiple curves to one

1. Create a cubic curve.

2. Create a polygonal curve, which starts exactly from the end point of the cubic curve.

[Note] Note
Use dragging to snap the position the first point of the polygonal curve exactly over the last point of the cubic curve.

3. Select both curves (using the Shift key) and click the Concatenate tool to get single curve with cubic and polygonal curve segment.

Concatenating two curves of different order
[Note] Note

If the end points of the curves are displaced, the tool creates one additional curve segment to fix the displacement. If the end points overlap, the result matches exactly the shape of the original parameter curves.

You can select the curves for concatenation in any order. The tool automatically finds correct order by studying the distances between the end points of the selected curves.

Concatenate is a very powerful curve construction tool, because it can join curves with different parametrization and order to one single curve.

Parametrization

Parametrization of NURBS curve is a rather mathematical issue and there is no easy way to explain it. A great deal of the power behind NURBS curves relies on the possibility to use a suitable non-uniform parametrization. Fortunately, in most cases, you don't have to worry about the parametrization issues.

The Param tool changes curve parametrization. The following parametrization methods are supported by the tool:

Typically, Chord Length or Centripetal parametrization give the smoothest curve shape (and most constant speed when used as an animation path). However, sometimes you may want to use also Uniform parametrization.

[Note] Note
Changing the parametrization always affects the shape of the curve. In fact, many of the tools we have demonstrated above modify the curve parametrization to achieve the desired effect. For example, the Break tool increases so-called 'knot multiplicity' so that a sharp corner can be represented. By applying the Param tool, you lose the custom parametrization needed for sharp corners. The result is a curve, which smoothly approximates its control points.

Bezier curves

Thanks to non-uniform parametrization, NURBS curves are powerful enough to represent also Bezier curves. However, this parametrization technique can only be used if the number of control points is appropriate. Therefore, it is not available as an option for the Param tool.

Instead, a special Bezier tool is included, allowing you to convert any NURBS curve to the Bezier form.

A standard cubic NURBS curve with a chord length parametrization on the left. The Bezier tool applied on the right.

The Bezier form provides you with a great deal of power over the shape of the curve. However, it also allows you to define curves, which are not as smooth as curves with uniform, chord length or centripetal parametrization. This can be a significant disadvantage when using curves to construct surfaces or when using them as motion paths in camera animations.

Opening/closing curves

You can close an open curve and open a closed curve by clicking the Close tool. If you have selected various curves and some of them are open, some closed, the pop-up menu associated with the Close button can be used to select whether all the curves should be opened or closed.

There are two ways to open curves: exact and approximate.

When using the exact method, the shape of the curve is not changed. The curve is broken from its start point and you can see that it is really open only by displacing its end points.

The second method simply takes the existing control polygon to define a new open curve. The shape of the curve is changed dramatically at the ends.

An open curve on the left. The result after applying Close on the right.

[Note] Note
If you have used Sharpen, Bezier or other tools which create a custom parametrization, the Close tool may introduce a sharp point where the curve is closed. You can fix the problem by changing the parametrization to uniform, centripetal or chord length.

Changing the direction of a curve

The Swap tool inverts the direction of a curve. The direction of a curve is significant when using it as a motion path or as a parameter for various surface construction tools. The direction of a curve is indicated by the small black triangle.

Just select desired curves and click Swap button on the control bar to change their direction.

Inverting curves

The Invert tool changes the curve so that it passes through its original control points. The result is the same as if you created the curve using the Interpolate option in the first place.

Using the Extrude option

Another way of creating curves is using the curve tool that is in the Tools/Unified menu. This curve tool also supports the Extrude option. When the Extrude option is set, the curve tool creates various NURBS surfaces instead of curves. For example, to create a conical surface with a freeform cross section:

1. Activate the Unified/Curve tool.

2. Set the Extrude option.

3. Enter a number of control points to define a cross section for the extruded surface. When done, click Accept. You can now define the position for the apex. Click the mouse in the desired point and select Accept.

A conical surface with a freeform cross section

If you want to create a cylinder with a freeform cross section:

1. Activate the Unified/Curve tool. Set the Closed option from the control bar.

2. Set Extrude. You may also set Filled to get lids for both ends of the cylinder.

3. Enter the cross section points and select Accept. The curve tool starts to outline the position for the apex. Don't enter the apex point. Instead, select Accept again.

A cylindrical object created by the curve tool with Extrude and Filled options

Using the Pen option

The NURBS Curve tool allows you to construct surfaces interactively. This can be achieved using the Pen option. By default, the pen is just a single point - sweeping it in 3D space creates a curve. When the Pen option is activated, the selected object is taken as a 'pen'. For example, by using a circular curve as a pen for the NURBS Curve tool, one can create circular tubes.

Let's try this:

1. Create a NURBS circle using the NURBS Circle tool from the side view.

2. Make sure the circle is selected and activate the NURBS Curve tool. Then set the Pen option to Sweep.

Set Pen to Sweep

Create a tube by using a NURBS circle as a pen for the curve tool

3. In the front view, define a desired profile curve for the tube. Make sure you click the first profile point over the selected circle. A circular tube is shown while you define the profile curve.

You can create open surfaces by using an open curve as a pen. If you use a polygonal curve as a pen for a cubic curve, the result is a surface which is polygonal in one direction and cubic in the other direction.

The Rotate pen rotates the drawn curve about the selected axis object. For example, to create a banana:

1. Create a slightly bent axis curve, which travels in the middle of the banana.

2. Select the axis curve, start the NURBS Curve tool, set Pen to Rotate and enter a profile curve for the banana.

Constructing surfaces is described in more detail in other NURBS modeling tutorials.