You are on page 1of 8

Watertight Trimmed NURBS

Thomas W. Sederberg∗ Xin Li† Hongwei Lin§ Heather Ipson
G. Thomas Finnigan‡ University of Science and Zhejiang University Brigham Young University
Brigham Young University Technology of China

Abstract
This paper addresses the long-standing problem of the unavoidable
gaps that arise when expressing the intersection of two NURBS sur-
faces using conventional trimmed-NURBS representation. The so-
lution converts each trimmed NURBS into an untrimmed T-Spline,
and then merges the untrimmed T-Splines into a single, watertight
model. The solution enables watertight fillets of NURBS models,
as well as arbitrary feature curves that do not have to follow iso- (a) Spout translated away from (b) Body and spout trimmed using
parameter curves. The resulting T-Spline representation can be ex- body; intersection curve in white. trimming curves.
ported without error as a collection of NURBS surfaces.

CR Categories: I.3.5 [Computer Graphics]: Computational
geometry and object modeling—Curve, surface, solid, and object
representations

Keywords: Surface intersection, Booleans, NURBS, T-Splines

1 Introduction (c) Trimmed body and spout trans- (d) Blowup of green rectangle in
The trimmed-NURBS modeling paradigm suffers from a serious lated back into original orientation (c), showing gap
fundamental flaw: parametric trimming curves are mathematically Figure 1: Trimmed-NURBS Representation of the Utah Teapot.
incapable of fulfilling their primary role, which is to represent the
curve of intersection between two NURBS surfaces. Consequently,
trimmed-NURBS models are not mathematically watertight, as il-
lustrated in Figure 1 in which trimming curves are used to express
the intersection between the body and spout of the Utah teapot
model. We use the term “watertight” to connote no unwanted gaps
or holes. That is, the surface is a gap-free 2-manifold in the neigh-
borhood of intersection curves.
This paper presents a two-step algorithm for representing the
Boolean combination of two NURBS objects as a single watertight (a) Body and spout converted to (b) Body and spout merged into a
T-Spline. In the first step, each trimmed NURBS is converted into a untrimmed T-Splines single gap-free T-Spline.
T-Spline without trimming curves, as illustrated in Figure 2.a. In the
second step, each pair of untrimmed T-Splines is merged along their
intersection curve into a gap-free T-Spline model, as illustrated in
Figure 2.b. The resulting model, shown in Figure 2.c is C 2 , except
at the C 0 crease along the intersection curve. This T-Spline model
facilitates the creation of watertight fillets. The model in Figure 2.d
contains a C 2 gap-free fillet between the body and spout.
Section 2 reviews the history and significance of the problem this
paper addresses, and reviews prior literature. Section 3 presents an (c) Gap-free T-Spline model (d) Gap-free C 2 fillet.
algorithm for converting a trimmed-NURBS into an untrimmed T- Figure 2: Gap-free Teapot.
Spline. Section 4 explains how to merge two NURBS or T-Spline
surfaces with mis-matched parametrizations. Section 5 details how
∗ tom@byu.edu ‡ tomfinnigan@gmail.com
the algorithms presented in Sections 3 and 4 work together to create
† xinliustc@gmail.com § hwlin@cad.zju.edu.cn
watertight trimmed-NURBS models, and examines the approxima-
tion error. This section also discusses the creation of gap-free, C 2
fillets and the placement of feature lines on a T-Spline surface that
are not aligned with iso-parameter curves. Section 6 summarizes.

2 Background
The fact that gaps are unavoidable in conventional trimmed-
NURBS mathematical models can be shown as follows. A trim-
ming curve is typically a degree-three NURBS curve defined in the
parameter domain of a NURBS surface. The image of such a trim-
ming curve on a bicubic patch (i.e., the curve on the bicubic patch in

and many capabilities of painstaking process has been reported to require several days for a subdivision surfaces involve special refinement rules. a polygon whose edges surfaces. Since thermore. produce huge approximation errors. a generic intersection curve of two bicubic perturbation to an arbitrarily small magnitude and narrow neigh- surfaces is degree 324 in R3 [Sederberg et al. Each method produces a set of piece. Unfortunately. stress and strain. [Litke et al. thus permitting the true intersection curve to serve as the can only be approximated by parametric trimming curves. and a solution to the fillet wise C 0 (but approximately C 1 ) B´ezier patches. 2001] describes a tween NURBS representations by different CAD. 2001]. Our method is more amenable to creating fillets than [Song et al. the infinite number of patches is more diffi- researchers and CAD industry leaders [Farouki 1999]. which keeps track of which surfaces intersect. This exist. Inter- none address the problem adequately. 2004] and [Farouki et al. on demand. in- tion of a system of linear equations that under some conditions can cluding fillets. At a workshop of academic surfaces [Stam 1998]. although extension to other types of subdivision surfaces is possi. of a unified geometric framework. subdi- large 3D model such as an airplane [Farouki 1999] and was once vision surfaces are limit surfaces. it loses its character as a smooth surface trimming curves to within a prescribed tolerance. Furthermore. The ad- fined using a single T-Spline control grid. such as in [Krish- and operations such as offsetting become impossible. whereas we use conventional parametric trimming curves. fixing and healing 3D models and surfaces. so the surface remains C 2 vantage of the fillet solution presented in this paper is that it is part if the control points are moved. and there is tremendous such as volume. creating a non-tessellated.R3 that the trimming curve maps to) is degree ≤ 18 and algebraic borhood of each trimming curve. Moreton 2001]. Points in the domain that correspond to NURBS control points an untrimmed subdivision surface such that each trimming curve on are highlighted in red. This approach complicates subsequent tasks such as offset- curves. However. The surface intersection problem has been very thoroughly re- cations for which a tessellation of the surfaces suffices. especially of gaps in trimmed-NURBS models was singled out as the single when doing data file exchange. Fur- will not work properly if the model contains unresolved gaps. most pressing unresolved problem in the field of CAD. but tion curves. which de. gaps can searched. the method has not been adopted by the CAD industry. with no current industry standard. This section presents a method for converting a bicubic NURBS ble. and the growth of an entire software industry metic. lie on the base surfaces. For example. [Litke et al. scribe the algorithm using the example in Figure 3. This has resulted in incompatibilities be- on such a representation. the surfaces become approximates fillets of free-form surfaces as NURBS surfaces that discontinuous.. intersection curves space. One approach used in commercial CAD software to manage the NURBS gap problem is to use a procedural definition of intersec- Prior Art Several solutions to the gap problem have been put forward. which is an implicit (not parametric) equation of the form ting or filleting that require an explicit representation of the inter- f (s. whereas our algorithm is based on tensor-product NURBS Step 1. The grid lines are knot lines for the NURBS sur- scribes a process of converting a trimmed subdivision surface into face. We de- necessarily for CAD. the surface Spline with no trimming curve. 2004] and [Farouki et al. it is possible to ar- 1996] presents a solution to the surface intersection problem based rive at different results. Hence. 2001] uses trimming curves that lie in world genus 433 [Katz and Sederberg 1988]. 2004] requires the solu. Software for analyzing physical properties vested in NURBS software and models. In the case of two intersecting bicubic patches. The approximation error can be remains G2 if the control grid is edited. although if patches problem that provides Gn continuity. CAM. See [Song intersecting NURBS surfaces. 1984] and algebraic borhood. In appli. but are capable of confining the genus zero. faces. Billions of dollars have been in- tems [Kasik et al. tersection algorithm that can represent an intersection curve using duced to a C 0 tessellation. and Wang 2007] for a list of references. 3 Trimmed-NURBS to Untrimmed T-Splines [Kristjansson et al. can be represented as a single watertight T-Spline. once a NURBS model has been re.a diagrams the trimming curve C in the parameter domain of the A pertinent prior art to Section 3 is [Litke et al. CAM and CAE sys. Figure 4. The goal of [Kristjansson made arbitrarily small. involving infinite sequences of estimated to cost the US automotive industry over $600 million an.e. nan and Manocha 1997]. Our technique produces a watertight C 2 surface de. incompatibility with NURBS. Such capability is now standard in most [Song et al. with approximate G1 continuity. exact arithmetic can be very expensive and around translating. Most commercial software adjacent to an intersection curve are edited. patches. and the perturbation can be confined to an et al. the existence cult to deal with than a finite number of NURBS patches. the trimmed surface becomes a boundary curve on the untrimmed Trimmed-NURBS to Untrimmed T-Splines Conversion surface. A sampling of the vast literature can be found in [Pa- easily be filled with a triangle strip or avoided altogether by careful trikalakis and Maekawa 2002. watertight approximation of two or more The topic of fillets has likewise been widely researched. heat transfer. humans often need to intervene to close the gaps. manufacturing and analysis software does not toler. and CAE solid modeling system based on this approach. but not arbitrarily narrow neighborhood of the trimming curve. 2005]. or lift-to-drag ratio economic pressure against abandoning the NURBS paradigm. An entire geometric model. Also. The algorithms coordination while tessellating adjoining trimmed surfaces [Kumar described in this paper assume the existence of a robust surface in- 1996. 2001] produces a G2 watertight subdivi. [Krishnan and Manocha intersection is used by two different programs. However. Song et al. 2001] takes as input Loop subdivision surfaces. 2001] uses an enhanced Loop surface (triangle based). are parallel to one of the two parameter directions) that en- . 2001] is an efficient algorithm suitable for animation. t) = 0. [Song et al. sections can then be approximated. surface with trimming curve into an approximately equivalent T- sion surface defined by a multi-resolution control grid. The existence of these gaps in trimmed NURBS models seems in- nocuous and easy to address. to any desired tol- oretical standpoint is to use the precise representation for trimming erance. numerous versions of subdivision surfaces ate gaps. if a procedural definition of the same is a polynomial of bi-degree 54 × 54. 2004]. 2004]. [Kristjansson et al. f (s. trimming curve. which can only approximate true intersection curves. software applications. NURBS surface. Both algorithms must perturb the surface in the neigh. but in fact it is one of the most serious A key disadvantage of subdivision surfaces for use in CAD is their impediments to interoperability between CAD. Form an axis-aligned polygon A (i. 2004] describe methods for commercial geometric modeling programs. NURBS do have some advantages over subdivision sur- 3D modeling. t) section curve. The best solution from a the. using exact arith. Although there are efficient ways to evaluate subdivision nually in lost productivity [NIS 1999]. and [Krishnan et al.

the magnitude red or blue rectangle into four axis-aligned rectangles and reclas- of which in this example is 0. using an algorithm such as in [Wang et al. The positions of one-neigborhood of cells adjacent to R intersect C in more those control points are chosen to minimize the orthogonal than one connect component. These zeros create a B´ezier end condi- tion for this boundary curve. we can make the pertur. and of A. (The insertion operation adds two additional control points to the left of the black corner. which we might call a rasterization of the component. small by finding an axis-aligned polygon that approximates C to within a tolerance . the axis-aligned Likewise. bation region on the exterior of the polygon arbitrarily narrow by For each component. as shown in Figure 4. Step 2. illustrated by the example in Figure 6. 2006].001 times the width of the model. but the curve that approximates the image of C. The sify each of those four new rectangles. (a) Trimming curve. an acceptable axis-aligned polygon. valence three control point in the modified control grid. (b) Axis-Aligned polygon A (blue). Clearly. as illustrated in Figure 5. there are countless such axis-aligned Extraordinary Points polygons. [Sederberg et al. Leave all red control points in Figure 4. tion. Begin by assigning a color to each rectangle bounded by knot lines in the parameter domain. Figure 3: Trimmed-NURBS to Untrimmed T-Splines Conversion. each component of C will be covered by a contiguous set yellow. We now present one such algorithm.d. we can modify The algorithm. This converts the . In Figure 6. Repeat these splitting and domain of the perturbed region lies within the support the green and reclassification operations until all cells are either white or gray.d in their initial loca. 2003] suggests dealing with extraordinary points gons. each extraordinary point created in Step 3. as illustrated in Figure 4. Figure 5. Assign a knot interval of zero to all edges of the control grid Figure 4: Algorithm for Converting a Trimmed-NURBS into an that connect a blue control point to a green control point. shown in Figure 5. Note that each convex corner in A introduces a (c) Control points inserted at vertices (d) Topology modification. each concave corner in A creates a valence five control point. the po. Blue C does intersect R and the width or height of C is > .1 Finding an Axis-Aligned Polygon takes into account knot intervals.b. A good choice for α ming curve C and a tolerance  as follows: is the average of all parameter distances between the vertices on A and the trimming curve. in T-Spline surfaces using the method presented in [Sederberg et al. For a fixed axis-aligned polygon. has the flavor Step 2 in Algorithm 1 to include doing T-Spline refinements to of a curve rasterization in which the pixels are cells of a quadtree. (a) Trimmed NURBS. using the above classification. White C does not intersect R. force all knot intervals to be identical in the 2-neighborhood of Related applications of quadtrees are reported in [Hunter and Stei.a illustrates the perturbation region in this point. Remove the portion of the control mesh that lies on the inte- rior of A and replace it with the mesh topology illustrated in Figure 4.c.b. Step 4. the control point insertions will occur at the five red points lying on the black line in Fig- ure 4. The blue control points in Figure 4. closes the trimming curve. (b) Untrimmed T-Spline. which is a generalization of Catmull-Clark refinement that 3. Assign a small knot interval α glitz 1979. one connect component. Likewise. the width and height of C are < . and the sitions of the green control points are chosen to minimize the one-neigborhood of cells adjacent to R intersect C in exactly orthogonal distance between the T-Spline surface and the in. perform a T-Spline control point insertion as described in [Sederberg et al. At blue control points. We begin by defining a color-based clas- to all edges connecting the outer layer of green control points sification system for a rectangular domain R with respect to a trim- to the inner layer of green control point.b. as Untrimmed T-Spline. and two beneath it. Split each This procedure introduces some perturbation error. distance between the NURBS curve and the image of C. and numerous possible algorithms for finding such poly. 2004]. Samet 1984]. The resulting T-Spline and its control grid are shown in Figure 3.a. of gray cells. we can make the distance between A and C arbitrarily polygon is highlighted in blue.) Step 3. For our purposes. Gray C does intersect R. In this example.d define a NURBS Red C does intersect R. terior of the trimmed NURBS surface.f. the width and height of C are < .d. At each vertex of A that does not lie on a red point. the perimeter of its rasterization will serve as performing a local T-Spline refinement. 1998].

One possible solution is to extend to surfaces the curve-fitting algo- rithm in [Wang et al. the perturbation error is 0. (This might patches. However. gorithm offers a tradeoff between accuracy and number of control 2003].b must honor a restriction that is placed on the knot in- Figure 7 shows an example involving two loops and a sharp corner. as shown in Figure 8.b. However. 2003] is to insert knots such that the two surfaces have 2000] for patching valence n extraordinary points using G1 bicubic the same set of knot intervals. are G1 . We begin by obtaining a set of sample points on the re. Figure 9. (a) Trimmed NURBS. face). an artist or designer can opt for fewer control points. (e) Fourth iteration. and indeed it can take several tens of seconds to obtain good results if the initial positions of the green control points are not chosen wisely. tervals in a T-Spline: the sum of knot intervals on one edge of a In this case. A is Splines using the method in Section 3. Catmull-Clark refinement in which faces of the control grid map ify an initial position for the green control points. How- a problem calling for future research. The first step in the merge algorithm in [Seder- uniform knots. Figure 9 shows a hand and arm modeled as separate NURBS. c # # ! ! 0 0 0 0 0 0! b 0 0!" " (a) Perturbation domain (yellow). those two T-Splines into a single. as shown in Figure 8. Better results could be obtained by. with one patch per face of the control grid. then solve for the green control of patches violates a key objective of this paper. we refine the two An improved algorithm for computing the green control points is surfaces so that their knot lines align. (f) Fifth iteration. A basic algo- rithm for merging two T-Splines is presented in [Sederberg et al. also require that all knot intervals on one surface be scaled so that the extraordinary region can be filled using G2 patches using a their sum matches the sum of the knot intervals on the other sur- method such as in [Loop 2004]. The al- of merging them using the algorithm described in [Sederberg et al. γ < c. making possible the use of methods such as [Peters berg et al. Figure 8. modify the resulting T-Spline. It is known that this algorithm converges only lin- early [Bjorck 1996]. like extraordinary process is then repeated: Assign each sample point a parameter points in a Catmull-Clark surface. most pairs of untrimmed T-Splines generated points. that algorithm gives poor results if the two sur- faces to be merged do not have consistent parametrizations. the resulting knot interval configuration violates the definition ures. as shown in Figure 8. The final step is to connect the two control grids. The algorithm has also been observed to converge to a local min. 2003]. something the authors of that paper are working on. Figure 5: Limiting the Perturbation Domain. Another line of research is to study whether the quasi- interpolation methods used in [Litke et al. of a T-Spline. If the goal is to trim away some holes but then to continue to using the method in Section 3 have this problem. The resulting larger approximation error should be The problem is related to the fact that the refinements shown in acceptable since the surface will undergo additional modification. Unfortunately. Choose β < b. Spline is fully editable. The infinite sequence pair on the untrimmed T-Spline. (c) Second iteration. 4 Merging using NU-NURBS After two intersecting surfaces are converted into untrimmed T- (d) Third iteration. gap-free T-Spline. ever. vals [Sederberg et al. points that minimize the least squares error based on these parame- ter assignments. we chose a traditional method that appeared simplest to im. imparting a kink in the resulting surface. meaning that its control points can be ad- whose parametrizations do not align. For exam- An important property of this procedure is that the resulting T- ple. (c) Untrimmed T-Spline. Previous methods for dealing with such knot inter- plement. The following to an infinite sequence of bicubic patches which.b. the isoparameter curves will experience an Discussion abrupt bend. if the adjoining boundary curves are not parametrized similarly. instead of refining each surface as in Figure 8.c. the opposing edge in the face. Figure 7: Trimmed NURBS to Untrimmed T-Spline Conversion.00025 relative to the width face on the control grid must equal the sum of knot intervals on of the patch. Alternatively. 2006] devise variations on gion of the trimmed surface that will be perturbed and then spec. M¨uller et al. ment.b shows the result justed and all the properties of a C 2 spline are honored. (b) Decreasing the perturbation do- main through T-Spline local refine. To create our example fig. (b) First iteration. 2001] can be adapted to T-Splines. (b) Untrimmed T-Spline. Figure 6: Algorithm for Finding Bounding Polygons. as il- extraordinary points into conventional Catmull-Clark style with lustrated in Figure 8. which is to be ex- .d. 1998. (a) Initial classification. 2006]. the final step is to merge Highlighted in Blue.

(a) Arm and hand showing mismatched knot intervals. e5 . and is the iso-parameter curve for t = τ .8 2 2 2 1. . d˜7 } where d˜−2 = 0. . i = −2.b. e1 e1 d1 d5 P11 P61 P11 P61 To address this problem. 1 1 1 3 2 3 3 . we note that it is straightforward to convert between the two representations.a in which the dij can be any non-negative number. . e˜6 }. patch per face of the control grid. and that yields one tensor-product NURBS Surface. t) = Pi (t)Bi (s) where Pi (t) = Pij Bj (t) (1) (a) Knot intervals for NU-NURBS. the resulting family of iso-parameter curves sweeps out the B-Spline surface. Then the knot vector for the B-spline curves Pi (t) is {˜e−2 . ^ d2 d3 d4 d^2 d 3 d^4 1 d1 e e4 e4 d d^1 e e4 e4 d^ 13 12 3 P15 4 e 45 P65 P15 4 ^ e 45 P65 1 d 2 e 3 d 3 e 3d 4 d 5e 4 d^2 e 3 d 3 e 3d^4 d^ e 4 e4 e4 ^ 5 d1 e3 e3 d1 e3 e3 2 2 2 d3 d3 d2 e2 e2 d4 d2 2 e e2 d4 2 e3 e d e3 e3 e d e3 2 2 d1 2 d e2 5 d1 2 d e2 5 d2 e1 3 e1 d4 d2 e1 3 e1 d4 1 1 1 e2 e1 d5 e e2 e1 d5 e 3 2 d1 d2 d3 d4 e1 2 d1 d2 d3 d4 e1 2 3 1 e1 d1 d5 e1 d1 d5 e1 e1 P11 P61 P11 P61 (a) Initial knot intervals. which in turn control the basis functions Bi (s) in (2). Since the knot intervals change and hence are not “uniform. (b) After refinement. d˜i+1 = d˜i + di . or NU-NURBS (spoken “new NURBS”). rameter curves. 2003]. that is C 2 . Since most readers will be more familiar with B-Splines defined using knot vectors rather than with knot intervals. NURBS control grid. P(s) Figure 8: Merging Two NURBS Surfaces. P(s). P15 P65 P15 d1 d5 P 65 e4 e4 matched parametrization. . . We now modify that description of a B-Spline surface to permit a knot interval arrangement as in Figure 12. i = −2. Define e˜−2 = 0. (a) “Moving control points” Pi (t). . 6 (b) Merge using the algorithm in [Sederberg et al. e˜−1 . If we let τ vary. P(s). e3 e3 P3(t) P4(t) P3(t) P4(t) P2(t) P5(t) P2(t) P5(t) e2 P1(t) P6(t) e2 P1(t) d2 d3 d4 P6(t) portable using a finite number of tensor-product patches.3 along B-Spline curves. The basic idea is to treat the knot intervals themselves as cubic spline functions. d˜−1 . . m X P(s) = Pi (τ )Bi (s) (2) i=1 defines a cubic B-Spline curve that lies on the bicubic B-Spline sur- face. (Model cour. 1 3 1 2 3 . (b) Iso-parameter curves. product B-Spline surfaces that supports the knot interval configura- Figure 11: Constructing a Family of Isoparameter Curves on a tion in Figure 10. .” we will refer to this surface as a non. as illustrated in Figure 11.4 1. d 25 d 35 d 45 d 15 e e4 e4 d (c) Merge using NU-NURBS.8 3 Figure 10: Knot Interval Configurations. . i=1 j=1 Figure 12: NU-NURBS. . d 14 e 3 e3 P(s) d 33 d1(t) d5(t) tesy of Zygote Media Group) d 23 e 2 d e 2 43 e3 e d e3 d 13 2 d e 2 53 P3(t) P4(t) The idea is based on the fact that a tensor-product B-Spline surface d 22 e 1 32 e 1 d 42 P2(t) P5(t) e2 e1 d 52e can be viewed as a family of iso-parameter curves: d 12 d d 31 d 41 e 1 2 P1(t) P6(t) e 1 d 11 21 d 51 e1 P11 P61 P11 P61 m X n X P(s. . the knot vector for each of the isoparameter curves in Figure 11. and e6 are not shown in the figure). e˜i+1 = e˜i +ei .b shows four such iso-parameter curves for var- ious values of τ . . (b) Iso-parameter curve. . (a) Knot intervals in a bicubic (b) Knot intervals in a merge region. For a fixed value of t = τ . we introduce a generalization of tensor.7 1 d2 d3 d4 (c) Control grids with mis.2 The Pi (t) can be viewed as “moving control points” that slide 2 2 2 .a.2 .(d) Refinement to align isopa. 5 (e−1 . Figure 11. . .b is {d˜−2 . Likewise. . P15 4 e 455 P65 P15 P65 d 24 e 3 d 34 e 3d 44 d d3(t) e4 54 d2(t) d4(t) Figure 9: Merging NURBS Hand and Arm Models.6 . . 1 1 . uniform NURBS surface. e0 .

a is about one tenth of one percent of the width of the teapot. with one patch per face of the control grid. 2. the error in Fig- shows how fillets are supported in this representation.. Er- = 1.0009 Perturbation Error Figure 13 shows the trimmed teapot body being converted into Fillets untrimmed T-Splines with different degrees of precision. k = 0. 3. 4. Error (b) 224 Control points.Figure 12. the perturbation magnitude and extant can be held Feature lines in NURBS models must follow iso-parameter curves. This a C 2 NURBS model based on the original C 1 B´ezier model. This paper assumes that C1 . to within a prescribed tolerance.25. and algorithms for computing the in- tersection of two NURBS surfaces P1 and P2 are standard in most geometric modeling programs. . Since the knot interval functions are C 2 splines in t.b. . The Figure 16.2 × 10−4 Error = 7.25. di2 .  = .  = .a. spout. along with ure 13. and that the geometric and topological accuracy of these curves is deemed ac- ceptable.(d) 495 Control points. . Relative Error = 0. This section examines the behavior of the algorithms presented in Sections 3 and 4 when they combine to represent two intersecting The perturbation errors reported in the captions in Figure 13 are trimmed-NURBS surfaces as a single watertight T-Spline. The only difference is that in the NURBS case in Figure 11. C2 .5 × 10−4 1. rectly supported in existing commercial software. ]. the body is defined using 90 control points. The NU-NURBS is thus defined as a family of iso-parameter curves. e˜6 }. e˜−1 . Feature Lines By adjusting . These variations are being recorded in a separate paper [Sederberg et al. patches. Max error = (b) Error for  = . Er. Hence. and one that is C 2 in t and G2 in s with patches that are degree 4×9. We have also devised a version of NU-NURBS that permits arbitrary non-negative knot intervals in both parameter directions. below a specified tolerance. the degree of those patches can be rather high. As reviewed in Section 2. T-Splines allow for sharp features along portions of iso-parameter . This NU-NURBS is C 2 in s. the only differ- ence lies in evaluating the knot interval spline functions di (t). These algorithms can compute trim- ming curves C1 and C2 in the parameter domains of P1 and P2 . it can be ex. This figure shows how the perturbation domain decreases as  decreases. (a) Error for  = 1.5 × 10−3 ror = 5. di6 and the knot vector for the spline func- tion is {˜ e−2 . Figure 15: Trimless T-Spline Cylinders. Although this surface formulation is new and hence not di. di1 . .2 × 10−4. If the value of k is changed to a small positive value. It specializes to NURBS in the case where the knot interval configuration is identical to that in Figure 10.  = 1. Unfortu- nately.b. ror = 2. the NU-NURBS is also C 2 in t.a shows the knot intervals adjacent to the intersection NURBS model of the teapot used throughout this paper is actually curve.b shows an iso-parameter curve on a NU-NURBS sur- face. This NU-NURBS formulation has the following properties: (a) 108 Control points. lower-degree versions of NU-NURBS. including a version that is C 2 in t and G1 in s with patches that are degree 3×6. the C 0 crease along the intersection curve Figure 14 shows the error distribution in both the body and the is changed into a C 2 fillet whose radius increases with k. to be C 0 along the intersection curve. the problem of computing intersection curves is very well-studied. and C have been computed using an existing algorithm. Immediately after the merge is completed. The cost of evaluating this NU-NURBS is comparable to the cost of evaluating a bicubic NURBS surface. Dark Blue Denotes Zero Error.125. arbitrary feature lines. Max error = 1.5 × 10−3 2. all that produce one patch per face.  = . The “moving control points” Pi (t) in this figure are identical to those used in the description of NURBS surfaces in Figure 11.5 × 10−5 actly represented—and exported—as a set of rational B´ezier Figure 13: Approximation Error for the Teapot Body. In our creates a triple knot at the intersection curve and forces the T-Spline NURBS model. We have devised other. along with an approximation C of the intersection curve in R3 . 5 Examples Figure 14: Error Plots.5. . . . the knot intervals di are constants whereas for NU-NURBS. the di (t) are spline functions. di5 .. The coefficients of spline function di (t) are di0 . It also relative to a teapot that is one unit wide. (c) 338 Control points. since each iso-parameter curve P(s) is a cubic spline curve whose knot intervals are constant for a fixed value of t.

1 to create a small (a) Control grid. We illustrate the procedure using the model of a NURBS car hood The paper only addresses non-singular intersection curves. It is (a) Control grid. Details of how to handle three or more intersecting surfaces are not presented and in- vite further study. also not clear how the error might propagate upon repeated such Figure 18: NURBS Car Hood. The case where an untrimmed T-Spline that represents two intersecting surfaces is later intersected by a third NURBS or T-Spline is more challenging because it can involve the intersec- tion of NU-NURBS or of faces next to extraordinary points. fillet. these tools introduce new design workflows into the styling and CAD in- dustries. and Figure 19. drawn as a parametric curve in parameter space of the surface. a case not curves [Sederberg et al. the problem we view as are performed. The geometric models thus created Nicholas North and Adam Helps provided invaluable assistance are watertight. The models are editable in that control points can be adjusted and the surface will remain C 2 . (b) With control grid. tion error. The perturbations can be limited to an arbitrarily narrow model. resulting T-Spline more difficult to edit. allowing NURBS modelers to continue to style their mod- els even after Booleans have been performed. an augmentation of the definition of T-Splines to support differ- Figure 17: Filleted CSG Object as an Untrimmed T-Spline. What is the relationship between . The This paper invites future research on several fronts. and hence procedures have been devised for placing a fillet or feature curve in an arbitrary di- Our process for merging two trimmed NURBS surfaces into an rection on a subdivision surface [DeRose et al. based on a deformation. Subdivision surfaces don’t have a handled well in [Sederberg et al. intersections.b shows the resulting surface. desired feature lines. . 1998]. and normal-vector error? What is the convergence rate? The paper focuses on two intersecting surfaces. k = 0. A general- untrimmed T-Spline involves a perturbation of the original sur- purpose tool for placing arbitrary feature lines on any geometric faces. Section 3 dis- curve is then processed as discussed in Section 3: An axis-aligned cusses possible lines of research for finding an efficient algorithm bounding polygon is found. These results can help to streamline the CAD modeling–analysis pipeline. making them compatible with CAD industry standards. and topological and fitting operations for computing the green control points. In addition. making the 1998]. much like a trimming curve except that the curve need not be closed. The existing algorithms should extend readily to handle most cases where all intersections are to be computed simul- taneously. ent knot intervals on opposite sides of the same control polygon face. 6 Discussion The modeling tools presented in this paper extend the capabilities of 7 Acknowledgements T-Splines to express Booleans. and can be exported without translation error as a finite collection of NURBS patches. The resulting control points can then be moved to most pressing. This enables the merging of two NURBS or T-Splines sur- faces whose mating curves are parametrized differently. Figure 16: Fillet. after they have been adjusted to create the of further study. Figure 19: T-Spline Car Hood with Detail. and arbitrary feature curves in a single unified framework. using intent is to ultimately edit the resulting T-Spline.(a) Knot intervals following merge. positional error. The paper also presents an enhanced merging capability involving (a) Untrimmed T-Spline. (b) Surface. a high initial tol- the algorithms presented in Sections 3 and 4. Also called for is a rigorous analysis of approxima- create the desired feature. 2003]. strong notion of iso-parameter curves. Figure 19.a shows the control points that result from treatment of intersection curves that self-intersect is another topic the process in Section 3. C 2 (or C 1 or C 0 if multiple knots are specified). fillets. is described in [Singh and Fiume strip. although if the designer’s To create an arbitrary a feature curve on a NURBS surface. Tighter tolerances demand more control points. the feature curve is erance may not be as crucial. (b) Surface. Full in Figure 18. Initially. (b) Setting k = 0. 2003]. with implementation and figures.

H. A NDERSON . D. 74–106. F INNIGAN . Annual Conference Series. In Eurographics / ACM SIGGRAPH Symposium on Geom- etry Processing. National Institute of Standards and B JORCK .. 2004. Non-uniform recursive subdivision surfaces. N... 2. 3 nurbs primitives.. Z HENG . P OTTMANN . AND S CHR ODER . J.. Intersection D E ROSE .. 72–84. T. Q... 1996. Eds. A. tures. FAROUKI . tions 25. W. puter Graphics Proceedings. L OOP. K RISHNAN . Subdivision problems.). P. J. 2004. FAROUKI . AND F INNIGAN . T. In Proceedings of SIGGRAPH 1998. 101–122. R. Ap... 214–238. T. 255–258. L I . X. 187–260.). Interactive rendering of parametric spline sur. D. 1998. 2004. M ORETON . J. T. 165–174. AND F ERGUSON . T. AND S ABIN . G OPI . 2000. Computer Graphics Proceedings. W. J. 5. Computer Graphics Proceedings. C. D. surfaces at arbitrary parameter values. S EDERBERG . 105–144. 253–258. Generating g n parametric blend- 2001.References 1999.. ACM. Closing the gap between CAD model and S EDERBERG .. New York. 2003.. Kim. 2 (Apr.. mization. ACM Transactions on Graphics 25. based on triangular patches.. Operations on images puter Vision. D. D. PhD thesis. 5.. Trimming for WANG . T. 268–292. T. A. Fitting B-spline subdivision surfaces. H AN . S TAM . gration of CAD and CFD. T. T. Wires: A geometric defor- intersection algorithm based on lower-dimensional formulation. IEEE Transactions on Pattern Analysis and Machine Intelligence 1. G. using quad trees. S ONG . Non- downstream application (report on the SIAM Workshop on Inte. 2006. S. Computer Graphics Proceed- CAD model challenges. H ASS .. 463–481. Topologically consistent trimmed surface approximations nual Conference Series. 2005. 3 (July). H. 649. 1–3.. K. AND WANG . T. AND S EDERBERG . of CSG’96. Computer Graphics Proceedings.. Hoschek. D. mation technique. K RISHNAN . N ORTH . E. 185–194. 953–963.. IEEE Computer Graphics and Applica. Computer Aided Geometric Design S AMET. The quadtree and related hierarchical data struc- 21. Patching Catmull-Clark meshes. Annual Confer- Hill. Numerical Methods for Least Squares Prob. Genus of the inter.. S. Extended subdivision surfaces: Building a bridge between NURBS and Catmull-Clark surfaces. Farin. 395–404. T. R. 2001. (August). ¨ M ULLER . N. L.. ings. PATRIKALAKIS . 2 (April). AND LYCHE . International Journal on Computa. 5 curves to point clouds by curvature-based squared distance mini- (June). of ACM SIGGRAPH 2000. Z HENG . R EUSCHE .). 2007. W. S.. 1999. USA.. B UXTON . S. K ATZ . A. 145–153. In Proc.. M. AND Z ORIN . 81–92. M. J. L EVIN . Computer Aided Geometric Design 18. T.. A. sections. 1979. 1984. 1998. J. 85–94. Fiume. An- 2004. ACM Transactions on Graphics 23. 1996. BAKENOV. A. R. S EDERBERG . Z HENG . D. AND L IU .-S. T. D.. Planning Report: Interoperability Cost Analysis of the US Automotive Supply Chain.. R. ics Proceedings. logically consistent representations of free-form surface inter- ings of ACM SIGGRAPH 2001. Ten Proceedings of SIGGRAPH 1998. In Preparation. AND M ANOCHA . In Proceedings of SIGGRAPH North-Holland. Y. K. 477–484. The University of North Carolina at Chapel GRAPH 1998.. Com- H UNTER .. Linear perturbation methods for topo- proximate Boolean operations on free-form solids. 623– 1998. Computer Graph. 11. ACM Computing Surveys 16. Annual Conference Series. Efficient representa. 387–394. AND F IUME . In HWWS ’01: Proceedings of the ACM SIG- GRAPH/EUROGRAPHICS workshop on Graphics hardware... lems. X. SIAM. S ONG . K RISHNAN . 1999). In Handbook of Computer Aided Geometric Design. . R. In Proceedings FAROUKI . 2. Geometric Design 5. G. P ETERS . 303–319. W. 1998. AND S TEIGLITZ . T. N. T-Splines and T-NURCCs. J. J. ¨ L ITKE . 2 (Apr. Watertight tessellation using forward differencing. W. S EDERBERG . L.. 1988. D. 1.. S... H. D. NY. J. K. AND M AEKAWA .. AND H ASS . L. AND S EDERBERG . Computer Aided ics 22. Y. 405– 414. K ASS . UC Davis. ACM Transactions on Graph- section curve of two rational surface patches. T. W. SIAM News 32. 1 (Jan. E... Com- ACM Transactions on Graphics 16. Boole: A boundary evaluation system for Boolean combi. ing surfaces based on partial reparameterization of base surfaces. 1997. AND F ELLNER .. M ANOCHA . 2001. S. 2001. Im- plicit representation of parametric curves and surfaces.. Graphics and Image Processing 28. H. Computer Aided Geometric Design 21. ries. and M. In Proceedings of SIG- faces. Aided Des. uniform NURBS. J.. 1984. G. AND G OLDMAN . T-spline simplifica- tions and techniques for computing b-rep’s of csg models with tion and local refinement. W. Second order smoothness over extraordinary ver- tices. Z HENG . S EDERBERG . April 12–13. M. S EDERBERG . AND NASRI . H. M. Exact evaluation of Catmull-Clark subdivision K UMAR . J. 25–32. Annual Conference Series. J. In K ASIK . 459–478. Technology. T. 2002. In Proceed. G. Annual Conference Se. AND M ANOCHA . AND K EYSER . tional Geometry and Applications 11.. 2006. W. AND T RUONG . An efficient surface S INGH . 1998.. D. nations of sculptured solids. ence Series. S EWELL .. D. 1996. L IN . B IERMANN . Comput. 39. C. C ARDON . T. W. K RISTJANSSON . M. 3... Ed. ACM Transactions on Graphics 25. surfaces in character animation.