## Reading 3: Exterior Algebra and k-Forms (due 2/7)

Your next reading assignment will help you review the concepts we’ve been discussing in class: describing “little volumes” or $k$-vectors using the wedge product and the Hodge star, and measuring these volumes using “dual” volumes called $k$-forms. These objects will ultimately let us integrate quantities over curved domains, which will also be our main tool for turning smooth equations from geometry and physics into discrete equations that we can actually solve on a computer.

The reading is Chapter 4, “A Quick and Dirty Introduction to Exterior Calculus”, up through section 4.5.1 (pages 45–65). It will be due Thursday, February 7 at 10am Eastern time. See the assignments page for handin instructions.

Your next homework will give you some hands-on practice with differential forms; just take this time to get familiar with the basic concepts.

## Office Hours + Homework Typo

I will hold office hours tomorrow (Friday Feb. 1) in the Smith Hall 2nd floor open space from 3pm to 4pm. Next week, since the homework is due on Thursday, I will hold office hours on Tuesday from 3pm to 4pm in the same place. After that, I will go back to having office hours on Fridays.

Sorry for the short notice. If these times don’t work for you, feel free to email me and we can arrange to meet another time.

Also, somebody pointed out a typo in the coding assignment during recitation – the vertex-edge and edge-face adjacency matrices should be sparse matrices, not dense like it says in the comments/documentation.

## Slides—$k$-Forms

Today we continue our journey toward building up (discrete) exterior calculus by talking about how to measure little k-dimensional volumes. Just like rulers measure length, and cups measure volume, k-forms will be used to take measurements of the little k-dimensional volumes or k-vectors that we built up using exterior algebra in our previous lecture. Such measurements will ultimately allow us to talk about integration over curved spaces; in the discrete setting, these measurements will be the basic data we associate with the elements of mesh.

## Recitation

We will have a recitation on Tuesday at 4:30 in Gates 4102 to go over the Javascript framework that we use in this class. I will review the halfedge data structure, and I’ll go over some examples of using our framework. I will also talk about sparse matrices and solving linear systems of equations.

Recitation Slides

## Slides—Exterior Algebra

Today’s lecture will cover one of the basic tools we’ll use throughout the rest of the course: exterior algebra. The basic idea is to add a couple new operations to our usual list of vector operations (dot product, cross product, etc.) that make it easy to talk about volumes rather than just vectors. If you felt ok working with things like the cross product and the determinant in your linear algebra/vector calculus courses, this shouldn’t be too big of a leap. (If not, could be a good moment for a review!)

## Assignment 0 (Written): Combinatorial Surfaces — due 2/7

For the written part of your first homework you will do some exercises that will help familiarize you with basic descriptions and representations of combinatorial surfaces (simplicial surfaces, adjacency matrices, halfedge meshes), which will help prepare you to work with such surfaces as we continue through the course. (If any of this stuff seems abstract right now, don’t worry: we’ll use it over and over again to implement “real” algorithms starting in just a couple weeks!)

You must complete 8 out of 15 exercises in the Written Exercises section of Chapter 2 of the course notes. You may choose any set of 8 exercises you like, but if you do more than 8, please mark clearly on your submission which ones you would like us to grade.

The assignment is due on February 7, 2019 at 5:59:59pm Eastern (not at midnight!). Further hand-in instructions can be found on this page.

## Assignment 0 (Coding): Combinatorial Surfaces — due 2/7

For the coding portion of your first assignment, you will implement some operations on simplicial complexes which were discussed in class and in Chapter 2 of the course notes. Once implemented, you will be able to select simplices and apply these operations to them by clicking the appropriate buttons in the viewer (shown above).

Getting Started

• Please download or clone the files in this repository. It contains a fast and flexible framework for 3D geometry processing implemented in Javascript. Over the course of the semester, you will implement all of your coding assignments here.
• For this assignment, you will need to implement the following routines in projects/simplicial-complex-operators/simplicial-complex-operators.js:
• assignElementIndices
• buildVertexVector
• buildEdgeVector
• buildFaceVector
• star
• closure
• isComplex
• isPureComplex
• boundary

Notes

• This assignment comes with a viewer projects/simplicial-complex-operators/index.html which lets you apply your operators to simplices of meshes and visualize the results.
• Selecting simplices will not work until you fill in the assignElementIndices function.
• The assignment also comes with a test script tests/simplicial-complex-operators/text.html which you can use to verify the correctness of your operators.
• The code framework is implemented in Javascript, which means no compilation or installation is necessary on any platform. You can simply get started by opening the index.html file in projects/discrete-exterior-calculus/ in a web browser. We recommend using Chrome or Firefox. Safari has poor WebGL performance.
• If you do not have prior experience with Javascript, do not worry! You should be able to get a handle on Javascript syntax by reading through some of the code in the framework (a good place to start might be core/geometry.js). The framework also contains extensive documentation (see docs/index.html).
• All browsers come with tools for debugging (for instance the JavaScript Console in Chrome).

Submission Instructions

Please rename your simplicial-complex-operators.js file to simplicial-complex-operators.txt and submit it in a zip file called solution.zip to Geometry.Collective@gmail.com.

## Reading 2: Combinatorial Surfaces (Due 1/29)

Your next reading will take a dive into purely combinatorial descriptions of surfaces, i.e., those that capture connectivity, but not geometry.  These descriptions and data structures will provide the foundation for all the geometry and algorithms we’ll build up in this class.  (The reading also provides the essential background for your first written and coding assignments!)

The reading is Chapter 2, pages 7–20 of our course notes, which can always be accessed from the link above.

Your short 2-3 sentence summary is due by 10am Eastern on January 29, 2019.  Handin instructions can be found on the assignment page.

## Reading 1: Overview of DDG (Due 1/22)

Your first reading assignment will be to read an overview article on Discrete Differential Geometry. Since we know we have a diverse mix of participants in the class, you have several options (pick one):

1. (pages 1–3) Crane & Wardetzky, “A Glimpse into Discrete Differential Geometry”.