Get started

This tutorial is meant for these which don’t feel confident about knowing NURBS.

If you feel confident, please skip to Basics

What is NURBS?

NURBS is a powerful way to represent curves and surfaces. It allows design smooth curves, usually applied on CAD. It also generalizes straight lines, circles, ellipses and many other shapes. Almost every curve can be expressed using NURBS and this library gives you tools to do it.

There is an awesome introductory video The Continuity of Splines that shows the main idea behind. I recommend you to see this video and then come back.

Note

For a more formal definition, please see wikipedia or refer to “The NURBS book” from “Les Piegl” and “Wayne Tiller”.

The elements

There are three main elements for NURBS:

  • Knot Vector

  • Basis Functions

  • Curves

A NURBS curve \(\mathbf{C}(u)\) is expressed by a linear combination of \(n\) basis functions \(f_i(u)\) and control points \(\mathbf{P}_i\):

\[\mathbf{C}(u) = \sum_{i=0}^{n-1} f_i(u) \cdot \mathbf{P}_{i}\]

There are two main caracteristics of a curve: degree (degree) and number of points (often abbreviated to npts):

  • A curve of degree \(1\) is a set of straight segments

  • A curve of degree \(2\) is a set of parabolic intervals

Note

Usually the degree stays between \(0\) and \(4\)