CMSC 23700: Introduction to Computer Graphics
The course provides an introduction to computer graphics, covering fundamental concepts and techniques including: rasterization, sampling, image/signal processing basics, convolutions, coordinate spaces, transformations, camera viewing, 3D transformations, ray tracing, 3D processing, parameterization, animation/deformations, and more. Assignments will be in Python.
Logistics
- Canvas
- Course Meetings: Tuesday & Thursday, 3:30 - 4:50pm (JCL 011)
- Lab Meetings:
- Monday 4:30pm–5:50pm (CSIL2)
- Monday 6:00pm–7:20pm (CSIL1/CSIL2)
- Course Communication: all outside-of-class-meeting course communication will occur on the UChicago Intro to Computer Graphics Slack
- Office hours:
- Dale Thursday 2:00-3:00 (JCL 207)
- Isaac Wednesday 3:00-4:00PM (JCL 207)
- Rana Tuesday 5:00-6:00PM (JCL 369)
Grading
- 15% Assignment 1: Intro to SVG and 2D Rasterization
- 15% Assignment 2: 3D Rasterization and Camera Viewpoint Geometry
- 15% Assignment 3: Mesh Data Structures
- 15% Assignment 4: Skinning and Rigging
- 35% Final Project: Animation-Off
- 5% Class participation / attendance
Late assignments. You have a "late bank" of 72 hours that you may use throughout the quarter on any of the assignments. After 3 days (or your "late bank" is empty) the assignment will no longer be accepted. Assignments are given in advance with enough notice, so please plan accordingly.
Academic Honesty. All assignments will be individual. Do not discuss or share your solutions/code with other students, don't post solutions online and do not copy from existing code bases online. We run an auto-grader in this course which has a sophisticated plagiarism detector. This class adheres to the same policies outlined in CMSC 12100.
Course Schedule
Week | Date | Topic | Materials |
---|---|---|---|
1 | Tues March 21 | Intro & Motivation | slides |
Thurs March 23 | Triangles & Rasterization | slides | |
2 | Tues March 27 | Coordinate Spaces & Transformations | slides |
Thurs March 31 | 3D Rotations | slides | |
3 | Tues Apr 4 | Textures | slides |
Thur Apr 6 | Depth & Transparency | slides | |
4 | Tues Apr 11 | Intro to Geometry | slides |
Thur Apr 13 | Meshes & Half Edge Data Structure | slides | |
5 | Tues Apr 18 | Geometry Processing | slides |
Thur Apr 20 | Geometric Queries | slides | |
6 | Tues Apr 25 | Intro to Animation | slides |
Thurs Apr 27 | Conformal Parameterization (Richard) | slides |
Assignment Schedule
Assignment | Release | Due | Labs |
---|---|---|---|
1 | Thurs March 23 | Fri March 31 | Lab 2 |
2 | Fri March 31 | Wed April 12 | Lab 3 & 4 |
3 | Thurs April 13 | Sat April 29 | Lab 5 & 6 |
Final project (part A) | Sun Apr 30 | Sun May 7 | Lab 7 |
4 | TBA | TBA | Lab 8 |
Final project | TBA | ~Wed May 20 | Lab 9 |
Useful Resources
There is no required textbook, though the following may provide good supplementary material:
- Fundamentals of Computer Graphics. Steve Marschner and Pete Shirley 2021
Instructional Team
Rana Hanocka | Dale Decatur | Isaac Berman | Nic Perez | Eric Chang |