Algorithms and techniques for three-dimensional content creation are fundamental to several scientific and engineering fields: computer graphics, virtual reality, augmented reality, information visualization, computer-aided design, and architecture to name a few. 3D content creation is also becoming increasingly important in several other emerging applications where there is a growing interest in 3D models or/and animation, such as 3D printing, rapid prototyping, collaborative virtual environments, and digital entertainment.
The course will teach advanced topics in 3D geometric modeling, animation and physics-based simulation, which are all important components of content creation software. The course will start by covering the most commonly used digital representations of shapes, such as polygon meshes, point clouds, NURBS surfaces, and subdivision surfaces. Then it will cover algorithms for surface scanning, reconstruction, registration, differential geometry, re-meshing, smoothing, texturing, parameterization, and Laplacian surface editing. The course will proceed with algorithms for sketch-based modeling, assembly-based modeling and shape synthesis driven by semantics and natural language. Finally, the course will cover methods for character rigging and animation, physics-based simulation of rigid bodies, deformable solids and fluids.
Students will be asked to complete programming assignments related to physically based animation as well as shape modeling. There will be a final project that involves the implementation of a research idea related to 3D modeling and animation. There are no prerequisites for CMPSCI graduate students, although familiarity with computer graphics, linear algebra and ordinary differential equations is essential. For undergrads, the course has the following prerequisites: Introduction to Linear Algebra (Math 235, grade of A- or better), Introduction to Algorithms (CMPSCI 311, grade A- or better), Ordinary Differential Equations (Math 331, grade of B or better), and computer graphics (CMPSCI 473, grade of B or better). 3 credits.
This course counts as a CS Elective toward the CMPSCI major (BA/BS). 3 credits. It also belongs to the computer graphics, vision, robotics track.
Week 1: Introduction, course description, questionnaire
Week 2: Surface representations: polygon meshes, implicit surfaces
Week 3: Parametric representations of curves and surfaces, subdivision curves and surfaces
Week 4: Differential geomemetry of curves and surfaces
Week 5: Remeshing, surface parametrization, texturing
Week 6: Surface scanning and registration, surface reconstruction
Week 7: Geometric deformations, character animation
Week 8: Numerical integration of differential equations, mass-spring systems
Week 9: Rigid body dynamics
Week 10: Point-based animation of solids
Week 11: Topics in physics-based simulation / 3D modeling [paper presentations]
Week 12: Topics in physics-based simulation / 3D modeling [paper presentations]
Assignment 1: Differential geometry [15%]
Assignment 2: Laplacian surface smoothing and editing [15%]
Assignment 3: Numerical simulation engine for second order ODEs, Rigid Body simulator [20%]
Presentation (one paper) [10%]
Reaction reports and participation [10%]
Research project [30%]
Assignments require programming in Matlab and C++. Some assignments offer bonus marks. Plagiarism in any assignment results in an 'F' mark.