# Discrete Differential Geometry

## Course ID 15858

Doctoral Breadth Course: Algorithms and Complexity - (*)
Classes marked with "*" (star) are appropriate for any CSD doctoral or 5th year master's student.

Description

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.

Key Topics
Geometric algorithms, differential geometry, numerical methods - 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.

Learning Resources
Course notes: http://www.cs.cmu.edu/~kmcrane/Projects/DDG/paper.pdf
Course code frameworks:
C++: https://github.com/geometrycollective/ddg-exercises
JavaScript: https://github.com/cmu-geometry/ddg-exercises-js

Course Relevance
Absolutely anyone who has the prereqs (year/degree/major/school doesn't matter; also fine with Pitt cross-enrollment).
15-858 (this course) is for graduate students. Undergraduate students should enroll in 15-458.

Course Goals
Students will develop an ability to derive and implement algorithms for shape processing and analysis, and develop a foundational understanding of core topics in differential geometry and topology.

Pre-required Knowledge
Familiarity with basic linear algebra and multivariable calculus, and some experience with coding in any language.

Assessment Structure
Grades will be determined by performance on written and coding assignments, as well as participation in discussions in-class and on the course webpage. You will also be periodically asked to do readings from our course notes or from relevant papers, and provide short (2-3 sentence) written summaries. There will be seven assignments (with deadlines outlined on the course calendar) comprised of both a written and coding portion. The first two assignments are mandatory, because they establish a framework that will be used for all remaining assignments. To give you a bit of flexibility during the semester, you can skip one out of the remaining five assignments with no penalty. A 7th assignment can be completed for up to 15% extra credit. The last assignment (A6) will be given in lieu of a final. The grade breakdown is as follows:

Assignments - 90% (pick 6 out of 7)
(15%) A0: Combinatorial Surfaces (can't skip this one!)
(15%) A1: Exterior Calculus (can't skip this one!)
(15%) A2: Discrete Curvature
(15%) A3: Surface Fairing
(15%) A4: Surface Parameterization
(15%) A5: Geodesic Distance
(15%) A6: Direction Field Design
Participation - 10%
(5%) - in-class/web participation
(5%) - reading summaries/questions