This course covers recent advances in building digital representations of humans for a variety of applications, such as product design, character animation, and medicine. The focus is on building realistic computational models of real humans interacting with real objects, like clothing. This is year we will specifically focus on differentiable computational models to support machine learning and accurate real-time predictions. We will use state-of-the-art software frameworks (e.g., NVIDIA warp) for high performance computing for some assignments. Basic knowledge of Python is required.
Topics are organized into 6 modules, building up levels of realism in digital human models. The focus is on computational models, but we will also learn basic biomechanics of real human bodies.
(1) Introduction. Review of background for computing with 3D objects, in the simplest setting. Geometry, kinematics, dynamics, and numerical integration.
(2) Human Shape. 3D scanning. 3D Meshes. Registration.
(3) Human Motion. Kinematic representations. Skeletons: real and animated. Motion capture.
(4) Clothing. A first look at simulating physics. Hyperelasticity. Finite element models.
(5) Soft Tissue Simulation. Contact. Eulerian and Lagrangian discretizations.
(6) The rest of the story. Discuss papers based on student interest. Examples: Machine Learning applied to any of the above. Neural control of movement.
Course Organization
Instructor: Dinesh K. Pai, Computer Science, UBC. Office hours TBD.
Lectures: MW 3:30-5:00pm in DMP 101.
2024W Term 1, classes start September 3, 2024 and end December 4, 2024.
Discussions: We will use Canvas for most communications related to the course.
Course Work
A major change this year is the emphasis on understanding fundamentals and hands-on learning with two programming assignments.
(1) Term project (50%): Typically the project involves implementing or extending a published paper, or a literature review. There is considerable flexibility in choosing the term project to match student interests, as long as the project is closely related to digital humans. Students may work individually or in small groups. Literature reviews must be done individually. Students are required to submit a 1-page proposal (10%), a 2-page progress report (10%), a final report (25%), and give a short in class presentation of their results (5%).
(2) Two programming assignments using Python (40%): Assignment 1 will be on kinematic (skeletal) animation of the human body. Assignment 2 will require implementing a simple but realistic physics-based cloth simulator using finite element methods. Starter code will be provided.
(3) Class participation (10%): Each student will present at least 1 paper in class (5/10); students will choose from a list of relevant papers for each module announced in advance. Students are also expected to contribute to class discussions, write mini-reviews, etc. (5/10)
Prerequisites
The course has been redesigned to make it more accessible to beginning graduate students.
Advanced undergraduate students are also welcome! Check out the procedure for registering in grad courses.
In addition to having a passion for learning about digital human models, students are expected to have excelled in one or more undergraduate courses in these areas:
(1) 3D geometry (e.g., computer graphics, computer vision, or robotics).
(2) Scientific computing (e.g., numerical linear algebra, machine learning, or other courses in applied mathematics).
The term projects will require good software engineering skills to implement a published paper.
If you are unsure of your preparation, please contact the instructor.