Authored by:

Alyn Rockwood

CTO

FreeDesign Inc., Longmont, Colo.

Edited by Leslie Gordon

A main goal of CAD pioneers Bezier, de Casteljau, and Coons was to give engineers ways of easily generating shapes from curves with a computer. This made sense because design often involves conceptualizing shape in terms of curves, and shapes are but well-behaved surfaces that fill the voids between curves. The mathematicians invented widely used methods such as Bezier and B-spline curves and surface patches.

Today, Bezier curves are familiar to users of any vector drawing program. The most common such curves are fully defined by four points -- two end points and two control points. The latter are attached to the end points by tangent vectors. Dragging the control points thus defines the shape of the curve. B-splines, in turn, are a more generalized form of Bezier curves. Basically, line segments are pieced together to make curves, and patches are pieced together to make surfaces. Four decades of research and development then led to current modeling technology based on non-uniform rational B-spline (Nurbs) curves and surfaces. A detailed description of Nurbs technology is helpful here.

**Nurbs technology**

Nurbs curves can represent anything from straight lines, to parabolas, to almost any complex organic curve, depending on the number of terms the polynomial equation has that represents the curve. Recall from high-school algebra that the equation of a line is a first-degree polynomial that looks like y=ax+b. The equation of a parabola, on the other hand, has the form y=ax<+>2<+>+bx+ c, while the equation of what's called a cubic spline is y=ax<+>3<+>+bx<+>2<+>+cx+ d. The greater the number of terms in an equation, the more complex the curve.

Information stored in the data structure of a Nurbs curve or surface comprises points, weights, and parameters that make up a Nurbs control net, a grid of straight lines that define the shape of a curve but doesn't touch it. Points are vertices of the control net, and weights determine the amount of surface deflection toward a control point. Bezier and Nurbs surfaces can be thought of as sweeps of curves. A good way to understand this is to hold a flexible wire between your hands and imagine the surface generated as you twist and turn the cable through space.

Nurbs is widely used because B-splines are a polynomial form for which continuity between surface patches is simple to ensure. Continuity is basically the degree of smoothness between patches. Nurbs technology lets control points exert variable influence on surfaces. What are called rational B-splines are defined by a ratio of polynomials. The main purpose of this form is to define conics and quadrics exactly. Spheres and cylinders are examples.

**A few problems with Nurbs**

Nurbs became the standard for surface modeling in the 1980s. Today, most surface modelers have some form of Nurbs input and output. Also, Nurbs is widely used in analysis, rendering, milling, and mold-flow simulation software, typically with files in the IGES format. However, the drive to make Nurbs the standard, although probably unavoidable, may have been premature. Nurbs can actually impose burdens on designers. For example, trimming surface patches is often necessary. Most modeler developers tout trimming as a positive attribute because it works with the Boolean operations of unite and intersect. Yet trimming should be regarded as a band-aid fix that creates a more complex data structure and thereby results in considerably more expensive computations.

Also, trimmed boundaries are almost impossible to join with tangency to other surfaces. For example, trimmed boundaries are typically used along kinks and sharp edges created by Boolean operations. Such boundaries are likely to have gaps and require special healing operations. Most engineers would probably be happy to dump trimming if there were an alternative to designing with Booleans

Another issue: the so-called tartan plaid requirement. Nurbs surfaces need opposing boundary curves to have the same number of control points, even when one side is simple and the other complex. Thus, parameter lines running across surfaces create tartan-plaid structures. A surface can behave unexpectedly when these lines diverge too much. And a junction requirement makes yet another problem. Every corner must have four surfaces meeting at it. When this doesn't happen, it is difficult to maintain higher-order continuity there. Some modelers include a melding technique that allows these so-called T-junctions by approximately cleaning up the problem with a post-fix operation. **Attempts at Nurbs fixes **

Several modelers have tried to address the various problems associated with Nurbs. For example, early piece-part modelers like Romulus from Shape Data used canonical surfaces such as spheres, cylinders, cones, and planes with Booleans and then blended them together. However, the program was far from a good shape modeler. Another program from Shape Data, Remus, worked by successively "chamfering" a polyhedral mesh until it became smooth. It generated B-spline surfaces except at what were called extraordinary points, which have a large number of patches converging around them. However, the large number of patches and lack of higher-order continuity at the extraordinary points doomed this approach for precision CAD applications. Perhaps the closest early attempt to a true curve-based modeler came from Designbase software. It used multisided Gregory patches and, therefore, allowed a freeform curve network. But the N-sided patches consisted of small rectangular Bezier patches that were blended at the boundaries and a center point. Patch distortions easily cropped up. However, fewer patches were required than with Nurbs.

**An alternative**Currently, shape modeling involves four basic approaches. Boolean, recursive, and patch-based methods are often used in combination with specific operations such as blending and filleting to enhance them. Until recently, the feature-curve method has seen only limited acceptance because of the difficulty in implementing it. As mentioned above, many designs involve conceptualizing shapes in terms of curves. The proverbial sketch on a napkin makes a good example. Probably the biggest problem to Nurbs modeling, then, is most designers don't think of just any set of curves. Rather, what's important are the feature curves of objects. These curves represent salient features such as boundaries, creases, and highlights. Nurbs models contain curves that have no design purpose -- they exist only to support patches.

Fortunately, recent research has produced a patent-pending N-Sided Surfaces (NSS) technology that supports the feature-curve method. FreeDimension (FD) software based on NSS targets conceptual and industrial design and is what's called technically a transfinite interpolation modeler. This means that surfaces interpolate to given curves rather than to points. NSS surface patches pass through any number of user-specified curves from 2 to N. A single curve may form a boundary with many patches. Curves are defined with points and so-called curve-handles, or tangent vectors in space. This is similar to Adobe Illustrator's method except curves are in 3D. Any number of curve handles may be used to define curves. Once users lay out curve networks, the software generates the surfaces, without the tedious process that Nurbs modelers use to divide the curves into four-sided patches. The software attempts to give the natural surfaces that curves define. But because this is always a subjective goal, some modification may be necessary. Tools are available to adjust surfaces without changing curves. One, called the surface ribbon, is a lofted surface that is ruled in one direction parameter and dictates the slope of the surface for greater or lesser fullness. The other tool, called the surface handle, is like a curve handle in that it is a tangent vector. However, a surface handle crosses the curve to determine the slope of the surface at the point of intersection. It influences the slope of the ribbon. The tool can be used, for instance, to design a crease that dissipates to a smooth transition along the hood and over the wheel well of a car object.