San José State University
College of Science / Department of Computer Science
CS-116B, Computer Graphics Algorithms, Section 1, Spring 2017

Course and Contact Information

Instructor: Robert Bruce
Office Location: Duncan Hall, DH-282
Telephone: (707) 483-9340
Email: Robert.Bruce@sjsu.edu
Office Hours: Mondays and Wednesdays 8pm-9pm, or by appointment
Class Days/Time: Monday and Wednesday, 3PM-4:15PM
Classroom: Science, SCI-311
Prerequisites: CS 116A (with a grade of "C-" or better in each) or instructor consent.

Course Description

In-depth discussion of algorithms and techniques used in computer graphics and their implementation. Topics include: animation, fractals, anti-aliasing, fill algorithms, visible surface algorithms, color and shading, ray tracing, radiosity and texture maps. Substantial programming required.

Learning Outcomes

Upon successful completion of this course, students will be able to:

  • SLO 1 Create a physics engine based on Newton's three laws of motion.
  • SLO 2 Apply vector kinematics to a particle system for soft body dynamics.
  • SLO 3 Apply vector mathematics to compute the surface normal for light reflection.
  • SLO 4 Apply the Mass Spring Model to simulate cloth.
  • SLO 5 Apply the Marching Squares algorithm to create two-dimensional meta-balls.

Required Texts/Readings

Textbook

Physics for game developers (2nd Edition) by David M. Bourg and Bryan Bywalec. This book is available electronically from the SJSU King Library at http://discover.sjlibrary.org/iii/encore_sjsu/record/C__Rb5239694. A copy of this book is available on course reserves for two-hour checkout from the SJSU King Library. Please visit the King library circulation desk to check out this book.

Other Readings

Computer Graphics with OpenGL (4th Edition) by Donald Hearn, M. Pauline Baker, and Warren R. Carithers. ISBN 0-13-605358-0. A copy of this book is available on course reserves for two-hour checkout from the SJSU King Library. Please visit the King library circulation desk to check out this book.

Deformation Constraints in a Mass-Spring Model to Describe Rigid Cloth Behavior by Xavier Provot. This electronic article is available from the Stanford university website at https://graphics.stanford.edu/courses/cs468-02-winter/Papers/Rigidcloth.pdf

Advanced Character Physics by Thomas Jakobsen. This electronic article is available from the Penn State university website at http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.206.4908&rep=rep1&type=pdf

Real time physics class notes by Matthias Müller, Jos Stam, Doug James, and Nils Thürey. This electronic document is available from author's website at http://matthias-mueller-fischer.ch/realtimephysics/coursenotes.pdf

Mass Spring Particle Systems by Stephen Spinks. This electronic document is available from the author's website at http://www.stephenspinks.com/documents/documentation.pdf

Marching cubes: A high resolution 3D surface construction algorithm by William E. Lorensen and Harvey E. Cline. This electronic article is available electronically through the ACM Digital library at https://login.libaccess.sjlibrary.org/login?qurl=http%3a%2f%2fdx.doi.org%2f10.1145%2f37401.37422%3fnosfx%3dy

Other equipment / material requirements

You will be provided with a 120GB solid state drive with a USB3.1 interface. This is a blank drive. I will provide you with a USB flash drive to install Linux Mint on your computer using the 120GB solid state drive as a target drive. This course has no service-learning components.

Course Requirements and Assignments

SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/S12-3.pdf.

There are five programming assignments in this course. The programming assignments are designed as building blocks which lead to a culminating final project: a particle-based soft-body simulation system. Detailed instructions and specifications for each programming assignment will be posted to my SJSU faculty webpages at http://www.cs.sjsu.edu/~bruce/ with adequate time for students to complete each assignment by the assignment deadline. Students are strongly encouraged to ask the instructor for clarification on each programming assignment specification.

Note that University policy F69-24 at http://www.sjsu.edu/senate/docs/F69-24.pdf states that "Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading."

Grading Policy

Incomplete assignments

Points will be deducted for incomplete or partially working solutions.

Late assignments

Programming assignments submitted after their specified due date will be considered late and subject to minimally 50% loss in points (additional points will be deducted for incomplete projects as noted above).

Makeup Exams

Exams must be your own work. Makeup exams will only be given in extraordinary circumstances with instructor approval; instructor MUST be notified in advance.

Grade breakdown

Assignment or Exam Point value
Programming Project 1: Marching Squares 10 points
Programming Project 2: Particle explosion simulation 10 points
Programming Project 3: Rope simulation with gravity and collision detection 10 points
Programming Project 4: Cloth simulation with gravity 15 points
Programming Project 5: Cloth simulation with gravity, wind, and collision detection 25 points
Midterm Exam 15 points
Final Exam 15 points

TOTAL: 100 possible points

Grading Scale:

Percent range Grade
97% to 100% inclusive A+
93% to 96% inclusive A
90% to 92% inclusive A-
87% to 89% inclusive B+
83% to 86% inclusive B
80% to 82% inclusive B-
77% to 79% inclusive C+
73% to 76% inclusive C
70% to 72% inclusive C-
67% to 69% inclusive D+
63% to 66% inclusive D
60% to 62% inclusive D-
Below 60% F

Note that "All students have the right, within a reasonable time, to know their academic scores, to review their grade-dependent work, and to be provided with explanations for the determination of their course grades." See University Policy F13-1 at http://www.sjsu.edu/senate/docs/F13-1.pdf for more details.

Classroom Protocol

Regular class attendance is highly recommended. Students are responsible for knowing all materials covered through in-class lectures and assigned readings. Please be mindful of fellow students and the instructor by not talking on mobile phones during instruction. Students are expected to leave the class quietly in the event they must use their mobile phones.

University Policies

Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on Office of Graduate and Undergraduate Programs' Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/

CS-116B / Computer Graphics Algorithms, Spring 2017, Course Schedule

Course Schedule

Week Date Topics, Readings, Assignments, Deadlines
1 Monday,
January 30
Introduction: Course overview and objectives
1 Wednesday,
February 1
Lecture: Marching cubes algorithm
Read: Marching cubes: A high resolution 3D surface construction algorithm, pp. 163-169
2 Monday,
February 6
Lecture: Marching squares algorithm
2 Wednesday,
February 8
Lecture: Building a Physics Engine
Read: Physics for game developers, pp. 281-289
3 Monday,
February 13
Lecture: Vector operations
Read: Physics for game developers, pp. 495-505
3 Wednesday,
February 15
Lecture: A review of classical mechanics in physics
Physics for game developers, pp. 3-33
4 Monday,
February 20
Lecture: Kinematics
Read: Physics for game developers, pp. 35-69
DUE: Programming Project 1
4 Wednesday,
February 22
Lecture: Force
Read: Physics for game developers, pp. 71-83
5 Monday,
February 27
Lecture: Real-time simulations
Read: Physics for game developers, pp. 143-159
5 Wednesday,
March 1
Lecture: Particles
Read: Physics for game developers, pp. 161-187
6 Monday,
March 6
Lecture: Explosions
Read: Physics for game developers, pp. 353-368
6 Wednesday,
March 8
Lecture: Connecting objects
Read: Physics for game developers, pp. 255-279
7 Monday,
March 13
Lecture: Mass Spring Model
Read: Deformation Constraints in a Mass-Spring Model to Describe Rigid Cloth Behavior, pp. 1-8
7 Wednesday,
March 15
Lecture: Runge-Kutta Integration
Read: Advanced Character Physics, pp. 1-19
8 Monday,
March 20
Lecture: Verlet integration simulation
DUE: Programming Project 2
8 Wednesday,
March 22
MIDTERM EXAM
  Monday,
March 27
SPRING BREAK: NO CLASS TODAY
  Wednesday,
March 29
SPRING BREAK: NO CLASS TODAY
9 Monday,
April 3
Lecture: Newton-Raphson Solver
9 Wednesday,
April 5
Lecture: Collision detection
Read: Physics for game developers, pp. 205-225
10 Monday,
April 10
Lecture: Rigid body simulation
Read: Real Time Physics Class Notes, pp. 45-52
10 Wednesday,
April 12
Lecture: Volumetric mesh creation using Delaunay tetrahedralization
Read: Real Time Physics Class Notes, Section 3.6 (pp. 17-18)
DUE: Programming Project 3
11 Monday,
April 17
Lecture topic: To Be Determined
11 Wednesday,
April 19
Lecture topic: To Be Determined
12 Monday,
April 24
Lecture topic: To Be Determined
12 Wednesday,
April 26
Lecture topic: To Be Determined
13 Monday,
May 1
Lecture topic: To Be Determined
DUE: Programming Project 4
13 Wednesday,
May 3
Lecture topic: To Be Determined
14 Monday,
May 8
Lecture topic: To Be Determined
14 Wednesday,
May 10
Lecture topic: To Be Determined
15 Monday,
May 15
Final Exam Review
FINAL EXAM Wednesday
May 24
FINAL EXAM at 12:15PM in SCI-311
DUE: Programming Project 5