 course no.
 252053800
 semester
 Spring 2024
 lecturer
 Olga SorkineHornung
 assistants

Peizhuo Li, , Floor Verhoeven
(contact via adress below only, please)  contact
 lecture
 Wed 1012; CAB, G 61
 video recording
 ETH video portal
 exercise
 Fri 1112; CAB, G 61
 ECTS credits
 8 credits
announcements
 06.02.24
 Course webpage updated. Welcome! Please read the the information about inperson demo sessions in the overview below.
overview
Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers the fundamentals and some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, surface reconstruction, mesh improvement, discrete differential geometry, interactive shape editing, skinning animation, architectural and structureaware geometric modeling, geometry for 3D computational fabrication.
Course objectives
The students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.
Course work and performance assessment
There will be 5 mandatory programming assignments. A code framework will be provided that allows you to experiment with various algorithms without having to bother much about software infrastructure. The weight of the homework assignments in the final grade will be 80%. There will be a short multiplechoice, individual graded assignment (miniexam, 60 minutes) during the last lecture slot of the semester, amounting to 20% of the final grade. This year the homework assignments will be graded during live inperson demos; attendance to these sessions is mandatory and the dates are highlighted in the schedule below.
Prerequisites
Introduction to Computer Graphics or Visual Computing or a similar course, solid knowledge of C++ programming. Some background in geometric computing is helpful, but not necessary.
schedule and course notes
Note: Course notes and homework materials are only accessible within the ETH network (addresses 129.132.*). Use VPN to access from outside.
The course schedule is tentative and might be adjusted along the way.
 21.02.24

Introduction.
Shape representations.
 23.02.24
 Intro to libigl.
[Exercise 1 handout]  28.02.24
 Geometry acquisition. Meshes.
 01.03.24
 No class. Q&A via GitHub issues.
 06.03.24
 Surface reconstruction.
 08.03.24
 [Deadline Exercise 1] Live demo 1
[Exercise 2 handout]  13.03.24

Normal estimation and PCA.
Discrete differential geometry  Curves, part I.  15.03.24
 [Exercise 2  Presentation + Q&A]
 20.03.24

Discrete differential geometry  Curves, part II.
Discrete differential geometry  Surfaces, part I.
 22.03.24
 Exercise 3  Presentation + Q&A
 [Exercise 3 (optional) handout]
 27.03.24

Discrete differential geometry  Surfaces, part II.
Mesh smoothing.  29.03.24
 Easter holiday.
 03.04.24
 Easter holiday.
 05.04.24
 Easter holiday.
 10.04.24
 Parameterization I.
 12.04.24
 [Deadline Exercise 2] Live demo 2
[Exercise 4 handout]  17.04.24
 Parameterization II. Remeshing.
 19.04.24
 Exercise 4  Presentation + Q&A
 24.04.24
 Introduction to mesh editing. Variational surface based deformation I.
 26.04.24
 Exercise 4  Q&A
 01.05.24
 May 1st, no lecture.
 03.05.24
 [Deadline Exercise 4] Live demo 4
[Exercise 5 handout]  08.05.24

Variational surface based deformation II.
ARAP surface modeling.  10.05.24
 Exercise 5  Presentation + Q&A
 15.05.24

Space deformations.
Skeletal animation and skinning.  17.05.24

Exercise 6  Presentation + Q&A
[Exercise 6 handout]  22.05.24
 Guest lecture by Prof. Dr. David Bommes.
 24.05.24
 [Deadline Exercise 5] Live demo 5
 29.05.24
 Short multiplechoice, individual graded assignment (miniexam)
 31.05.24
 Exercise 6  Q&A
 14.06.24
 [Deadline Exercise 6] Graded offline, no presence required.
homework assignments
For the purposes of this class we will be using GitHub. You can find all instructions on the repository's webpage, please follow them carefully.
Repository: https://github.com/ethigl/GP2024Assignments
Note: Course notes and assignment slides are only accessible within the ETH network (addresses 129.132.*). Use VPN to access from outside. Support is provided only for Windows and MacOs: compiling the code with other operating systems is generally possible but the students take full responsibility in this case. We follow a strict "no late submission" policy.
Exercise 1: Mesh "Hello World"
In this exercise you will familiarize yourself with the provided code framework and perform some basic operations on a mesh.
 Due Date :
 08.03.2024, 10:00
 Slides:
 Exercise Session 23.02.24
 Assignment:
 Assignment 1
Exercise 2: Surface reconstruction
In this exercise you will compute a watertight surface mesh by fitting an implicit function to point cloud.
 Due Date :
 12.04.2024, 10:00
 Slides:
 Exercise Session 15.03.24
 Assignment:
 Assignment 2
Exercise 3: Normals and curvature (Optional)
In this exercise you will experiment with various fundamental discrete differential quantities and implement mesh smoothing flows.
 Due Date :
 None
 Slides:
 Exercise Session 22.03.2024
 Assignment:
 Assignment 3
Exercise 4: Mesh parameterization
In this exercise you will parameterize a mesh by minimizing four different distortion measures, with fixed or free boundaries. Visualize the distortion by color coding.
 Due Date :
 03.05.2024, 10:00
 Slides:
 Exercise Session 19.04.2024
 Assignment:
 Assignment 4
Exercise 5: Detailpreserving mesh editing
In this exercise, you will implement an algorithm to interactively deform 3D models. You will construct a twolevel multiresolution surface representation and use naive Laplacian editing to deform it.
 Due Date :
 24.05.2024, 10:00
 Slides:
 Exercise Session 10.05.2024
 Assignment:
 Assignment 5
Exercise 6: Harmonic skinning weights computation and skeletal character deformation
In this exercise you will take part in a project about skeletalbased deformation and animation. You will have to read the project description, understand and implement it. You can obviously use libigl and you can reuse any of the code from the previous exercises.
 Due Date :
 14.06.2024, 10:00
 Slides:
 Exercise Session 17.05.2024
 Assignment:
 Assignment 6
YouTube channel  related research results from IGL