Keenan Crane
CARNEGIE MELLON UNIVERSITY
Discrete Differential Geometry: An Applied Introduction
Keenan Crane
Last updated: February 27, 2019
teaser
This course focuses on three-dimensional geometry processing, while simultaneously providing a first course in traditional differential geometry. Our main goal is to show how fundamental geometric concepts (like curvature) can be understood from complementary computational and mathematical points of view. This dual perspective enriches understanding on both sides, and leads to the development of practical algorithms for working with real-world geometric data. Along the way we will revisit important ideas from calculus and linear algebra, putting a strong emphasis on intuitive, visual understanding that complements the more traditional formal, algebraic treatment. The course provides essential mathematical background as well as a large array of real-world examples and applications. It also provides a short survey of recent developments in digital geometry processing and discrete differential geometry. Topics include: curves and surfaces, curvature, connections and parallel transport, exterior algebra, exterior calculus, Stokes' theorem, simplicial homology, de Rham cohomology, Helmholtz-Hodge decomposition, conformal mapping, finite element methods, and numerical linear algebra. Applications include: approximation of curvature, curve and surface smoothing, surface parameterization, vector field design, and computation of geodesic distance.

Course material has been used for semester-long courses at CMU (2016, 2017, 2019), Caltech (2011, 2012, 2013, 2014, 2016, 2017, 2019), Columbia University (2013), National Taiwan University (2018), and RWTH Aachen University (2014, 2015, 2016, 2017), as well as special sessions at SIGGRAPH (2013) and SGP (2012, 2013, 2014, 2017, 2019). In addition to the author, past speakers at these events include Etienne Vouga (SGP 2016), and Fernando de Goes, Mathieu Desbrun, and Peter Schröder (SIGGRAPH 2013).

preview
PDF, 15MB
These notes grew out of a Caltech course on discrete differential geometry (DDG) over the past few years. Some of this material has also appeared at SGP Graduate schools and a course at SIGGRAPH 2013. Peter Schröder, Max Wardetzky, and Clarisse Weischedel provided invaluable feedback for the first draft of many of these notes; Mathieu Desbrun, Fernando de Goes, Peter Schröder, and Corentin Wallez provided extensive feedback on the SIGGRAPH 2013 revision. Thanks to Mark Pauly's group at EPFL for suffering through (very) early versions of these lectures, to Katherine Breeden for musing with me about eigenvalue problems, and to Eitan Grinspun for detailed feedback and for helping develop exercises about convergence. Thanks also to those who have pointed out errors over the years: Mirela Ben-Chen, Nina Amenta, Chris Wojtan, Yuliy Schwarzburg, Robert Luo, Andrew Butts, Scott Livingston, Christopher Batty, Howard Cheng, Gilles-Philippe Paillé, Jean-François Gagnon, Nicolas Gallego-Ortiz, Henrique Teles Maia, Joaquín Ruales, Papoj Thamjaroenporn, and all the students in CS177 at Caltech, as well as others who I am currently forgetting!
@inproceedings{Crane:2013:DGP, author = {Keenan Crane, Fernando de Goes, Mathieu Desbrun, Peter Schröder}, title = {Digital Geometry Processing with Discrete Exterior Calculus}, booktitle = {ACM SIGGRAPH 2013 courses}, series = {SIGGRAPH '13}, year = {2013}, location = {Anaheim, California}, numpages = {126}, publisher = {ACM}, address = {New York, NY, USA}, }
Latest course at CMU (with updated slides and exercises)
Caltech course blog (older, web-based version of notes)
Source
C++several fundamental geometry processing algorithms (parameterization, smoothing, geodesic distance, ) implemented in a single unified DEC framework.
Figures
figure1
A surprisingly wide variety of geometry processing tasks can be easily implemented within the single unified framework of discrete exterior calculus (DEC). Above: a conformal parameterization preserves angles between tangent vectors on the initial surface.
figure2
Curvature flow can be used to smooth out noisy data or optimize the shape of a surface.
figure3
The shortest distance along the surface can be rapidly computed by solving two standard sparse linear equations.
figure4
Flows on surfaces can be designed by specifying a few singularities and looking for the smoothest vector field everywhere else.
figure5
We also show how to improve mesh quality, which generally improves the accuracy of geometry processing tasks.
figure6
Most of these applications boil down to solving a sparse Poisson equation. Above: a prototypical example of a Poisson (or Laplace) equation is the interpolation of boundary data by a harmonic function.
figure7
For surfaces of nontrivial topology, one also needs to compute fundamental cycles, which can be achieved using simple graph algorithms.
figure8
The decomposition of a vector field into its constituent parts also plays an important role in geometry processing—we describe a simple algorithm for Helmholtz-Hodge decomposition based on the discrete Poisson equation.