Subdivision schemes for geometric modelling: a hands-on tutorial

Subdivision is a great tool in graphics and geometry processing to get smooth curves and surfaces out of initial control polygons and control meshes.
In this tutorial we explore the mathematical basics, learn about the most important subdivision schemes, and implement them in Matlab.

Lecture I: Subdivision as a linear process
We start by introducing the basic concepts and notation for curve subdivision and learn how it can be seen
as an infinite linear refinement process of the initial data. This leads to the idea of the subdivision matrix and analysing the latter enables us to compute points on the limit curve.

Lecture II: The Laurent polynomial formalism
We then learn about the formalism of Laurent polynomials. This allows us to describe the subdivision process in an algebraic wayand helps to derive conditions
that guarantee the convergence of a scheme. Moreover, we derive conditions for the generation and the reproduction of polynomial limit functions.

Lecture III: Smoothness analysis
We further use the concept of Laurent polynomials to study the smoothness of the limit functions and also introduce the joint
spectral radius method for deriving lower and upper bounds on the Hölder regularity.

Lecture IV: Subdivision surfaces
Finally, we learn how to extend the idea of subdivision from curves to surfaces and study the most important schemes for triangle and quadrilateral meshes.