Breaking News:

As happened before with audio, images, and video, we see now an explosion of 3D content becoming available on the Web, derived from lightweight scanners (like the Microsoft Kinect, Google Tango, or Intel RealSense cameras) or 3D modeling software that everyone can use (like Trimble Sketch Up). Current efforts in AR/VR accentuate a continuing need for quality 3D content. Not only are we capturing more and more the 3D structure of the real world but, conversely, the blossoming area of 3D printing promises to make the process of creating physical artifacts out of 3D models widely available.
This course is an upper level undergraduate /graduatelevel introduction to the mathematical methods used in modeling and processing geometric shapes for use in CAD/CAM, computer graphics (gaming / special effects), and in many other areas of science, engineering, and commerce. Topics to be covered will include material on both designed shapes (classical CAGD) and shapes acquired through sensors (geometry processing):
 Homogeneous Coordinates and Geometric Transformations
 Quaternions and their Use in Modeling 3d Rotations and Rigid Motions
 Parametric and Implicit Representations for Curves
 Algebraic Classification of the Parametric Polynomial Curves of Low
Degree
 Polar Forms and the de Calsteljau Subdivision Algorithm
 The Bézier Representation and the Bernstein Basis
 Splines and Continuity Constraints
 BSplines and the de Boor Algorithm
 Rational Curves
 Parametric Polynomial Surfaces and NURBS
 Subdivision Curves and Surfaces
 Triangle Meshes for Surface Representation and Reconstruction
 The QuadEdge Data Structure for Manifold Subdivision
 Volumetric Representations and Conversion
Algorithms
 Surface Reconstruction from Scattered Points
 Scan Alignment and Shape Matching
 Mesh Simplification, Soothing and Fairing
 Mesh Remeshing and Parametrization
The course requires some background in linear algebra and elementary discrete algorithms.
Students taking the course for credit will
be expected to:
 be present and actively participate in class
 do a number of paperandpencil homeworks
 take the class midterm
 do a programming project
These pages are maintained by Leonidas Guibas guibas@cs.stanford.edu.
Last update February 25, 2017.
