CPSC 535P Digital Humans

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 models of real humans based on measurements, and on numerical simulation of human body models and clothing using finite element methods.

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. Anthropometry. 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 13:30-15:00 in DMP 201.
2022W Term 1, classes start September 6, 2022 and end December 7, 2022.

Discussions: We will use Canvas for most communications related to the course.

Course Work

A major change this year is that there will be less seminar-style reading of research papers, and more 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 traditional kinematic (skeletal) animation of the human body. Assignment 2 will require implementing a simple physics-based cloth simulator. Code for representing meshes and visualizing meshes in 3D 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)


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.