# Syllabus

Readings are provided for your reference where appropriate. For casual readers observing this site, some of the slide decks may seem a bit sketchy. This is because I intentionally leave blanks to be filled in on the board during lecture.

Lecture
Date

## Geometric Primitives and Shape Transformations

The course will start with an overview of some important mathematical concepts to get everyone on the same page. These are the basic building blocks that will be used again and again in the rest of the course. Towards the end of this unit, students will already know enough to tackle a very fun assignment on "sound rendering," or creating sound simulations that allow the user to "hear" what an environment modeled by virtual polygons sounds like as sound waves bounce around.
NOTE: In this unit there will be more mini assignments than in other units. Do not be alarmed, some of them are very short! This is just to make sure we all stay in lockstep during the fundamentals
1Thu 1/14/2016Course Sneak Preview, Equidecomposing PolygonsBackground knowledge assessmentSend Chris E-Mail With Office Hour Times
2Tue 1/19/2016Vectors, Dot Products, ProjectionsMini Assignment 1 Out (Geometric Primitives)
3Thu 1/21/2016Line Segment Intersection, Circumcenters, Delaunay Triangulation, JSONhttp://www.json.org/
Sun 1/24/2016Mini Assignment 1 Part 1 Due 11:55 PM
4Tue 1/26/2016Planes, Interior Point Testing, DualitySariel Har-Peled's Duality Notes (Advanced)
5Thu 1/28/2016Intro To Matrix Transformations[LENGYEL] Chapters 1-3, Translation/Rotation Demo
Fri 1/29/2016Mini Assignment 1 Part 2 Due 11:55 PM
6Tue 2/2/2016Normal Transformations, 3D Transformations, Euler AnglesEuler Angles Visualization App Mini Assignment 2 Out (Euler Angles Visualization)
7Thu 2/4/2016Image Sources for Specular Reflections, Convolution, Scene Graphsfunkhouser2003 (section 4.1.1), Borish1984, Liu2014, Interactive Convolution App
Mon 2/8/2016Mini Assignment 2 Due 11:55PM
8Tue 2/9/2016Gimbal Lock, Quaternions/SLERP, Scene Graphs ContinuedExcellent youtube video on gimbal lock, Houston, we have a problem,Quaternion Identity Proof,SLERP Visualization AppGroup Assignment 1 Out (Image Sources for Acoustic Simulations)
SIGGRAPH Student Volunteer Application Due (Optional)
9Thu 2/11/2016Quaternions Continued, Group Assignment 1 Practice

## Point Clouds: Shape Alignment And Shape Statistics

As an intro to 3D geometry representations, we will take a look at the point cloud data structure, which is the raw data format that comes back from 3D sensors such as the Kinect. The data structure is very simple, which makes this unit a perfect entry point into statistical techniques in the context of 3D shapes, including PCA, shape alignment, and shape descriptors. This section will culminate in an assignment called "Shape Google" in which students compete to create software to automatically recognize shapes, which will provide lots of practice with the math topics learned in the first unit, and which should be apt for those students interested in data analytics.
10Tue 2/16/2016Point Clouds Overview, Eigenvalues/Eigenvectors, Principal Component Analysispointclouds.org, Interactive Point Cloud Viewer, My Interactive 2D PCA Demo, Another Interactive PCA Demo, 4 Different Ways To Do PCA in Matlab, Robust PCA (Advanced)
11Thu 2/18/2016Group Assignment 1 Help, Procrustes Intro
Mon 2/22/2016Group Assignment 1 Part 1 Due
12Tue 2/23/2016SVD, Procrustes DistanceKabsch algorithm to solve orthogonal procrustes(Wikipedia), Wahba's Problem (Wikipedia), coutsias2004Begin Choosing Final Projects / Groups
13Thu 2/25/2016Finish Procrustes, Iterative Closest PointsChen_Medioni1991, Besl_McKay1992, [BRONSTEIN] Ch 6.2, Sparse Iterative Closest Points 2013 (Advanced)
Sat 2/27/2016Group Assignment 1 Hackathon
4PM - 10PM Gross Hall 330
14Tue 3/1/20163D Point Cloud Shape DescriptorsAnkerst99, Johnson99, Osada2002, Huang2010 (good overview)
Wed 3/2/2016Group Assignment 1 Final Deadline
15Thu 3/3/2016Shape Descriptor Rankings, High Dimensional Data Analysis, NumpyNumpy Code Examples
Fri 3/4/2016Mini Assignment 3 Out (Iterative Closest Points)
Sat 3/5/2016Submit Final Project Topic Choices
16Tue 3/8/2016Numpy Continued, Fourier Modes
17Thu 3/10/2016Midterm Exam
Sat 3/12/2016Mini Assignment 3 Due
Mon 3/14/2016Group Assignment 2 Out
--Tue 3/15/2016Spring BreakEnjoy!
--Thu 3/17/2016Spring BreakEnjoy!
18Tue 3/22/2016Phase Invariance, Circular/Spherical Functions, Spherical HarmonicsFunkhouser2003

## Surfaces, Topology, And Nonrigid Geometry

The class will now move onto the next level of complexity beyond point clouds to where points are connected together to form manifold surfaces. Students will get an introduction to topology in the context of 3D shapes, and an emphasis will be placed on separating out geometric and topological properties of shapes. After that, we will tackle "stretchy shapes," or nonrigid surfaces in 3D. In the grand finale of the course, we will learn how to gracefully apply nonrigid deformations to shapes with the Laplacian Mesh representation, and we will learn how to exploit this new flexibility to match shapes in different poses and to systematically break 3D shapes into smaller parts. We will also learn "isometry invariant" shape statistics that remain unchanged under nonrigid motions, such as a person moving their arms up and down. This unit will culminate in an assignment in which students design an interactive application to deform 3D shapes.
19Thu 3/24/2016Intro To Topology: The Euler Characteristic, Polytopes, Platonic Solids, Genus20 Proofs of Euler's Theorem (we did #4 in class)
20Tue 3/29/2016Topology Continued, Polygon Meshes Data StructuresBotsch07 ch 1-3
Wed 3/30/2016Group Assignment 2 Due
21Thu 3/31/2016Subdivision Surfaces And Implicit SurfacesZorin00, CurlessLevoy1996.pdf, LorensenCline (most highly cited paper in graphics!), Scipy Marching Squares, numpy marching cubes, Javascript Boolean Shape Operations
22Tue 4/5/2016Laplacian MeshesSorkine05 (Section 2), Sorkine04 (explains rotation estimation), Sorkine07 (as rigid as possible), COS 526 Fall 2010 Art Contest, Crane Discrete Differential Geometry