Shape Modeling and Geometry Processing

course no.
Spring 2013
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


The finalized exam schedule has been posted. Good luck all!
The exam schedule has been posted. Please notify us as soon as possible if you have time conflicts during the time slot that was assigned to you. Also contact Olga Diamanti if you plan to participate in the exam.
The deadline for Exercise 6 has been extended by a week. The new deadline is June 5th, 23.59. The demo will be in the afternoon of June 6th, 13:30-15:00 in Daniele's office CNB G 108. Alternatively, you can still do the demo a week before, on May 30th, 14:00-15:00, again in Daniele's office. Please feel free to show up at any of those two time slots.
An interesting book that summarizes at least some of the topics discussed 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.
The slides for the first exercise session have been updated. Please grab the new ones from the link below!
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 : .
Course webpage updated. Welcome!


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, subdivision, mesh fairing and simplification, discrete differential geometry and interactive shape editing.

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 modest 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]
Meshes - continued. Surface reconstruction.
[Exercise 2 handout]
Normal estimation and PCA. Discrete differential geometry - Curves.
Discrete differential geometry - Surfaces.
[Exercise 3 handout]
Mesh smoothing and optimization. The MATLAB demo I showed in class is here.
Easter Holidays
Parameterization I. Thanks to Xiang for spotting a typo in the harmonic mapping equation!
[Exercise 4 handout]
Parameterization II. Remeshing. Guest lecture with Dr. Daniele Panozzo.
Introduction to mesh editing. Variational mesh editing I.
[Exercise 5 handout]
Labor Day - no class.
Variational mesh editing II. ARAP surface modeling.
[Exercise 6 handout]
Space deformations. Skinning.
Applications in architectural modeling and fabrication: Designing Self-Supporting Masonry Models, Balancing Shapes for 3D Fabrication.
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 :
12.03.2013, 23:59
Demo Date :
13.03.2013, during exercise session
Exercise Session 27.02.2013
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 :
26.03.2013, 23:59
Demo Date :
27.03.2013, during exercise session
Exercise Session 06.03.2013
Exercise 2
Mesh Data:
Mesh Data (.zip, 2.2MB)

Exercise 3: Discrete geometry

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

Due Date :
16.04.2013, 23:59
Demo Date :
17.04.2013, during exercise session
Exercise Session 20.03.2013. 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 :
14.05.2013, 23:59
Demo Date :
15.05.2013, during exercise session
Exercise Session 10.04.2013
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.

Note: Please update the picking and dragging plugin by replacing the following files inside src/plugins folder of your viewer package with the code below. You will be needing this plugin for this assignment.

Due Date :
21.05.2013, 23:59
Demo Date :
22.05.2013, during exercise session
Exercise Session 24.04.2013
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 :
05.06.2013, 23:59
Demo Date :
06.06.2013, 14:00 - 15:00, at Daniele's office, CNB G108
Exercise 6
Papers (.zip, 41.9MB)

oral examination

The logistics and schedule for the oral exam will be posted here towards the end of the semester.

YouTube channel - related research results