CS4621 Computer Graphics Practicum
Cornell University
M 12:20pm - 1:10pm, Gates G01
Instructor: Steve Marschner
Staff
Graduate TAs
Joy Zhang (CS4621 head TA)
Schedule
Disclaimer: This schedule is tentative. It might be changed in the future.
Credit: The lecture notes are primarily written by former Pramook Khungurn, with additions by Eston Schweickart, as well as our current course staff.
Assignments
Final Project
You will be asked to create a complex application that shows off the material that you have learned throughout the practicum. You will work in groups of 3 to 5 people. The application is left fairly open-ended, but we will provide ideas and feedback to guide you.
More details about the final project are available here.
About CS 4621
According to the Cornell Class Roster, the course description of CS 4621 reads:
Provides CS 4620 students with hands-on experience in computer graphics programming on modern graphics hardware. A semester-long project involves building a substantial interactive 3D system. The course uses Java and OpenGL for code development.
The description is mostly accurate. However, the course this semester is using somewhat different tools so a more precise version is:
Provides CS 4620 students with hands-on experience in computer graphics programming on modern graphics hardware. Asemester-longhalf-semester-long project involves building a substantial interactive3Dcomputer graphics system. The course usesJava and OpenGLJavascript and WebGL for code development.
While Java is a practical language for graphics programming, we believe that creating graphics systems for the web with Javascript and WebGL is a skill with a much wider audience because of the ease of deployment and the importance of mobile devices.
Accordingly, the practicum is divided into two halves. In the first half (the first 7 weeks or so), we will use the class time to teach you how to use WebGL to create interactive graphics applications. There will be individual programming assignments to get you familiarized with the API. In the second half, you and a number of teammates will plan and execute a final project, which is a substantive computer graphics system written using Javascript and WebGL. The system can be 3D, but it does not have to be.
One aim of the course is to give you experience with software engineering. You should come out of the course having designed and implemented computer graphics systems by yourself with minimal help from framework code implemented by other people. You may discover that this can be a tedious and error-prone process. A competent software engineer, though, must be able to create abstractions that reduce tedium and error. In order to provide you with opportunities to grow as a software engineer, we will organize the assigments and the final project as follows:
- For all assigments, we will not give you any framework or starter code. You have to code your submission from scratch. However, you may learn from example code that we provide in lectures.
- For your final project, you are not allowed to use any libraries or frameworks that implement computer-graphics-related aspects of your project. This means that you cannot use any 2D or 3D graphics/game engines as a component of your project. Generic Javascript libraries are generally OK, but please consult with the course staff on what libraries you want to use.
With all that said, we have hope you have fun with the course!