CS284 Computer Aided Geometric Design and Modeling Lecture Summary and Written Assignments 

Lecture
summary, miscellaneous notes, handouts, and links. Questions/comments to Chen. 

Week 1: Tuesday 31 Aug. 2004 
Introduction
Brief introduction to splines as an important tool in many fields. Splines are curves originally taken from drafting, where they were drawn with a spline tool consisting of metal weights connected to a flexible strip. This strip would form the spline curve used for ship design. History of splines from Laplace and probability theory in 1820, to Isaac Schoenberg and approximation theory in the 1940's. Then the beginning of applications of computation splines (not the wooden ones) to design around 1959 with Paul de Faget DeCasteljau at Citroën and Pierre E. Bézier at Renault (both in Paris). In 1960's in the United States, Steve Coons pushed the parametric and matrix representations for splines. In the early 1970's Carl De Boor and Maurice Cox (independently) worked out recurrence relations to evaluate splines efficiently and accurately, and Rich Riesenfeld (Syracuse) introduced them to computer graphics. In 1974 the first Computer Aided Geometric Design (CAGD) conference was held in Utah coining the term CAGD, and Ken Versprille (publ. 1975, Syracuse) developed NURBS at Syracuse. Reading: Bartels, Beatty, and Barsky: Chapters 12 

Week 1: Thursday 2 Sept. 2004 
Spline Basics and
Hermite Formulation Splines are vectorvalued piecewise continuous parametric and usually polynomial functions. We defined all these terms, and discussed some of the advantages of using a parametric representation: derivativevector always defined, curve can intersect itself. We also encountered one difficulty of parametric representations: multiple parametric representations can describe the same geometric curve. For instance, try to construct a parameterization for a line which is C^{0} continuous, but not C^{1} continuous. Hermite splines of degree 3 are piecewise parametric polynomial functions of degree three. Each curve segment interpolates both the location and a derivative of each endpoint. In particular, we derived a special form for Hermite curves using blending functions. Reading: Bartels, Beatty, and Barsky: Chapters 23 

Week 2: Tuesday 7 Sept. 2004 Tuesday 14 Sept. 2004 
Hermite Interpolation
More on Hermite interpolation and derivation of natural splines. Discussion of what was traditionally seen as a spline: interpolatory piecewise cubic polynomials with C^{2} continuity. Probably motivated by a simplification of the physical spline drafting tool discussed in the first lecture. Reading: Bartels, Beatty, and Barsky: Chapter 3 

Week 2: Thursday 9 Sept. 2004 Written Asn. 1 [.ps] [.pdf] Due Thursday 16 Sept. 2004 
Cubic Interpolatory Spline
More on interpolation. The natural spline was derived based on the conditions of cubic curve segments having C^{2} continuity and interpolating given points. These three conditions yield 4n2 equations in the 4n unkowns for interpolating n points. Therefore, we need two additional constraints. For the natural spline, these conditions contrain the second derivative at the endpoint to be 0. In the next lecture, we will explore other options. Reading: Bartels, Beatty, and Barsky: Chapter 3 Written Assignment 1 [.ps] [.pdf] is due next Thursday.


Week 3: Tuesday 14 Sept. 2004 
End Conditions,
Variational Principle More on the cubic interpolatory spline from the two handouts: End conditions and Variational Principle. Here is a figure to illustrate two of the examples from class. Question: Can you derive the EulerLagrange equation that the fourth derivative of the minimizing curve is zero? What if you assume the curve is polynomial? The firstorder piecewise linear Bspline was introduced.


Week 3: Thursday 16 Sept. 2004 
Deriving the Uniform
Cubic BSpline The uniform cubic Bspline can be derived from some basic assumptions: it is zero outside of four consecutive knot intervals, it is a piecewise cubic polynomial, it is C^{2} continuous across each parametric knot value, and the sections across each knot interval add to unity (this last fact yields the partition of unity and therefore translation invariance and the convex hull property). Reading: Bartels, Beatty, and Barsky: Chapter 4 

Week 4: Tuesday 21 Sept. 2004 
More on the Uniform
Cubic BSpline Rotation, scale, and translation invariance; curvature; double and triple vertices; and end conditions for uniform cubic Bsplines. Reading: Bartels, Beatty, and Barsky: Chapter 4 

Week 4: Thursday 23 Sept. 2004 
More on the Uniform Cubic
BSpline and Introducing the Surface Representation The tensor product surface representation was discussed. Reading: Bartels, Beatty, and Barsky: Chapter 4 

Week 5: Tuesday 28 Sept. 2004 
More on Surfaces;
Introduction to Bézier Curves More discussion of the tensor product surface representation. The Bernstein basis, Bézier curves and de Castlejau's algorithm for evaluating/subdividing Bézier curves. Some of the Bézier curve demos from Rockwood's CAGD software were shown. Reading: Bartels, Beatty, and Barsky: Chapters 4 and 10 

Week 5: Thursday 30 Sept. 2004 
More on Bézier;
Introduction to Splines in a More General Setting Continuation of discussion about Bézier curves, degree raising, more general Bézier subdivision. We watched more Bézier curve demos from Rockwood's CAGD software. Then we began the discussion of splines in a more general setting. Reading: Bartels, Beatty, and Barsky: Chapters 10 and 5 

Week 6: Tuesday 5 Oct. 2004 
Continuing on Splines in
a More General Setting Continuation of discussion of splines in a more general setting. We saw how knot multiplicity reduces the continuity at that knot value. Reading: Bartels, Beatty, and Barsky: Chapter 5 

Week 6: Thursday 7 Oct. 2004 
Continuing on Splines in
a More General Setting and Introducing the OneSided Basis Continuation of discussion of splines in a more general setting. Onesided power functions were introduced and the onesided basis was discussed. Each function is of the form f(x)=0 for x < a and f(x)=(xa)^{μ}+(xa)^{μ+1}+ ... +(xa)^{k} for x ≥ a. These functions have C^{kμ1} continuity at x=a, and summing them with different values of a and μ yields a function with discontinuities of varying degrees at the values of a. Note that μ is the continuity loss index. Reading: Bartels, Beatty, and Barsky: Chapters 5 and 6 

Week 7: Tuesday 12 Oct. 2004 
Continuing on the
OneSided Basis and Introducing Divided Differences Continuation of discussion of onesided power functions and the onesided basis, and introduction to divided differences. Reading: Bartels, Beatty, and Barsky: Chapters 6 and 7 

Week 7: Thursday 14 Oct. 2004 
General Bsplines General Bsplines. Linear, quadratic, and cubic Bsplines. Multiple knots. The effects on the curve of varying the knot spacing. Reading: Bartels, Beatty, and Barsky: Chapter 8 

Week 8: Tuesday 19 Oct. 2004 
Continuing General
Bsplines and the Cox de Boor Recurrence Relation More on General Bsplines and the visual effects of knot spacing and multiple knots. The Cox de Boor recurrence relation. Reading: Bartels, Beatty, and Barsky: Chapters 8 and 9 

Week 8: Thursday 21 Oct. 2004 
Midterm Exam Reading: Bartels, Beatty, and Barsky: Chapters 1 through 10 

Week 9: Tuesday 26 Oct. 2004 
Discussion of Midterm
Exam 

Week 9: Thursday 28 Oct. 2004 
More on the Cox de Boor
recurrence
relation and Introducing Subdivision The derivation of the Cox de Boor recurrence relation was completed. Subdivision, refinement, and knot insertion was introduced. The idea of subdivision is to add an extra control vertex (or control vertices) to a Bspline curve. This requires adding an extra knot to the knot sequence, adding a new control vertex, and then adjusting the surrounding control vertices so that the curve retains its original shape. Reading: Bartels, Beatty, and Barsky: Chapters 9 and 11 Student presentation: Jeff Hammel: Literature Review: Splines and the Numerical Solution of Vlasov Equation 

Week 10: Tuesday 2 Nov. 2004 
More on Subdivision and
Knot Insertion Subdivision is performed by increasing the number of vertices which is accomplished by inserting knots. For each new knot added, one new basis function is introduced. Many knots can be added simultaneously and multiple knots are allowed, as long as the integrity of the knot vector is maintained. Each original basis function can be expressed as a linear combination of the new set of basis functions; conversely, the new vertices can be expressed as a linear combination of the old vertices. The combination coefficients are discrete Bsplines , denoted by α_{i,k}(j). The specific combination coefficients that determine a new vertex, W_{j}, are the values of a set of discrete Bsplines α_{i,k}(j), all computed at the same knot value, w_{j}. Reading: Bartels, Beatty, and Barsky: Chapter 11 Student presentation: Bryan Klingner: Subdivision surfaces, general introduction, discussion of butterfly and CatmullClark techniques 

Week 10: Thursday 4 Nov. 2004 
Student presentation
Student presentation: Abhik Pramanik: Subdivision of Fluid Flow. 

Week 11: Tuesday 9 Nov. 2004 
More on Subdivision and
Knot Insertion and Introduction to the Oslo Algorithm The first Oslo algorithm is based on a recurrence for the discrete Bsplines, α_{i,k}(j), as a function of the orignal and refined knot vectors, (u_{i}) and (w_{j}), respectively. Given these knot vectors, the algorithm computes α_{i,k}(j). The algorithm allows inserting many knots simultaneously. Reading: Bartels, Beatty, and Barsky: Chapters 11 and 12 Student presentation: Yibin Tian: Unwrapping HartmannShack Images from Highly Aberrated Eyes Using an Iterative Bspline Based Extrapolation Method, by Linda Lundstrom & Peter Unsbo, Royal Institute of Technology (KTH), Sweden 

Week 11: Thursday 11 Nov. 2004 
Veterans' Day
(university holiday)


Week 12: Tuesday 16 Nov. 2004 
More on the Oslo
Algorithm The second Oslo algorithm is a control vertex recurrence that directly computes the new control vertices, W_{j}, given the original vertices, V_{i}. Like the first Oslo algorithm, this recurrence also uses the original and refined knot vectors, (u_{i}) and (w_{j}), respectively, as input. But in this version of the Oslo algorithm, the discrete Bsplines are not explicitly computed. Subdivision of tensor product surfaces inserts knot lines (i.e., u=constant or v=constant) rather than single knot values. Reading: Bartels, Beatty, and Barsky: Chapter 12 Student presentation: Derek Chan: Escherization and Ornamental Subdivisions Here is the paper written by Craig Kaplan. 

Week 12: Thursday 18 Nov. 2004 
Geometric Continuity and Introduction to Betasplines
First and second order parametric and geometric continuity; unit tanget and curvature vectors. Betasplines are built upon geometric continuity constraints. Reading: Bartels, Beatty, and Barsky: Chapters 13 and 14 Student presentation: Seung Kim: Boolean Operations on Surfaces 

Week 13: Tuesday 23 Nov. 2004 
Real Time Surface
Tesselation Dr. Adrian Sfarti will be the guest lecturer. Presentation: Direct Real Time Tessellation (PDF 374K) Reference: New 3D Graphics Rendering Engine Architecture for Direct Tessellation of Spline Surfaces (PDF 648K) 

Week 13: Thursday 25 Nov. 2004 
Thanksgiving Day
(university holiday)


Week 14: Tuesday 30 Nov. 2004 
Shape Parameters, Continously Shaped Betasplines, Betaspline Surfaces
Discussion of shape parameters and generalizing from uniformlyshaped to continouslyshaped Betasplines and from Betaspline curves to surfaces. Reading: Bartels, Beatty, and Barsky: Chapter 14 Student presentation: Yongwook Jeong: Sketch and constraintbased design of Bspline surfaces 

Week 14: Thursday 2 Dec. 2004 
Three Characterizations of Geometric Continuity Reading: Bartels, Beatty, and Barsky: Chapter 15 Student presentation: David Wallace: Implicit Surfaces 

Week 15: Tuesday 7 Dec. 2004 
Rationals, NURBS, Conics and Quadrics Reading: Bartels, Beatty, and Barsky: Chapter ? Student presentation: Klaus Strelau: From Conics in Projective Space to NURBS 

Week 15: Thursday 9 Dec. 2004 
Final Project
Presentations 

Links  Software 