Final Project Gallery

Below you will find a few selected final projects from our course. Students were asked to pick a topic from differential geometry and explore the different ways in which it can be explained and understood form a discrete, computational perspective. Some students devised new algorithms, while others proved new results in DDG. Overall, it’s been a very fun and stimulating semester! Thanks to everyone who participated.

[Students: if you do not see your project below, but still would like it posted here, please send us an email!]

Mean and Principal Curvature Estimation from Noisy Point Cloud Data of Manifolds in \(\mathbb{R}^n\)
Yousuf Soliman


[Writeup] [Presentation] [Final Project] [Code]

Description: Data is often provided as a finite set of points embedded in Euclidean space. In many applications, we have reason to believe that these data points are generated from a distribution with support over a manifold, rather than from a distribution with support over all of \(\mathbb{R}^n\). In this paper, I will consider the problem of recovering the local curvature of an underlying manifold based on noisy point samples. I will then present an extension of integral invariants to submanifolds with arbitrary codimension as a methodology for inferring the curvature of point cloud data at different scales. Curvature is a widely used invariant feature in pattern classification and computer vision algorithms. Furthermore, understanding the curvature of the data gives one a better understanding of the local manifold geometry, which can then be used to better construct a sufficiently fine triangulation of the underlying manifold.

On the Conformal Maps of Triangle Linkages


[Writeup/Final Project] [Presentation]

Description: This project studies the nature of conformal maps, particularly in connection with discrete differential geometry. The discrete model we focus on is the triangular linkage geometry introduced by Konakovic et al. Abstractly, these linkages are equilateral triangles such that pairs of triangles meet at vertices and the triangles are connected in cycles of length six. In practice, such surfaces can be manufactured from flat “auxetic” (opening) materials with slits cut in them, providing many more degrees a freedom than ordinary developable (no-cut) surfaces. We present an overview of discretization of conformal geometry, both in the traditional Lagrangian element model as well as in the Crouzeix-Raviart element model. We describe how this theory connects to the geometry of triangular linkages, laying a foundation of discrete differential geometry for these structures. Furthermore, we propose a working definition of discrete conformal maps on triangular linkages, and prove some implications.

Heat Kernel Signature
Ye Han


[Writeup] [Presentation] [Final Project] [Code]

Description: I implement the computation of HKS by following the pipeline described by Sun et al, and apply it on several geometric models. The details involve computing the HKS of different feature vertices at different time step, comparing HKS of the same geometric models under isometric transformation, and comparing the HKS of different geometric models at the same scale. Examples showcase the multi scale property of HKS, where the chosen points are similar under local scale while the difference only appears at large time step.

Introduction to Spin Transformation and its Application on Shape Descriptor
Derek Liu


[Writeup] [Presentation] [Final Project]

Description: The topic of mapping shapes to different feature spaces is called shape descriptor design. The most common approach utilizes surface properties, such as curvature and geodesic distance, to construct shape descriptors. Another popular approach uses shape operators, such as Laplace-Beltrami operator to describe shape as a linear combination of basis functions. However, most descriptors were built heuristically and their performance is strongly task dependent. Which properties best represent a 3D shape? Bonnet proposed that mean curvature and metric should suffice to determine the surface generically. These two geometric objects are building blocks of conformal transformation and spin transformation in differential geometry. This article therefore aims to introduce spin transformations and their application as shape descriptors.

Final Presentation Schedule

The schedule of final project presentations can be found below. Note that we’re on a pretty tight schedule (with just one minute to switch between presenters), so please make sure to have your talk ready to go before the end of the preceding presentation. If possible, you should coordinate with other students in your session to run your presentation off the same computer. The classroom should have a VGA and HDMI hookup; if you do not have a laptop that you can use to run your presentation, and you can’t sort something out with a classmate, please contact Nick about possible alternatives.

The schedule was carefully and thoughtfully constructed by calling the RandomSample[] method in Mathematica. If you absolutely cannot present on this date, please let us know no later than Sunday evening so that we have time to negotiate a swap with one of the other students. (In this situation it is especially helpful if you can find a friend willing to make the swap!)

Tuesday, April 26

  • 12:00—Yu
  • 12:11—Kirov
  • 12:22—Liu
  • 12:33—Shearer
  • 12:44—Bern
  • 12:55—Li
  • 1:06—Brakensiek

Thursday, April 28

  • 12:00—Han
  • 12:11—Kaffine
  • 12:22—Daids
  • 12:33—Yuan
  • 12:44—Soliman
  • 12:55—Su

[If somehow you don’t see your name on this list, please let us know ASAP!]

Reading 8 — Exterior Calculus Part I


Time to get busy with exterior calculus. Very roughly speaking, exterior calculus is a “souped up” version of vector calculus that will let us do lots of interesting calculations on surfaces, both mathematically and computationally. This material is critical to the assignments we’ll do during the rest of the course; it is well-worth your time to understand it well! Your reading assignment for Thursday (not Tuesday) is to read the first half of Chapter 3 from our course notes, namely Sections 3.1–3.3 (pp. 23-35). We have also given you four mini-exercises below, which you should submit answers to either by email, or in-class if you prefer to do them on paper. These shouldn’t take more than a few minutes, and are mostly to confirm your own understanding; if you’re having trouble, please don’t hesitate to ask questions either here on the website or via email.

  1. Write the column vector \(u = [\ 1\ 2\ 3\ ]^T\) and the row vector \(\alpha = [\ 4\ 5\ 6\ ]\) using the notation described for vectors and 1-forms (respectively) in Section 3.1.
  2. Using the same values of \(u\) and \(\alpha\), what is \(\alpha(u)\)?
  3. Bonus question: suppose that for vectors \(u,v \in \mathbb{R}^n\), we define the metric as \(g(u,v) := 2\langle u, v \rangle\) where \(\langle \cdot, \cdot \rangle\) is the usual Euclidean inner product, i.e., our metric \(g\) is simply a conformal rescaling of the Euclidean metric by a factor 2. Based on the comment immediately preceding Section 3.1.1., what do you think the 1-form \(u^\flat\) and the vector \(\alpha^\sharp\) should be (using the same values for \(u\) and \(\alpha\) as in the previous question)? You can work out the answer using matrices if you like, but try writing the final answer in terms of the basis vectors and 1-forms (as in the previous question).
  4. Letting \(\alpha := 2 dx + 3 dy + 4 dz\) and \(\beta := 5 dx + 6 dy + 7 dz\), calculate \(\alpha \wedge \beta\). (This time, no matrices allowed!)
  5. Letting \(\alpha := 8 dx \wedge 9 dy\), write out \(d\alpha \wedge d\alpha\), showing explicitly why it’s equal to zero.

To give a couple concrete examples of what these calculations look like: if \(u := \tfrac{\partial}{\partial x} – 2 \tfrac{\partial}{\partial y}\), \(\alpha = dx – dy\), and \(\beta = 2 dx + dy\), then
\alpha(u) = dx(u) – dy(u) = dx(\tfrac{\partial}{\partial x} – 2 \tfrac{\partial}{\partial y}) – dy(\tfrac{\partial}{\partial x} – 2 \tfrac{\partial}{\partial y}) = 1 – (-2) = 3,
\alpha \wedge \beta = (dx-dy) \wedge (2dx + dy) = 2 dx \wedge dx + dx \wedge dy – 2 dy \wedge dx – dy \wedge dy = 0 + dx \wedge dy + 2 dx \wedge dy – 0 = 3 dx \wedge dy.

Submission: As usual, please send an email to and no later than 10:00 AM on Thursday, February 24th including the string DDGSpring2016 in your subject line.  Your email for readings should always include:

  1. a short (2-3 sentence) summary of what you read, and
  2. at least one question about something you found confusing / interesting / incomplete / not addressed.

Assignment 0

Part of your course grade is determined by participation, which can include both in-class participation as well as discussion here on the course webpage.  Therefore, your first assignment is to:

  1. create an account, and
  2. leave a comment on this post containing your favorite mathematical formula (see below).
To make things interesting, your comment should include a description of your favorite mathematical formula typeset in $\LaTeX$.  If you don’t know how to use $\LaTeX$ this is a great opportunity to learn — a very basic introduction can be found here.  (And if you don’t have a favorite mathematical formula, this is a great time to pick one!)

Welcome to 15-458 / 15-858B! (Spring 2016)

Welcome to the website for 15-458/858B.  Here you’ll find course notes, lecture slides, and homework (see links on the right).

If you are a student in the class, register now by clicking here!

We strongly prefer that you register using your CMU email, but in any case you must not register with an address at,,,,,, as email from these domains will be filtered out by the host.

A few things to note:

  • You will be subscribed to receive email notification about new posts, comments, etc.
  • You can ask questions by leaving a comment on a post.  If you’re apprehensive about asking questions in public, feel free to register under a pseudonym.
  • Otherwise, please associate a picture to your profile by registering your email address at—doing so will help us better recognize you in class!
  • You can include mathematical notation in your questions using standard $\LaTeX$ syntax.  For instance, when enclosed in a pair of dollar signs, an expression like dollar\int_M K dA = 2\pi\chidollar gets typeset as $\int_M K dA = 2\pi\chi$.
If you encounter any problems while trying to use the website, please contact the TA at