Geometry is central to computer graphics, vision, machine learning, and optimization -- wherever you go, there is geometry.
This course provides an advanced introduction to the digital geometry processing, modeling, and shape analysis.
We will learn the math and the algorithms behind modern mesh processing and modeling. For our assignments we'll use MATLAB/Python and C++.
Please see the official UdeM course description for prerequisites and schedules.
Instructor: Mikhail Bessmeltsev. Office hour: Fri, 4:30pm-5:30pm (AA 3357 or the Zoom link announced in Piazza).
Contact: We will use Piazza for all the announcements and questions. Please sign up!
Mark distribution: Assignments (33%), Paper Presentation (25%), Participation (2%), Final Project (40%)
Lectures are Tuesdays 8.30-10.30 in AA 1175 and Thursdays 8.30-10.30 in AA 1177.
Here lecture materials will appear as we proceed, with no guarantee we'll post everything. So do come to the lectures!
Topics for the future dates are subject to change with no warning, so do not rely on them.
Topic | Links | ||||
---|---|---|---|---|---|
Tue | 5 | Sept | Intro | ||
Thu | 7 | Sept | Background: Linear Algebra and Optimization | PDF | Notes | |
Tue | 12 | Sept | ↑ | Notes | |
Thu | 14 | Sept | Shape Representations | ||
Tue | 19 | Sept | Differential Geometry: Curves | PDF | Notes | |
Thu | 21 | Sept | Differential Geometry: Surfaces | PDF | Notes | |
Tue | 26 | Sept | ↑ | Notes | |
Thu | 28 | Sept | Applications of Curvature | ||
Tue | 3 | Oct | Continuous Laplacian | PDF | Notes 1 | 2 | |
Thu | 5 | Oct | Discrete Laplacian | ||
Tue | 10 | Oct | ↑ | ||
Thu | 12 | Oct | Laplacian Applications | PDF | Notes | |
Tue | 17 | Oct | (no class, reading week) | ||
Thu | 19 | Oct | (no class, reading week) | ||
Tue | 24 | Oct | Vector Fields | ||
Thu | 26 | Oct | ↑ | ||
Tue | 31 | Oct | Applications of Vector Fields | ||
Thu | 2 | Nov | Shape Deformation | ||
Tue | 7 | Nov | Overview of Computational Geometry | ||
Thu | 9 | Nov | ↑ | ||
Tue | 14 | Nov | Mesh Parameterization | PDFNotes | |
Thu | 16 | Nov | Remeshing | PDF | Notes | |
Tue | 21 | Nov | Surface Reconstruction | PDF | Notes | |
Thu | 23 | Nov | Students' paper presentations | ||
Tue | 28 | Nov | Surface Reconstruction | ↑ | |
Thu | 30 | Nov | Geodesics | ||
Tue | 5 | Dec | Clustering and Segmentation | ||
Thu | 7 | Dec | Final project presentations |
# | Date Released | Date due | Links |
---|---|---|---|
1 | Sept, 14th | Oct, 4th | Link in Piazza |
2 | Oct, 6th | Oct, 21st | Link in Piazza |
3 | Nov, 3rd | Nov, 20th | Link in Piazza |
Each programming assignment is due 23:59:59 pm on the day specified, measured by Piazza. No late assignments accepted, except for the grace days:
Grace days: Each student may use up to 3 grace days per term. We will keep track of your grace days. Use these as you wish to help manage your time, but use them wisely. You can use all three on one assigment, or one day for each of three assignments. Grace days are counted as integers, i.e., if you are one hour late, that counts as one grace day. Once your grace days are all used, late assignments will receive a grade of zero.
Grading: We will use "face-to-face grading," i.e., you will be required to demonstrate that you understand why your program works. You must be able to explain every single line you wrote! You must get a passing grade in assignments to pass the course.
Each student should present a paper published at SIGGRAPH in the recent years. Every other (non-presenting) student should prepare, read the paper, and ask at least one question. Here's a list of papers to choose from, but feel free to suggest a different interesting paper, prior to my approval.
Please let me know which paper you choose to present by Oct 29th.
In-class paper presentation (10min + 4 min questions): Thu, Nov 23th
Choose any paper published in the recent 5 years in SIGGRAPH (see Ke-Sen Huang's website), propose a modification/improvement, implement, present. Your grade for the project will be 80% for implementation (marked at face-to-face grading), and 20% for the final presentation.
Important dates:
Project proposal: Oct 20th 25th by midnight (1 page, Piazza private post)
Final presentation: Dec 7th, in class (Divide the total available time, i.e., 100 minutes, by the number of students and subtract 1 min for questions)
Coding: Unless you chose a paper that can be easily done in Matlab or Python, I strongly recommend coding in C++ using libigl: it's easy to use and has a very nice set of tutorials. Clearly, if you're using libigl, you can't implement something that is already implemented in the library.
There is no official textbook for the course, but a lot of material is covered in Polygon Mesh Processing by Botsch et al. More reading materials will appear here as we go.
The course is based on similar courses by Justin Solomon (MIT) and Alla Sheffer (UBC). Many slides are derived from their slides.