Fact-checked by Grok 2 weeks ago

Non-uniform rational B-spline

A non-uniform rational B-spline (NURBS) is a mathematical representation for free-form curves and surfaces in computer graphics and computer-aided geometric design (CAGD), generalizing non-uniform B-splines through the incorporation of rational weights associated with control points to enable the exact modeling of conic sections and arbitrary projective transformations. Defined parametrically, a NURBS curve of degree p is given by \mathbf{C}(u) = \frac{\sum_{i=0}^{n} N_{i,p}(u) w_i \mathbf{P}_i}{\sum_{i=0}^{n} N_{i,p}(u) w_i}, where \mathbf{P}_i are control points, w_i > 0 are weights, and N_{i,p}(u) are the B-spline basis functions derived from a knot vector, ensuring local control and continuity up to order p. Similarly, NURBS surfaces extend this to a tensor-product form using a control net and bivariate basis functions. NURBS inherit key properties from B-splines, including local support (each basis function influences only a finite segment), partition of unity (the basis sums to 1, stabilizing the curve), and affine invariance, while the rational formulation adds projective invariance, making them suitable for perspective projections in rendering. The non-uniform knot distribution allows flexible spacing to achieve varying curvature densities, and weights provide intuitive shape control: increasing a weight pulls the curve toward its control point without altering the overall topology. These features make NURBS a standard in industry software for precise, smooth modeling, superseding earlier non-rational B-splines in applications requiring conic accuracy. The development of NURBS traces back to foundational work on B-splines by M. G. Cox in 1972 and Carl de Boor in the same year, who established the recursive basis functions essential for efficient computation. Rational extensions were pioneered by Steven Anson Coons in 1967 for representing conics via weighted polynomials, with further advancement in Ronald N. Goldman and Edwin Hayashi's explorations of rational splines in the early 1970s. The term NURBS and its full formulation emerged in Kenneth J. Versprille's 1975 PhD thesis at Syracuse University, "Computer-Aided Design Applications of the Rational B-Spline Approximation Form," which integrated non-uniformity and rationality for practical CAD use. By 1973, Richard F. Riesenfeld's dissertation had promoted their adoption, leading to widespread implementation in systems like those from Autodesk and Dassault Systèmes by the 1990s.

Introduction

Definition and Motivation

Non-uniform rational B-splines (NURBS) represent a class of mathematical curves and surfaces that extend the non-rational B-spline framework by incorporating rational weighting factors associated with control points, enabling precise modeling of both freeform and geometrically exact shapes. This rational generalization allows NURBS to unify the representation of polynomial curves and surfaces—such as those defined by B-splines—with rational ones, which are crucial for capturing projective geometries without approximation errors. The primary motivation for NURBS arises in computer-aided design (CAD) and geometric modeling, where non-rational B-splines fail to exactly represent conic sections like circles, ellipses, parabolas, and hyperbolas, often requiring higher-degree approximations that increase computational complexity. By introducing weights, NURBS achieve exact conic representations using quadratic forms, facilitating seamless integration of standard primitives (e.g., arcs and spheres) with complex freeform designs in a single framework, which enhances efficiency in industries like automotive and aerospace engineering. This capability ensures projective invariance, preserving shape under perspective transformations, a key advantage over polynomial alternatives. Fundamentally, NURBS are parametric entities: a curve maps a scalar parameter u \in [0, 1] to a point in \mathbb{R}^n, while a surface maps parameters (u, v) \in [0, 1] \times [0, 1] to a point in \mathbb{R}^3. The "non-uniform" aspect permits arbitrary knot spacing in the underlying B-spline basis, allowing flexible control over curve smoothness and localization, whereas the "rational" property leverages homogeneous coordinates via the weights to model ratios that define conics and other rational surfaces uniformly.

Historical Development

The origins of non-uniform rational B-splines (NURBS) lie in the foundational work on spline functions during the mid-20th century. In 1946, mathematician Isaac Jacob Schoenberg introduced uniform B-splines in his seminal paper on approximating equidistant data with analytic functions, establishing splines as a powerful tool for data smoothing and interpolation. This work provided the basis for piecewise polynomial representations with local control properties. Building on this, in the 1970s, Carl de Boor advanced spline theory through his development of algorithms for computing with non-uniform B-splines, including recursive evaluation methods that enabled flexible knot distributions for more precise curve fitting. De Boor's contributions, detailed in his 1972 paper and later in his 1978 book A Practical Guide to Splines, shifted focus from uniform to non-uniform knot vectors, allowing greater adaptability in geometric modeling. The rational extension of B-splines emerged in the context of computer-aided design (CAD) systems. In 1967, Steven Anson Coons pioneered the use of rational polynomials for representing conic sections via weighted control points. Separately, in the 1960s, French engineer Pierre Bézier developed parametric polynomial curves as part of the UNISURF system at Renault, enabling the design of freeform shapes essential for automobile body design. This approach laid groundwork for CAD, with rational extensions later addressing limitations of purely polynomial curves by incorporating weights for exact conic representations. The formalization of non-uniform rational B-splines occurred in 1975 with Kenneth J. Versprille's doctoral dissertation at Syracuse University, where he generalized B-splines to include non-uniform knots and rational weighting, coining the term NURBS and demonstrating their applications in interactive CAD. Standardization efforts in the 1980s propelled NURBS into widespread industrial use. Boeing proposed the inclusion of NURBS in the Initial Graphics Exchange Specification (IGES) in 1981, leading to its adoption in version 1.2 of the standard by 1983 to facilitate interoperability in aerospace and manufacturing CAD systems. This was followed by the International Organization for Standardization's STEP (ISO 10303) in the 1990s, which incorporated NURBS as a core geometric representation for product data exchange across the product lifecycle. By the mid-1990s, NURBS gained traction in commercial software; Autodesk licensed NURBS technology in 1990 for integration into AutoCAD, enhancing its surface modeling capabilities, while Robert McNeel & Associates developed Rhinoceros 3D in the early 1990s as a NURBS-based modeler, with its first release in 1998. Key figures in NURBS development include Versprille, along with Les Piegl and Wayne Tiller, whose collaborative efforts solidified the mathematical and practical framework. In 1995, Piegl and Tiller published The NURBS Book, a comprehensive reference that detailed the theory, algorithms, and implementations of NURBS curves and surfaces, becoming a standard text in geometric design with over 1,000 citations. In the 2000s and 2010s, NURBS evolved beyond traditional CAD through integration with advanced computational techniques. Researchers developed GPU-accelerated direct evaluation methods for NURBS rendering in 2007, enabling real-time visualization of complex surfaces without intermediate tessellation, as demonstrated in fragment shader-based implementations. Concurrently, the introduction of isogeometric analysis (IGA) in 2005 by Thomas J.R. Hughes and colleagues leveraged NURBS basis functions for finite element simulations, bridging CAD geometry directly with numerical analysis to improve accuracy in structural mechanics and fluid dynamics.

Core Components

Order and Degree

In non-uniform rational B-splines (NURBS), the degree p denotes the polynomial degree of the underlying basis functions, which directly governs the curve's or surface's smoothness and representational capabilities. For instance, a degree p = 1 yields linear segments, while p = 3 produces cubic polynomials commonly used for smooth interpolation in computer-aided design. This degree parameter ensures that the spline approximates polynomials up to order p exactly, enhancing its ability to model complex shapes with controlled flexibility. The order k of a NURBS is defined as k = p + 1, signifying the number of control points that locally influence the position of any point on the curve or surface. This local support property means that at any parameter value, precisely k consecutive basis functions are non-zero, limiting the impact of individual control points and promoting stability in shape manipulation. Higher degrees thus extend this support span, allowing greater approximation power—for example, quadratic NURBS (p = 2) can represent conic sections rationally—but also increase computational demands due to more complex polynomial evaluations. In practice, NURBS degrees range from 1 (linear, for simple polygonal approximations) to 5 (quintic, for high-fidelity surfaces in applications like automotive design), as higher values beyond this introduce diminishing returns in smoothness while escalating numerical instability and processing costs. A NURBS curve of degree p is conventionally parameterized with n+1 control points, where n scales with the desired resolution. The degree's role in determining local support interacts with knot vector multiplicity to modulate overall continuity, though the primary effect stems from p itself.

Control Points

Control points serve as the geometric anchors that define the overall shape of a non-uniform rational B-spline (NURBS) curve or surface. For a NURBS curve of degree p, there are n+1 control points \mathbf{P}_i (where i = 0, 1, \dots, n) positioned in \mathbb{R}^2, while for a surface, the control points \mathbf{P}_{i,j} lie in \mathbb{R}^3. Each control point is associated with a positive scalar weight w_i > 0 (or w_{i,j} > 0 for surfaces), which modulates the influence of that point on the resulting geometry. The role of control points is to form a control polygon (for curves) or control net (for surfaces), which the NURBS entity approximates without necessarily passing through all points. The curve lies within the convex hull of the control polygon, providing a bounded approximation that visually echoes the polygon's shape. Weights further refine this approximation: a weight of 1 yields non-rational B-spline behavior, while values greater than 1 pull the curve closer to the corresponding control point, and values between 0 and 1 push it away, enabling precise conic sections and other rational shapes. In homogeneous coordinates, each control point is represented as a weighted pair (\omega_i \mathbf{P}_i, \omega_i), where \omega_i = w_i, allowing the rational evaluation of NURBS in projective space before projection back to Euclidean space. This formulation is essential for maintaining the rational nature of the spline, supporting exact representations of circles, ellipses, and other quadrics that cannot be achieved with non-rational splines. Key properties of control points include endpoint interpolation and local control. With a clamped knot vector, the NURBS curve passes through the first and last control points, ensuring C(0) = \mathbf{P}_0 and C(1) = \mathbf{P}_n, and is tangent to the initial and terminal legs of the control polygon. Local control guarantees that altering a single control point or its weight affects only a local portion of the curve—specifically, up to p+1 consecutive knot spans—preserving the rest of the geometry and facilitating intuitive editing in design applications. The influence of this local support scales with the degree p, as higher degrees extend the affected region slightly.

Knot Vector

The knot vector in a non-uniform rational B-spline (NURBS) is defined as a non-decreasing sequence of parameter values U = \{ u_0, u_1, \dots, u_m \}, consisting of m+1 knots that typically span the interval [0, 1]. This sequence determines the parameterization of the curve or surface, influencing how control points contribute to the geometry across the parametric domain. The knots are real numbers satisfying u_0 \leq u_1 \leq \dots \leq u_m, allowing for repetitions that define multiplicity at specific parameter values. For most practical applications, the knot vector is clamped, or open, meaning the knots at the endpoints have multiplicity equal to the degree p plus one: u_0 = u_1 = \dots = u_p = 0 and u_{m-p} = \dots = u_m = 1. This clamping ensures that the NURBS curve interpolates the first and last control points, providing endpoint interpolation essential for bounded representations in computer-aided design. In contrast, periodic knot vectors lack this boundary multiplicity and feature uniform spacing throughout, enabling seamless closed curves or repeating patterns without fixed endpoints. The non-uniform aspect permits variable knot spacing, which facilitates adaptive refinement by concentrating knots in regions needing finer detail. The length of the knot vector is directly tied to the curve's degree and the number of control points: for a NURBS curve of degree p with n+1 control points, the number of knots is m+1 = n + p + 1. This relation ensures the basis functions span the appropriate support intervals. Knot multiplicity plays a critical role in controlling geometric continuity; at an interior knot with multiplicity k, the continuity is reduced to C^{p-k}, and a multiplicity of p+1 causes the curve to interpolate the corresponding control point, allowing for sharp corners or cusps. Meanwhile, the spacing between knots governs the parameterization speed, with denser clusters slowing the traversal and enabling localized shape adjustments.

Basis Functions

The basis functions of non-uniform rational B-splines (NURBS) are constructed recursively, extending the non-rational B-spline basis functions through the incorporation of weights associated with control points. The non-rational B-spline basis functions, denoted N_{i,p}(u), where i is the index, p is the degree, and u is the parameter, are defined using the Cox-de Boor recursion formula. For degree zero, N_{i,0}(u) = 1 if u \in [u_i, u_{i+1}) and $0 otherwise, where u_i are the knots from the knot vector. For higher degrees, the recursion is given by N_{i,p}(u) = \frac{u - u_i}{u_{i+p} - u_i} N_{i,p-1}(u) + \frac{u_{i+p+1} - u}{u_{i+p+1} - u_{i+1}} N_{i+1,p-1}(u), $$ with the convention that division by zero yields zero, ensuring numerical stability.[](https://academic.oup.com/imamat/article/10/2/134/687696) The rational basis functions $R_{i,p}(u)$ for NURBS are then formed by weighting the B-spline basis functions with control point weights $w_i > 0$, normalized by their sum: R_{i,p}(u) = \frac{w_i N_{i,p}(u)}{\sum_{j=0}^n w_j N_{j,p}(u)}, where the denominator is the weighted sum over all relevant basis functions, and the sum is taken over the indices $j$ for which $N_{j,p}(u) \neq 0$. This rational form allows NURBS to represent conic sections and other rational curves exactly, unlike non-rational B-splines.[](https://surface.syr.edu/eecs_etd/262/) The rational basis functions inherit key properties from their B-spline counterparts, adapted by the weights. They satisfy the partition of unity property, $\sum_i R_{i,p}(u) = 1$ for $u$ in the valid domain, ensuring that the resulting curve or surface lies within the convex hull of the control points. Non-negativity holds as $R_{i,p}(u) \geq 0$ for all $i$, $p$, and $u$, provided all weights are positive, which preserves the convex hull property. Additionally, each $R_{i,p}(u)$ has local support, being non-zero only over at most $p+1$ consecutive knot intervals, specifically the interval $[u_i, u_{i+p+1})$, enabling local modifications without global recomputation.[](https://www.cs.montana.edu/courses/spring2009/525/dslectures/NURBS.pdf)[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) In practice, the knot vector is often normalized so that the parameter $u$ spans the interval $[0, 1]$, achieved by linearly scaling the knots: if the original knots range from $\alpha$ to $\beta$, the normalized knots are $u_i' = (u_i - \alpha)/(\beta - \alpha)$. This standardization facilitates consistent evaluation across implementations. For degenerate cases, such as zero weights ($w_i = 0$), the corresponding rational basis function $R_{i,p}(u) = 0$, effectively excluding that control point from influencing the curve without disrupting the partition of unity, though care must be taken to avoid division by zero in the denominator by ensuring at least one positive weight in the local support.[](https://www.cs.montana.edu/courses/spring2009/525/dslectures/NURBS.pdf)[](https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/NURBS/NURBS-property.html) ## Formulation ### NURBS Curve Equation Non-uniform rational B-spline (NURBS) curves generalize non-uniform B-splines by incorporating rational weights on control points, enabling precise representation of conic sections and projective transformations in computer-aided design.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The parametric equation for a NURBS curve of degree $p$ is given by \mathbf{C}(u) = \frac{\sum_{i=0}^{n} N_{i,p}(u) w_i \mathbf{P}i}{\sum{i=0}^{n} N_{i,p}(u) w_i}, where $\mathbf{P}_i$ are the control points, $w_i > 0$ are the associated weights, and $N_{i,p}(u)$ are the B-spline basis functions of degree $p$.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) This rational form arises from a projective representation, dehomogenized by dividing the weighted sum in the numerator by the denominator to obtain points in Euclidean space.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The curve is defined over the parameter domain $u \in [0,1]$, with a knot vector $\mathbf{U} = \{u_0, \dots, u_r\}$ of length $r = n + p + 1$ (yielding $n + p + 2$ knots), allowing non-uniform spacing to influence curvature variation.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) Equivalently, the curve can be expressed using rational basis functions $R_i^p(u) = \frac{N_{i,p}(u) w_i}{\sum_{i=0}^{n} N_{i,p}(u) w_i}$, such that $\mathbf{C}(u) = \sum_{i=0}^{n} R_i^p(u) \mathbf{P}_i$.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The degree $p$ determines the polynomial order, with the curve inheriting continuity properties from the B-spline basis.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) ### NURBS Surface Equation Non-uniform rational B-spline (NURBS) surfaces extend the univariate NURBS curve formulation to two dimensions through a tensor-product construction, enabling the representation of complex free-form surfaces in computer-aided design.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The parametric equation for a NURBS surface of degrees $p$ in the $u$-direction and $q$ in the $v$-direction is given by \mathbf{S}(u,v) = \frac{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) N_{j,q}(v) w_{i,j} \mathbf{P}{i,j}}{\sum{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) N_{j,q}(v) w_{i,j}}, where $\mathbf{P}_{i,j}$ are the control points forming a bidirectional control net, $w_{i,j}$ are the associated positive weights, and $N_{i,p}(u)$ and $N_{j,q}(v)$ are the normalized B-spline basis functions of degrees $p$ and $q$, respectively.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) This equation arises from the projective rational form, dehomogenized by dividing the weighted numerator by the denominator to yield points in Euclidean space.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The surface is defined over the parameter domain $u \in [0,1]$ and $v \in [0,1]$, with independent knot vectors $\mathbf{U} = \{u_0, \dots, u_r\}$ of length $r = n + p + 1$ for the $u$-direction and $\mathbf{V} = \{v_0, \dots, v_s\}$ of length $s = m + q + 1$ for the $v$-direction, allowing non-uniform spacing to control surface behavior.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) Equivalently, the surface can be expressed using bivariate rational basis functions $R_{i,j}^{p,q}(u,v) = \frac{N_{i,p}(u) N_{j,q}(v) w_{i,j}}{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) N_{j,q}(v) w_{i,j}}$, such that $\mathbf{S}(u,v) = \sum_{i=0}^{n} \sum_{j=0}^{m} R_{i,j}^{p,q}(u,v) \mathbf{P}_{i,j}$.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) The degrees $p$ and $q$ determine the polynomial order in each parametric direction, with the surface inheriting the continuity properties of the underlying B-spline bases.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) Special cases include ruled surfaces, obtained when $q=1$, reducing the surface to a linear interpolation (ruling) between two NURBS curves of degree $p$ sharing the same knot vector $\mathbf{U}$.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) For boundaries or holes, NURBS surfaces often require trimming, where portions outside 2D trimming curves in the parameter space are removed to define the visible region, though exact intersection algorithms remain computationally challenging.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) ## Properties ### Continuity and Smoothness NURBS curves and surfaces exhibit continuity determined by the degree $p$ and the multiplicities of the knots in the knot vector. At an interior knot with multiplicity $\mu$, the curve (or surface along that direction) is $C^{p - \mu}$ continuous, where $C^k$ denotes k-times differentiability. For simple knots ($\mu = 1$), the maximum continuity $C^{p-1}$ is achieved, providing smooth interpolation. Higher multiplicities reduce continuity, down to $C^0$ (positional continuity only) when $\mu = p$, enabling sharp corners or creases while maintaining local control. This property, inherited from B-splines but preserved under the rational weighting, allows designers to balance smoothness and geometric flexibility in free-form modeling.[](https://link.springer.com/book/9783540615453) ### Curvature and Derivatives The first and second derivatives of a NURBS curve are essential for analyzing its local geometric properties, such as tangency and bending behavior in design applications. A NURBS curve of degree $p$ is defined as $\mathbf{C}(u) = \sum_{i=0}^n R_{i,p}(u) \mathbf{P}_i$, where $R_{i,p}(u) = \frac{N_{i,p}(u) w_i}{\sum_{j=0}^n N_{j,p}(u) w_j}$ are the rational basis functions, $\mathbf{P}_i$ are control points, $w_i$ are weights, and $N_{i,p}(u)$ are B-spline basis functions. To compute derivatives, the rational form is expressed using the quotient rule: let $\mathbf{A}(u) = \sum_{i=0}^n N_{i,p}(u) w_i \mathbf{P}_i$ and $W(u) = \sum_{i=0}^n N_{i,p}(u) w_i$, so $\mathbf{C}(u) = \mathbf{A}(u) / W(u)$. The first derivative is then $\mathbf{C}'(u) = \frac{\mathbf{A}'(u) W(u) - \mathbf{A}(u) W'(u)}{W(u)^2}$, where $\mathbf{A}'(u) = \sum_{i=0}^n N'_{i,p}(u) w_i \mathbf{P}_i$ and $W'(u) = \sum_{i=0}^n N'_{i,p}(u) w_i$. The derivatives of the B-spline basis functions follow from differentiating the Cox-de Boor recursion formula: $N'_{i,p}(u) = p \left( \frac{N_{i,p-1}(u)}{u_{i+p} - u_i} - \frac{N_{i+1,p-1}(u)}{u_{i+p+1} - u_{i+1}} \right)$, with $N'_{i,0}(u) = 0$. The second derivative $\mathbf{C}''(u)$ is obtained by differentiating $\mathbf{C}'(u)$ again using the quotient rule, yielding $\mathbf{C}''(u) = \frac{\mathbf{A}''(u) W(u)^2 - 2 \mathbf{A}'(u) W(u) W'(u) + 2 \mathbf{A}(u) [W'(u)]^2 - \mathbf{A}(u) W(u) W''(u)}{W(u)^3}$, where $\mathbf{A}''(u)$ and $W''(u)$ are the second derivatives of $\mathbf{A}(u)$ and $W(u)$, computed recursively from the first derivatives of the basis functions. These expressions generalize the hodograph form for non-rational B-splines and provide a basis for tangent and curvature computations, though direct evaluation can be inefficient for high degrees due to repeated basis function recursions.[](https://www.sciencedirect.com/science/article/pii/B9780124605107500239)[](https://link.springer.com/book/9783540615453) Curvature $\kappa(u)$ for a space curve NURBS is given by the standard formula $\kappa(u) = \frac{\|\mathbf{C}'(u) \times \mathbf{C}''(u)\|}{\|\mathbf{C}'(u)\|^3}$, which quantifies the instantaneous rate of change of the tangent direction and is crucial for assessing fairness and smoothness in CAD models. For planar curves, it simplifies to $\kappa(u) = \frac{|\mathbf{C}'(u) \times \mathbf{C}''(u)|}{\|\mathbf{C}'(u)\|^3}$, where the cross product magnitude is a scalar. The rational weights in NURBS significantly influence curvature by enabling exact representations of conic sections, such as circles and ellipses, which exhibit specific curvature behaviors like constancy for circles ($\kappa = 1/r$) that non-rational splines cannot achieve precisely. This weighting allows curvature continuity to be maintained or adjusted at joins, provided the underlying B-spline supports sufficient parametric continuity, enhancing design flexibility for surfaces with varying bend radii. In geometric analysis, the Frenet-Serret frame provides tools for studying NURBS curves: the unit tangent $\mathbf{T}(u) = \mathbf{C}'(u) / \|\mathbf{C}'(u)\|$, principal normal $\mathbf{N}(u) = \mathbf{T}'(u) / \|\mathbf{T}'(u)\|$ (with $\kappa(u) = \|\mathbf{T}'(u)\| / \|\mathbf{C}'(u)\|$), binormal $\mathbf{B}(u) = \mathbf{T}(u) \times \mathbf{N}(u)$, and torsion $\tau(u) = -\mathbf{B}(u) \cdot \mathbf{N}'(u) / \|\mathbf{C}'(u)\|$, which together describe the curve's twisting in 3D space. However, computing higher derivatives for high-degree NURBS (e.g., $p > 5$) poses numerical stability challenges, as recursive basis evaluations amplify floating-point errors, often requiring specialized stable algorithms like those based on derivative expressions or de Casteljau-style evaluations to mitigate ill-conditioning.[](https://www.sciencedirect.com/science/article/pii/B9780124605107500239)[](https://help.autodesk.com/view/MAXDEV/2025/ENU/?guid=nurbs_curve_continuity) ## Manipulation Techniques ### Degree Elevation Degree elevation is a process that increases the polynomial degree of a NURBS curve or surface while preserving the exact same geometry. This is achieved by modifying the control points and knot vector to represent the curve in a higher-degree form, which can be useful for ensuring compatibility with other higher-degree entities or for numerical stability in computations.[](https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline.html) The algorithm for degree elevation of a B-spline curve of degree $p$ to degree $p+1$ involves computing new control points $\mathbf{Q}_i$ using the formula: \mathbf{Q}i = \alpha_i \mathbf{P}i + (1 - \alpha_i) \mathbf{P}{i-1}, \quad \alpha_i = \frac{u{i+p} - u_i}{u_{i+p+1} - u_{i}}, where $\mathbf{P}_i$ are the original control points, $u$ is the knot vector, and this is applied iteratively for multiple elevations. For NURBS, the weights are elevated similarly. This operation does not change the curve shape but increases the number of control points by one per elevation step.[](https://www.cs.utexas.edu/~huangqx/cagd2005_degree.pdf) ### Knot Insertion Knot insertion refines a NURBS curve or surface by adding knots to the knot vector without altering the geometry, allowing for localized refinement to increase resolution in specific regions. This is a fundamental operation for editing and approximation in CAGD. The most common algorithms are Boehm's algorithm and the Oslo algorithm.[](https://ntrs.nasa.gov/api/citations/19950022332/downloads/19950022332.pdf) In Boehm's algorithm, inserting a knot $\bar{u}$ into a span $[u_i, u_{i+1}]$ updates the control points by blending the affected points: \mathbf{Q}k = (1 - \alpha_k) \mathbf{P}{k-1} + \alpha_k \mathbf{P}k, \quad \alpha_k = \frac{\bar{u} - u_k}{u{k+p} - u_k}, for the affected indices, preserving the exact curve. Multiple knots can be inserted using repeated application or efficient multi-knot variants. For NURBS, weights are updated analogously. This ensures local support, affecting only $p+1$ control points.[](https://www.sciencedirect.com/science/article/abs/pii/0167839685900172) ### Knot Removal Knot removal is the inverse operation to knot insertion in NURBS representations, enabling the elimination of knots from the knot vector while exactly preserving the original geometry if the knot is removable. This process reduces the number of control points and knots, which is essential for efficient storage, transmission, and manipulation of NURBS data in computer-aided design applications.[](https://doi.org/10.1016/0010-4485(92)90012-Y) The algorithm for removing a specific knot $u_i$, as described by Tiller, involves computing new control points that exactly reproduce the originals by reversing the insertion process, typically through solving for the unaffected points via blending coefficients. A knot is considered removable if its removal does not change the curve geometry, often checked by ensuring the multiplicity does not exceed the degree, and verifying that the control points satisfy the exact representation conditions. Algorithms efficiently remove all such removable knots in a single pass, with error analysis to confirm numerical stability.[](https://doi.org/10.1016/0010-4485(92)90012-Y) In practice, knot removal is performed to simplify representations where redundant knots exist, such as after degree elevation or initial fitting. For cases requiring further reduction beyond exact removability, approximate methods using tolerances can be employed to minimize geometric deviation, though these introduce controlled errors. The duality with knot insertion allows for reversible editing workflows, where inserted knots can be removed exactly if no modifications occurred in between.[](https://doi.org/10.1016/0010-4485(92)90012-Y) ## Examples and Applications ### Representing Conic Sections Non-uniform rational B-splines (NURBS) provide an exact mathematical representation of conic sections, including circles, ellipses, parabolas, and hyperbolas, which is a significant advantage over non-rational polynomial B-splines that can only approximate these shapes. This capability arises from the rational formulation, where varying weights on control points allow the curve to model projective geometries precisely.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) A standard example is the unit circle centered at the origin, represented as a degree-2 NURBS curve using nine control points arranged symmetrically. The control points are $ P_0 = (1, 0) $, $ P_1 = (1, 1) $, $ P_2 = (0, 1) $, $ P_3 = (-1, 1) $, $ P_4 = (-1, 0) $, $ P_5 = (-1, -1) $, $ P_6 = (0, -1) $, $ P_7 = (1, -1) $, and $ P_8 = (1, 0) $, with corresponding weights $ w_0 = 1 $, $ w_1 = w_3 = w_5 = w_7 = \frac{1}{\sqrt{2}} $, and $ w_2 = w_4 = w_6 = w_8 = 1 $. The knot vector is $ U = \{0, 0, 0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1, 1, 1\} $, ensuring $ C^1 $ continuity at the quarter-circle junctions. This configuration traces the full circle exactly over the parameter interval $[0, 1]$, with constant curvature of 1, unlike cubic polynomial approximations that introduce deviations.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf)[](https://www.cs.montana.edu/paxton/classes/aui/dslectures/NURBS.pdf) For a single quarter-circle arc from $(1, 0)$ to $(0, 1)$, a rational quadratic Bézier segment (a special case of NURBS with knot vector $\{0, 0, 0, 1, 1, 1\}$) uses control points $ P_0 = (1, 0) $, $ P_1 = (1, 1) $, $ P_2 = (0, 1) $, and weights $ w_0 = 1 $, $ w_1 = \frac{1}{\sqrt{2}} $, $ w_2 = 1 $. The full circle is then constructed by rotating and joining four such arcs, with the interior weights and knot multiplicities maintaining smoothness. This exact closure ensures no gaps or overlaps at endpoints.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) General conic sections are represented similarly using degree-2 rational curves, where the shape is controlled by the weights and control polygon geometry. Ellipses are obtained by applying affine transformations to the unit circle representation, preserving the exactness. Parabolas and hyperbolas require specific weight ratios relative to the control points, such as weights that model the eccentricity, allowing precise depiction without approximation errors inherent in polynomial forms.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) ### Role in Computer-Aided Design Non-uniform rational B-splines (NURBS) serve as the foundational representation for geometric modeling in numerous computer-aided design (CAD) systems, enabling precise definition of complex curves and surfaces. Major software packages such as SolidWorks and CATIA rely on NURBS as the core format for storing and manipulating 3D models, with additional support in tools like Blender, allowing for high-fidelity representations that integrate seamlessly into design workflows.[](https://help.solidworks.com/2021/english/SolidWorks/sldworks/c_IGES_surface_representation.htm)[](https://www.3ds.com/store/cad/nurbs-modeling)[](https://docs.blender.org/manual/en/latest/modeling/surfaces/structure.html) This ubiquity stems from NURBS' ability to provide exact mathematical descriptions, particularly for conic sections like circles and ellipses, which minimizes approximation errors compared to polygonal or piecewise linear methods and ensures compatibility with manufacturing tolerances.[](https://ieeexplore.ieee.org/document/544074)[](https://help.autodesk.com/view/MAYAUL/2026/ENU/?guid=GUID-5EC05798-3F28-4AD2-8154-36BC444A4DC9) A key advantage of NURBS in CAD is their local control property, where modifications to individual control points or weights affect only a limited portion of the curve or surface, facilitating intuitive and targeted editing without global disruptions.[](https://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) This locality supports efficient design iterations, as seen in techniques like knot insertion for refining local geometry during model adjustments. Additionally, NURBS exhibit scalability, extending from simple curves to intricate solid models through operations such as trimming, union, and lofting, which enable the construction of watertight assemblies suitable for engineering analysis.[](https://ashlar.com/articles/what-are-nurbs-and-why-are-they-important.html)[](https://www.sciencedirect.com/science/article/abs/pii/S0736584510000165) Beyond core design, NURBS extend to diverse applications in animation, manufacturing, and simulation. In animation software like Autodesk Maya, NURBS curves and surfaces are employed for rigging controls and deformable models, providing smooth deformations during character animation.[](https://help.autodesk.com/view/MAYAUL/2026/ENU/?guid=GUID-5EC05798-3F28-4AD2-8154-36BC444A4DC9) In manufacturing, NURBS generate precise tool paths for computer numerical control (CNC) machining, interpolating surfaces to achieve constant feed rates and high surface quality on curved parts.[](https://www.sciencedirect.com/science/article/abs/pii/S0890695503001548) For simulation, NURBS facilitate finite element meshing in isogeometric analysis, preserving exact geometry from CAD models to reduce discretization errors in structural and fluid dynamics computations. Despite these strengths, NURBS encounter limitations with high-degree representations, where numerical instability arises from polynomial oscillations and conditioning issues in evaluation algorithms, potentially leading to inaccuracies in complex models.[](https://www.sciencedirect.com/science/article/abs/pii/S0010448512000772) Such instabilities are often mitigated through subdivision techniques that convert NURBS to finer approximations. In the 2020s, this has driven evolution toward alternatives like subdivision surfaces and T-splines for enhanced efficiency in handling arbitrary topologies and local refinements, as exemplified by Pixar's OpenSubdiv library, which integrates into modern CAD and animation pipelines to complement or replace traditional NURBS in high-detail scenarios.[](https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html)[](https://novedge.com/blogs/design-news/design-software-history-continuity-in-freeform-cad-why-nurbs-patchcraft-gave-way-to-subdivision-and-t-splines) NURBS interoperability across systems is bolstered by standards like STEP (ISO 10303) and IGES, which encode NURBS curves and surfaces for lossless data exchange between disparate CAD environments, ensuring design intent preservation in collaborative engineering projects.[](https://doc.plasticity.xyz/cad-essentials/nurbs-overview)[](https://www.laserdesign.com/4-easy-steps-to-nurbs-surface-modeling-in-geomagic-design-x/)

References

  1. [1]
    Non-Uniform Rational B-Splines - an overview | ScienceDirect Topics
    Non-Uniform Rational B-Splines (NURBS), a rational generalization of B-splines, have superseded B-splines in computer-aided geometric design.
  2. [2]
    [PDF] NURBS: Non-Uniform Rational B-Splines CS 525 ©Denbigh Starkey
    NURBS (or sometimes NURBs)1 are non-uniform rational curves, which means that they have rational weights associated with each control point.Missing: mathematics | Show results with:mathematics
  3. [3]
    Rational B-splines 1 Introduction
    On a final historical note, rational bicubics were first considered by S. Coons [12]; rational B-splines first appear in K. Vesprille's thesis [43]. The rest ...
  4. [4]
    The NURBS Book | SpringerLink
    Bibliographic Information. Book Title: The NURBS Book. Authors: Les Piegl, Wayne Tiller. Series Title: Monographs in Visual Communication. DOI: https://doi.org ...
  5. [5]
    [PDF] From conics to NURBS: A tutorial and survey - UNC Computer Science
    There are (at least) two motivations for the use of rational. Bezier curves: They are projectively invariant, and they allow us to represent conics-namely, in ...
  6. [6]
    On calculating with B-splines - ScienceDirect.com
    An identity for spline functions and its application to variation diminishing spline approximations.Missing: non- | Show results with:non-
  7. [7]
    [PDF] An Introduction to Bezier Curves, B-Splines, and Tensor Product ...
    May 30, 2008 · In general, a B-spline can be rational or non-rational, depending on the use of homogeneous coordinates. Let Ck,n(u) denote a uniform ...<|separator|>
  8. [8]
    "Computer-Aided Design Applications of the Rational B-Spline ...
    Versprille, Kenneth James, "Computer-Aided Design Applications of the Rational B-Spline Approximation Form" (1975). Electrical Engineering and Computer Science ...Missing: NURBS | Show results with:NURBS
  9. [9]
    NURBS and CAD: 30 Years Together - isicad
    Dec 30, 2011 · Inventing NURBS. The first work mentioning NURBS was a dissertation of Ken Versprille, a post-graduate student at Syracuse University, New ...
  10. [10]
    Autodesk and AutoCAD - History of CAD - Shapr3D
    Mar 27, 2023 · The company signed several other licenses in 1990 for advanced technology including NURBS surface geometry from Applied Geometry Corporation ...
  11. [11]
  12. [12]
    [PDF] B-SPLINE CURVES
    Order 3 (k = 3, degree 2). Order 2 (k = 2, degree 1). Page 113. KNOT VECTOR-BASED APPROACH. Examples of B-spline basis functions. Curve and Surface Design ...<|control11|><|separator|>
  13. [13]
    Maya User's Guide: Degree of NURBS curves and surfaces - Autodesk
    A curve degree of 3 is sufficient for almost any modeling task. You may want to use degree 5 or 7 curves if you are producing 3D surfaces for subsequent export ...Missing: practical | Show results with:practical
  14. [14]
    [PDF] On NURBS: a survey - IEEE Computer Graphics and Applications
    4 Following Riesenfeld,. Versprille extended B-splines to rational B-splines. His work in 1975 was the first written account of NURBS.' By the late 1970s. the ...Missing: thesis | Show results with:thesis
  15. [15]
    [PDF] NURBS: Non-Uniform Rational B-Splines
    NURBS (or sometimes NURBs)1 are non-uniform rational curves, which means that they have rational weights associated with each control point.
  16. [16]
    NURBS: Definition
    This is the NURBS curve of degree p defined by control points P0, P1, ..., Pn, knot vector U = { u0, u1, ..., um }, and weights w0, w1, .., wn. Note that since ...
  17. [17]
  18. [18]
    Numerical Evaluation of B-Splines - Oxford Academic
    Abstract. The conventional method of evaluating B-splines by means of divided differences is numerically unstable. A relation between B-splines of consecut.
  19. [19]
    NURBS: Important Properties
    NURBS is a generalization of B-spline, it should have all properties of B-splines. The following are some of the most important ones for NURBS basis functions.
  20. [20]
    Evaluation and Properties of the Derivative of a NURBS Curve
    Evaluation and Properties of the Derivative of a NURBS Curve Michael S. Floater Abstract. In this paper we describe two natural ways to express the first ...
  21. [21]
    3ds Max 2025 Developer Help | NURBS Curve Continuity | Autodesk
    Higher-degree curves are also less stable numerically, so using them isn't recommended. Different segments of a NURBS curve can have different levels of ...
  22. [22]
  23. [23]
    Surface Representation - 2021 - SOLIDWORKS Help
    Surface Representation ; NURBS, 144, 142, 128, 126, 110, 102, 100 ; ALIAS, 144, 142, 128, 126, 122, 120, 110, 102, 100 ; ANSYS, 144, 142, 128, 126, 110, 102, 100.
  24. [24]
    Sophisticated NURBS Software Solutions - CAD - Dassault Systèmes
    The rather strange acronym NURBS stands for Non-Uniform Rational B-Splines Modeling. The Non-Uniform part denotes that NURBS can be used to create freeform ...
  25. [25]
    Surface Structure - Blender 4.5 LTS Manual
    NURBS surfaces have two axes (U and V), control points in rows and a grid. Control points have weights that influence the surface. You cannot add single ...
  26. [26]
  27. [27]
    Maya Help | NURBS overview - Autodesk product documentation
    Rational refers to the underlying mathematical representation. This property allows NURBS to represent exact conics (such as parabolic curves, circles, and ...
  28. [28]
    What are NURBS and Why are They Important - Ashlar-Vellum
    Second, NURB splines provide localized control of a complex curve. This lets you isolate an area and make changes without affecting the rest of the spline ...Missing: local | Show results with:local
  29. [29]
    Tool-path generation of planar NURBS curves - ScienceDirect.com
    In essence, NURBS interpolation typically results in shorter cycle times, smaller programs, more accurate parts and better profile finishes. Besides look-ahead ...
  30. [30]
    A real-time NURBS surface interpolator for precision three-axis CNC ...
    The real-time NURBS surface interpolator generates cutter location commands for NURBS surfaces, maintaining constant cutter contact velocity for improved  ...
  31. [31]
    G1 continuous approximate curves on NURBS surfaces
    The degree of exact curves is considerably high, which results in computationally demanding evaluations and introduces numerical instability in practice.
  32. [32]
    Subdivision Surfaces - Pixar Graphics Technologies
    Subdivision surfaces are piecewise parametric surfaces defined over meshes of arbitrary topology, combining mesh flexibility with smooth surfaces.
  33. [33]
  34. [34]
    NURBS Overview - Plasticity Manual
    The degree of a NURBS curve or surface determines how smooth or complex its shape is, and it's based on a mathematical formula (a polynomial). This degree is ...
  35. [35]
    4 Easy Steps to NURBS Surface Modeling in Geomagic Design X
    Mar 23, 2021 · Many native CAD users would find it beneficial because a NURBS model can be exported as a universal file such as STEP, IGES and Parasolid.