CS284 Computer Aided Geometric Design and Modeling

Lecture Summary and Written Assignments

Lecture summary, miscellaneous notes, handouts, and links.
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&eumln 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 1-2
Week 1:
Thursday
2 Sept.
2004
Spline Basics and Hermite Formulation
Splines are vector-valued piecewise continuous parametric and usually polynomial functions. We defined all these terms, and discussed some of the advantages of using a parametric representation: derivative-vector 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 C0 continuous, but not C1 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 2-3
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 C2 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 C2 continuity and interpolating given points. These three conditions yield 4n-2 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.
 Interpolation:  [.ps] [.pdf] Degree d:  [.ps] [.pdf]
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 Euler-Lagrange equation that the fourth derivative of the minimizing curve is zero? What if you assume the curve is polynomial? The first-order piecewise linear B-spline was introduced.
 End Conditions:  [.ps] [.pdf] Variational Principle:  [.ps] [.pdf]
Week 3:
Thursday
16 Sept.
2004
Deriving the Uniform Cubic B-Spline
The uniform cubic B-spline can be derived from some basic assumptions: it is zero outside of four consecutive knot intervals, it is a piecewise cubic polynomial, it is C2 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 B-Spline
Rotation, scale, and translation invariance; curvature; double and triple vertices; and end conditions for uniform cubic B-splines.

Reading: Bartels, Beatty, and Barsky: Chapter 4
Week 4:
Thursday
23 Sept.
2004
More on the Uniform Cubic B-Spline 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 One-Sided Basis
Continuation of discussion of splines in a more general setting. One-sided power functions were introduced and the one-sided basis was discussed. Each function is of the form f(x)=0 for x < a and f(x)=(x-a)μ+(x-a)μ+1+ ... +(x-a)k for x ≥ a. These functions have Ck-μ-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 One-Sided Basis and Introducing Divided Differences
Continuation of discussion of one-sided power functions and the one-sided basis, and introduction to divided differences.

Reading: Bartels, Beatty, and Barsky: Chapters 6 and 7
Week 7:
Thursday
14 Oct.
2004
General B-splines
General B-splines. Linear, quadratic, and cubic B-splines. 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 B-splines and the Cox de Boor Recurrence Relation
More on General B-splines 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 B-spline 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 B-splines , denoted by αi,k(j). The specific combination coefficients that determine a new vertex, Wj, are the values of a set of discrete B-splines αi,k(j), all computed at the same knot value, wj.

Reading: Bartels, Beatty, and Barsky: Chapter 11

Student presentation: Bryan Klingner: Subdivision surfaces, general introduction, discussion of butterfly and Catmull-Clark 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 B-splines, αi,k(j), as a function of the orignal and refined knot vectors, (ui) and (wj), 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 Hartmann-Shack Images from Highly Aberrated Eyes Using an Iterative B-spline 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, Wj, given the original vertices, Vi. Like the first Oslo algorithm, this recurrence also uses the original and refined knot vectors, (ui) and (wj), respectively, as input. But in this version of the Oslo algorithm, the discrete B-splines 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 Beta-splines
First and second order parametric and geometric continuity; unit tanget and curvature vectors. Beta-splines 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 Beta-splines, Beta-spline Surfaces
Discussion of shape parameters and generalizing from uniformly-shaped to continously-shaped Beta-splines and from Beta-spline curves to surfaces.

Reading: Bartels, Beatty, and Barsky: Chapter 14

Student presentation: Yongwook Jeong: Sketch- and constraint-based design of B-spline 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