# CS 284: CAGD  Lecture #1 -- Thu 8/23, 2012.

CS 284 HOME < - - - - > CURRENT < - - - - > NEXT

## Preparation:

read Rockwood (here is a passive copy -- for reading only)pp 1-30:
-- Ch 1: History of CAGD
-- Ch 2: Math background

# Lecture Topics

### Introduction to CAGD

• What is CAGD ?
Subset of CAD; originally mostly shipbuilding, automotive, aeroplanes; - mostly smooth, curved shapes.
• Motivation for COE Students:
CS: smooth motions for movies;   ME: freeform parts;   Math: data fitting ...
• Course Content:

### Key Course Topics

• Interpolation (a very useful key topic)
• Subdivision (more than in the past)
• Splines (less than in the past)
... all on 1, 2, (and 3)-manifolds
• Curve and surface optimization
• Remeshing, reparametrization
• Texture (and displacement) mapping
• Implicit Surfaces (cleanup of bad designs)
• Distance Fields (adaptive schemes for encoding 3D shapes, -- e.g., for efficient collision detection)
• Point Clouds (reverse engineering, scanner data)

### Course Goal

• Learn how to make smooth curves and surfaces that fit certain constraints.
• TREND: Make it easier on the user (even though underlying formulation may get more complex).
• TREND: Optimization will play an ever bigger role (compute power is available).
• A common key concept:
• Use a simple (piecewise linear) shape, with the fewest degrees of freedom (DoF) necessary,
to define and control an associated (smooth, continuous) design shape;
this may then serve as the control polygon for a spline or subdivision surface.

• Where does CS 284 fit in ?
Should have had some computer graphics or CAD course; (e.g. CS 184, -- but this is much more than you need).
• Teaching Style:
Application oriented; learning by doing;  (even the chosen textbook has an interactive component).
Intuitive introduction first; hands-on experience; math later.
Interactive lectures, Q&A; -- I want everybody to participate actively!
Many small homework assignments initially, to deepen understanding, "close feedback loop".
• The Key Problem of CAGD:
Handout: Experiment -- connect the dots ...
How did you decide to place the curve segments?  What do the results tell us ?

Important; ==> you get much more out of class discussions.
(First readings are from Rockwood and Chambers, later some SIGGRAPH papers).
• Conceptual Thinking  Assignments:
Equally important; ==> to make sure you can apply the discussed material.
(A first example is below: How to make a genus-2 object; -- see below).
• Programming  Assignments:
One multi-stage programming assignment to build a half-edge mesh data structure, and then to add texturing onto it.
(This is a key data structure useful in many applications).
• Course Projects:
Reimplement the key algorithm from some (siggraph?) paper;
Create some utility that solves a particular task (possibly for your own use);
Design an interesting virtual or real object (and possibly build it on our FDM machine).
(Examples from previous courses)
• Quizzes/Exams:
Probably just one quiz, somewhere in the middle of the semester, to check whether the key concepts have sunk in.
NO  Final Exam!

### Expected Math Foundations

See Rockwood pp 9-19
• Parametric Curves and Surfaces
-- not just single valued height fields, can handle infinite slope, can be subjected to transformations ...
• Derivatives, Tangents, Normals
-- velocity vector = vector of all component derivatives; -- if <>0, normalize to 1;
-- surface normal = normal on all tangent vectors
• Linear Interpolation
• Basis Vectors

### Some Possibly New Concepts

See Rockwood pp 20-30
• Hodograph
-- plot of parameterized derivative vector
• Winding Number of a (closed, oriented) Curve around a Point
-- how many times does it loop around that point ?
• Turning Number of a (closed) Curve
-- if v<>0 it is equal to winding number of hodograph around origin.
• Parametric Continuity
-- all component functions are differentiable
• Geometric Continuity
-- visual appearance is smooth, ignore parametrization!
• Basis Functions
-- see definition 14, page 29 ...

## First Homework Assignment:

A Conceptual Task: (to make you conscious of what we are up against).
Think about how you would model
-- with the tools that you have already at your disposal --
a completely smooth Genus-2 Object ( = two-hole torus).
-- ( genus = number of holes in a disk, or number of handles attached to a sphere).

You don't actually have to build a CAD model for this shape,
but think through all the steps that you would have to go through,
and estimate how long it might take you.
In a couple of paragraphs, write down your thoughts on how you would do this.
E-mail to <sequin@cs.berkeley.edu> by: MON 8/27/2012, noon.

Also bring that write-up to next class (TUE) and be prepared to explain your approach in a few sentences.