By request, here are the slides from our course wrap up. Much of this material was for “your eyes only” (and has been omitted), but you can find the list of video links and readings I shared in class.

# Month: December 2017

## Finals Week Office Hours + TA Evaluations

Since the final assignment is due during finals week, each instructor/TA will hold office hours next week, but they will be different from the normal schedule.

- Josh will have office hours from 4:30 PM – 6:00 PM on Monday, December 11, outside Smith 232.
- Keenan will have office hours from 5:00 PM – 6:30 PM on Tuesday, December 12, in Smith 217.
- Rohan will have office hours from 4:30 PM – 6:00 PM on Thursday, December 14, outside Smith 232.

If you would like to come to office hours but can’t due to finals, please let us know and we’ll try to work out some other way to help.

The website for students to evaluate TAs is now live. If you’ve had substantial interaction with Rohan and/or me, please take the time to fill it out. 🙂

## Reading: Geodesic Distance and the Heat Method

For the final reading, we will take a look at the paper *“The Heat Method for Distance Computation”*, by Crane, Weischedel, and Wardetzky. Note that **all students** should do this reading, even if you’ve already completed four written/coding assignments. The hand-in instructions are the same as for all previous reading assignments; the reading is due on **Thursday, December 14th**.

## Assignment 5 (Coding): Geodesic Distance

For the coding portion of this assignment, you will implement the *heat method*, which is an algorithm for computing geodesic distance on curved surfaces. All of the details you need for implementation are described in Section 3 of the paper, up through and including Section 3.2. Note that you need only be concerned with the case of **triangle meshes** (not polygon meshes or point clouds); pay close attention to the paragraph labeled “Choice of Timestep.”

Please implement the following routines in:

`projects/geodesic-distances/heat-method.js`:`constructor``computeVectorField``computeDivergence``compute`

**Notes**

- Refer to sections 3.2 of the paper for discretizations of Algorithm 1 (page 3).
- Your solution should implement zero neumann boundary conditions but feel free to tryout other Dirichlet and Neumann boundary conditions on your own.

**Submission Instructions**

Please rename your `heat-method.js` file to `heat-method.txt` and put it in a **single zip file** called solution.zip. This file **and** your solution to the written exercises should be submitted together in a **single email** to Geometry.Collective@gmail.com with the subject line **DDG17A5**.

## Assignment 5 (Written): Geodesic Distance

Here’s the writeup for your final assignment, which is due on **Thursday, December 14th**. This time, we’re taking off the “training wheels” and having you read a real paper, rather than course notes. Why? Because you’re ready for it! At this point you have all the fundamental knowledge you need to go out into the broader literature and start implementing all sorts of algorithms that are built on top of ideas from differential geometry. In fact, this particular algorithm is not much of a departure from things you’ve done already: solving simple equations involving the Laplacian on triangle meshes. As discussed in our lecture on the Laplacian, you’ll find many algorithms in digital geometry processing that have this flavor: compute some basic data (e.g., using a local formula at each vertex), solve a Laplace-like equation, compute some more basic data, and so on.

Your main references for this assignment will be:

- this video, which gives a brief (18-minute) overview of the algorithm, and
- this paper, which explains the algorithm in detail.

Written exercises for this assignment are found below.

## Assignment 5 Notes

Later this week, assignment 5 will be released. This will be the last assignment of the course, and it will be due during finals week (Thursday, December 14). Whether this assignment is required depends on how many assignments you have already done:

1) If you have done all of assignments 1-4, assignment 5 is *not* required. You can submit assignment 5 for extra credit.

2) If you skipped one of the earlier assignments, then assignment 5 is required.

Please let us know if you have any questions.