Shape Modeling and Geometry Processing

course no.
Spring 2014
Olga Sorkine-Hornung
Olga Diamanti, Daniele Panozzo
Wed 10-12; CAB, G 56
Wed 15-16; CAB, G 56
office hours
upon coordination by e-mail
ECTS credit
4 credits


Course webpage updated. Welcome!
There will be no exercise session on the first lecture (tomorrow 19.02.2014). The first exercise session will take place on Wednesday 26.02.2014.
Mailing list for the course: . Please subscribe and use it! Important announcements will be shared there, as well as answers to frequently asked questions.
Homework submission email address : .
An interesting book that summarizes at least some of the topics we will discuss in class is "Polygon Mesh Processing", by Mario Botsch, Leif Kobbelt, Mark Pauly, Pierre Alliez and Bruno Levy. We have several copies in the lab, and the department library also holds several copies. Please come and ask if interested! See also this link.
Here is the tentative schedule for the exercise session (including demos, new handouts etc.).


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 some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, skinning animation, architectural and structure-aware geometric modeling.

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 programming + "pen-and-paper" assignments and one slightly larger programming exercise. 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 an oral exam at the end of the semester, amounting to 20% of the final grade.


Introduction to Computer Graphics, experience with C++ programming. Some background in geometry or computational geometry 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 may be adjusted along the way.

Introduction. Shape representations.
Geometry acquisition. Meshes.
[Exercise 1 handout]
Surface reconstruction.
[Exercise 2 handout]
Normal estimation and PCA. Discrete differential geometry - Curves.
Discrete differential geometry - Surfaces. Guest lecture with Dr. Daniele Panozzo.
[Exercise 3 handout]
Mesh smoothing and optimization. MATLAB scripts for 2D curve smoothing shown in class.
Parameterization I.
[Exercise 4 handout]
Parameterization II. Remeshing. Guest lecture with Dr. Kenshi Takayama.
Introduction to mesh editing. Variational mesh editing I.
[Exercise 5 handout]
Easter holiday.
Variational mesh editing II. ARAP surface modeling.
Space deformations. Skinning.
[Exercise 6 handout]
Masonry. Architectural geometry and fabrication-aware geometric modeling.
Research outlook.
Oral examination.

homework assignments

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

To allow you to focus on the algorithms presented in the course, we provide a software infrastructure that will take care of all the visualization as well as basic user interactions like rotating and translating the mesh. Using this code is entirely optional. It is provided solely to enable you to work directly on the exercise requirements without worrying about UI functions. However, if you prefer you can write your own viewer and use it for all the exercises. We are only providing support for the provided viewer only and we will not be able to help you with rendering or UI problems if you decide to write your own.

To avoid further overhead due to compilation problems, we are also providing you with a VirtualBox virtual machine with Ubuntu Linux preinstalled. The supplied code has been tested and is able to compile and run on that virtual machine without problems. You only need to download VirtualBox and start it with the provided virtual machine.

Previewer Code (.zip, 66.2MB)
Virtual Machine:
VirtualBox VM (.zip, 1.75GB)

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 :
11.03.2014, 23:59
Demo Date :
12.03.2014, during exercise session
Exercise Session 25.02.2014
Exercise 1
Mesh Data:
Mesh Data (.zip, 838KB)

Exercise 2: Surface reconstruction

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

Due Date :
25.03.2014, 23:59
Demo Date :
26.03.2014, during exercise session
Exercise Session 05.03.2014
Exercise 2
Mesh Data:
Mesh Data (.zip, 2.2MB)
Additional Code:
Poisson Reconstrunction Unix Code (.zip, 2.1MB)

Exercise 3: Discrete geometry

In this exercise you will compute various discrete differential quantities on meshes, visualize them and analyze their quality.

Due Date :
08.04.2014, 23:59
Demo Date :
09.04.2014, during exercise session
Exercise Session 19.03.2014. Cotangent Laplacian Derivation.
Exercise 3
Mesh Data:
Mesh Data (.zip, 3.8MB)

Exercise 4: Parameterization and remeshing

In this exercise you will compute parameterizations of meshes and apply them to texturing.

Note: For this assignment you will need the cotangent and uniform Laplacian, as well as the vertex to face neighborhood relationships from previous exercises. If you are unsure of your implementation please drop us an email and we will provide you with source code for that.

Due Date :
29.04.2014, 23:59
Demo Date :
30.04.2014, during exercise session
Exercise Session 02.04.2014
Exercise 4
Mesh Data:
Mesh Data (.zip, 705KB)

Exercise 5: Variational mesh editing

In this exercise you will design and implement a shape editing algorithm based on discrete differential principles.

Due Date :
13.05.2014, 23:59
Demo Date :
14.05.2014, during exercise session
Exercise Session 16.04.2014
Exercise 5
Mesh Data:
Mesh Data (.zip, 1.6MB)

Exercise 6: Advanced assignment

In this slightly more elaborate exercise you will be provided with a list of research papers on topics related to geometric modeling. Your task will be to implement one of these papers, using the software that you wrote in the previous assignments.

Due Date :
27.06.2014, 23:59
Demo Date :
28.05.2014, 14:00 - 15:00, at Daniele's office, CNB G108
Exercise Session 07.05.2014
Exercise 6
Papers (.zip, 41.9MB)

oral examination

Exam Schedule:

YouTube channel - related research results