1. Best 5 out of 6 exercises contribute to 70% of the final grade

  2. Each exercise counts 20 points.

  3. Late submissions: every 5 minute removes 1 point in each exercise

Geometry Processing Project

  1. Students will conduct a small research project (scope 1 month per person, groups size: up to 2) on an innovative solution around data capture and geometry processing, but not limited to it. The idea is to explore a research problem (e.g., implement a research paper) to apply what they have learned during the course. More details will be provided during the semester.

  2. Final presentation, code, documentation contribute to 30% of the final grade

Copyright © 2017 Hao Li

CSCI 621: Digital Geometry Processing SS 2017


Course Overview




This course provides an introduction to digital geometry processing (DGP), a subfield of computer graphics. With polygonal meshes being the de-facto standard for 3D surface representation and the emergence of 3D scanning, realtime depth sensor, and 3D printing technologies, DGP is gaining increasing importance in applications ranging from visual effects, interactive games, CAD, machine perception, robotics, engineering to biomedicine. This course will cover basic mathematical foundations for studying 3D surfaces from a discrete differential geometric standpoint and present the full geometry processing pipeline: from 3D data capture, mesh smoothing, surface reconstruction, parameterization, registration, shape analysis (correspondence, symmetry, matching), data-driven synthesis, interactive manipulation, to 3D printing. We will also illustrate this course with important applications and recent advances in this field. In analogy to image processing for which inputs are 2D images and video, DGP involves the treatment of 3D depth maps, point clouds, polygonal meshes and volumetric data and involves many techniques from linear algebra, differential geometry, signal processing, and numerical optimization. This course will offer practical coding exercises to understand basic geometry processing algorithms and exciting project around data capture and geometry processing.

This page will be frequently updated with slides, exercises, and additional reading materials. Also, this course the advanced topics are subject to change too depending .

Lecture URL

Exercises / Q&A





Class Number




Lecture, 4 units

11:00 - 2:20 pm


SAL 213




Office hours




Office hours




Office hours




Prof. Dr. Hao Li

SAL 244

Tue 2:30 PM - 3:00 PM


Yi Zhou




Shunsuke Saito




Ronald Yu





Surface Representation & Data-Structures

No Class

Explicit & Implicit Surfaces

Classic Differential Geometry 1 / Exercise 1

Classic Differential Geometry 2

Discrete Differential Geometry

3D Scanning

Surface Registration / Exercise 2

Shape Matching

Surface Reconstruction

In Pursuit of Pixels (guest: Iman Sadeghi)

Exercise 3

Surface Reconstruction Recap

Surface Smoothing


Decimation / Exercise 4


Surface Deformation I / Exercise 5

Surface Deformation II

Space Deformation / Project

No Class

Dynamic Geometry Processing I

Dynamic Geometry Processing II / Exercise 6

Facial Performance Capture I

Facial Performance Capture II

DGP for Movies & Games (guest: JP Lewis)

Deep Learning for Geometry Processing

Final Project Presentations





[slides]   [exercise]




[slides]   [exercise]








[slides]   [exercise]


[slides]   [exercise]




[slides]   [exercise]




[Ex. 1 Due]

[Ex. 2 Due]

[Ex. 3 Due]

[Ex. 4 Due]

[Ex. 5 Due]

[Ex. 6 Due]

Project Due



  1. While this course is self-contained, students should have solid background in linear algebra, numerical optimization, C/C++ programming.

  2. CSCI 420: Computer Graphics is recommended, but not a prerequisite for this course.

Course Material

  1. This course is based on the excellent textbook Polygon Mesh Processing and uses material from
    the courses designed by Prof. Dr. Mario Botsch (Bielefeld University) and Prof. Dr. Mark Pauly (EPFL). The book can be purchased here: http://www.crcpress.com/product/isbn/9781568814261.
  2. Additional readings from research papers will be posted in the course slides or on this page.

  3. Additional materials are taken from the following relevant conference courses:

  4. Geometric Modeling Based on Polygonal Meshes (summarizes this course): http://graphics.ethz.ch/Downloads/Publications/Tutorials/2008/Bot08a/eg08-tutorial.pdf

  5. Computing Correspondences in Geometric Data Sets (provides more detail on 3D scan processing, shape analysis, registration, dynamic geometry processing, and performance capture): http://www.mpi-inf.mpg.de/resources/deformableShapeMatching/EG2011_Tutorial/

  6. 3D Scan Matching and Registration (another great tutorial on processing 3D scans and how to align them): http://www.cs.princeton.edu/~bjbrown/iccv05_course/

  7. Discrete Differential Geometry (excellent reading for a more foundational treatment of discrete differential geometry with practical examples from surface fairing, parameterization, to physics simulation): http://ddg.cs.columbia.edu

  8. Differential Geometry for CS (another wonderful lecture on DDG from our friend Justin): http://graphics.stanford.edu/courses/cs468-13-spring/schedule.html

  9. Differential Geometry of Curves and Surfaces (awesome introduction and simple read to classical differential geometry): http://www.amazon.com/Differential-Geometry-Curves-Surfaces-Manfredo/dp/0132125897

  10. Structure-Aware Shape Processing (cutting edge course notes form SIGGRAPH Asia 2013): http://vecg.cs.ucl.ac.uk/Projects/SmartGeometry/structure_survey/paper_docs/course_siggAsia_13/StructureAwareShapeModeling.pdf

  11. Shape Modeling and Deformation (beautiful survey and tutorial on the latest advances in mesh deformation): http://igl.ethz.ch/projects/deformation-survey/

  12. Practical Least-Squares Optimization for Computer Graphics (important basics for solving numerical optimization problems in geometry processing and computer graphics): http://graphics.stanford.edu/~jplewis/lscourse/ls.pdf

  13. Animation Reconstruction of Deformable Surfaces (my PhD thesis): http://www.hao-li.com/publications/papers/diss2010ARDS.pdf

  14. Build your own 3D scanner (great overview of 3D scanning techniques): http://mesh.brown.edu/byo3d/


Statement for Students with Disabilities

Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to me (or to TA) as early in the semester as possible. DSP is located in STU 301 and is open 8:30 a.m.–5:00 p.m., Monday through Friday. The phone number for DSP is (213) 740-0776.

Statement on Academic Integrity

USC seeks to maintain an optimal learning environment. General principles of academic honesty include the concept of respect for the intellectual property of others, the expectation that individual work will be submitted unless otherwise allowed by an instructor, and the obligations both to protect one’s own academic work from misuse by others as well as to avoid using another’s work as one’s own. All students are expected to understand and abide by these principles. Scampus, the Student Guidebook, contains the Student Conduct Code in Section 11.00, while the recommended sanctions are located in Appendix A: http://www.usc.edu/dept/publications/SCAMPUS/gov/. Students will be referred to the Office of Student Judicial Affairs and Community Standards for further review, should there be any suspicion of academic dishonesty. The Review process can be found at: http://www.usc.edu/student-affairs/SJACS/.

Emergency Preparedness/Course Continuity in a Crisis

Ahahahaha! In case of a declared emergency if travel to campus is not feasible, USC executive leadership will announce an electronic way for instructors to teach students in their residence halls or homes using a combination of Blackboard, teleconferencing, and other technologies (LOL!).

Please activate your course in Blackboard with access to the course syllabus. Whether or not you use Blackboard regularly, these preparations will be crucial in an emergency. USC's Blackboard learning management system and support information is available at blackboard.usc.edu.

For Those Who Want to Dive Deeper

If you are curious and interested in doing more research related to digital geometry processing, 3D scanning and depth sensors, or 3D printing, this is a hot field in both Computer Graphics and Computer Vision.

  1. You may want to browse interesting research papers in the top avenues in graphics (Siggraph, Siggraph Asia, ACM TOG, Eurographics) and vision (CVPR, ICCV, ECCV), as well as some more specialized but equally excellent conferences (SGP, SCA, 3DV).

  2. To capture 3D data for processing, you may be interested in experimenting with multi-view stereo software (PMVS, Agisoft), for consumer-level depth sensors (Microsoft Kinect, Primesense sensors (I know it got bought by Apple, but in case u find one), Asus Xtion Pro), and to 3D scan and print yourself with a kinect try http://shapify.me/. For 3D printing, here are some services (Sculpteo, Shapeways).

  3. While the primary applications of depth sensing and geometry processing are in entertainment (VFX/games), there is an increased interest in other domains to replace 2D imaging and image understanding with 3D processing due to the growing availability of such sensors and its effectiveness to analyze data, most notably in: robotics, consumer-level application such as for mobile devices/laptops, biomedicine, behavioral and sports analytics, natural user interfaces, advanced 3D fabrication, architecture, cultural heritage, and surveillance. Consequently, with the ability to capture a large amount of 3D data, there are new research opportunities that combine machine learning, machine perception, and optimization with digital geometry processing techniques.















Or call Dr. Bregler (now at Google):


Tue Jan 09, 2017

Tue Jan 17, 2017

Thu Jan 26, 2017

Tue Jan 31, 2017

Tue Feb 07, 2017

Tue Feb 14, 2017

Tue Feb 21, 2017

Tue Feb 28, 2017

Tue Mar 07, 2017

Tue Mar 14, 2017

Tue Mar 21, 2017

Tue Mar 28, 2017

Tue Apr 04, 2017

Tue Apr 11, 2017

Tue Apr 18, 2017

Tue Apr 25, 2017

Tue May 09, 2017