line.gif (5927 bytes)

CS348a


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 /graduate-level 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 3-d 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
  • B-Splines and the de Boor Algorithm
  • Rational Curves
  • Parametric Polynomial Surfaces and NURBS
  • Subdivision Curves and Surfaces
  • Triangle Meshes for Surface Representation and Reconstruction
  • The Quad-Edge 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 paper-and-pencil 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.