Shape Modeling and Geometry Processing

Bunny
course no.
252-0538-00
semester
Spring 2020
lecturer
Olga Sorkine-Hornung
assistants
Philipp Herholz, Shihao Wu
lecture
Wed 10-12; online teaching
exercise
Fri 11-12; online teaching
ECTS credit
6 credits

announcements

08.05.2020
The guest lecture from industry, originally planned for 20.05.2020, had to be cancelled, unfortunately, due to the COVID-19 pandemic and associated logistic problems.
24.03.20
The exam of this course, originally planned for the last lecture slot of the semester, has been canceled due to the COVID-19 pandemic. The grade will consist solely of the weighted average of the homework assignments' grades. This announcement replaces the entry in the ETH course catalog.
17.03.20
All teaching has switched to live and recorded online form due to the COVID-19 pandemic. See the online teaching materials page for details (NETHZ login required).
11.03.20
Video recordings of the lectures will be uploaded starting this week, soon after the lectures.
NETHZ login is required for viewing and downloading the video content.
07.02.20
Course webpage updated. Welcome!

overview

camel sketch

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 structure-aware 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 4 mandatory programming + "pen-and-paper" assignments and one slightly larger programming project. 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 written exam (multiple choice, 60 minutes) at the end of the semester, amounting to 20% of the final grade.

Prerequisites

Introduction to Computer Graphics or Visual Computing or a similar course, experience with 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 will be adjusted along the way.


19.02.20
Introduction.
Shape representations.
21.02.20
[Exercise 1 handout]

26.02.20
Geometry acquisition. Meshes.
28.02.20
Intro to libigl.

04.03.20
Surface reconstruction.
06.03.20
[Exercise 2 handout]

11.03.20
Normal estimation and PCA.
Discrete differential geometry - Curves, part I.
13.03.20
3D Point set processing.

18.03.20
Discrete differential geometry - Curves, part II.
Discrete differential geometry - Surfaces, part I.
20.03.20
[Optional Exercise 3 handout]

25.03.20
Discrete differential geometry - Surfaces, part II.
Mesh smoothing.
Curve smoothing MATLAB demos.
27.03.20
[Grading of Exercise 2]

01.04.20
Parameterization I.
Whiteboard notes.
03.04.20
[Exercise 4 handout]

08.04.20
Parameterization II.
Whiteboard notes.
10.04.20
Easter holiday.

15.04.20
Easter holiday.
17.04.20
Easter holiday.

22.04.20
Introduction to mesh editing. Variational surface based deformation I.
24.04.20
[Exercise 5 handout].

29.04.20
Variational surface based deformation II. ARAP surface modeling.
01.05.20
Labor day.

06.05.20
Space deformations. Skeletal animation and skinning.
08.05.20
[Exercise 6 handout]

13.05.20
Current IGL research in geometry processing.
15.05.20
[Grading of Exercise 5]

20.05.20
Guest lecture: CANCELLED due to the COVID-19 pandemic.
22.05.20
Q&A

27.05.20
Written examination: CANCELLED due to the COVID-19 pandemic.
29.05.20
[Grading of Exercise 6]

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.

Note: Course notes and assignment slides are only accessible within the ETH network (addresses 129.132.*). Use VPN to access from outside.


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 :
13.03.2020, 08:00
Slides:
Exercise Session 21.02.2020
Assignment:
Assignment 1

Exercise 2: Surface reconstruction

In this exercise you will compute a water-tight surface mesh by fitting an implicit function to point cloud.

Due Date :
27.03.2020, 09:00
Slides:
Exercise Session 06.03.2020
Assignment:
Assignment 2

Exercise 3: Discrete differential properties and smoothing

In this exercise you will experiment with various fundamental discrete differential quantities and implement mesh smoothing flows.

Due Date :
None (optional task)
Slides:
Exercise Session 20.03.2020
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 :
01.05.2020, 08:00
Slides:
Exercise Session 03.04.2020
Assignment:
Assignment 4

Exercise 5: Shape deformation

In this exercise, you will implement an algorithm to interactively deform 3D models. You will construct a two-level multi-resolution surface representation and use naive Laplacian editing to deform it.

Due Date :
15.05.2020, 09:00
Exercise Session 24.04.2020
Assignment:
Assignment 5

Exercise 6: 3D face modeling and learning

In this exercise you will take part in a group project about 3D face modeling and learning. No precise instructions will be provided for this exercise, 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 :
29.05.2020
Exercise Session 08.05.2020


YouTube channel - related research results from IGL