This course provides a forum for investigating advanced topics in contemporary computer graphics, with an emphasis on the creation of computational aesthetics projects. We will investigate current hardware-accelerated programming techniques using OpenGL and GLSL, as well as a range of tools that facilitate creating interactive graphics applications (such as WebGL, Three.js, and Unity3D). We will read widely from both seminal work in the fields of graphics and visualization as well as from recent papers from top-tier conferences and journals (TOG, SIGGRAPH, CG&A, TVCG, CHI, etc) and curated editions (GPU Pro, GPU Gems, ShaderX). In addition to the completion of weekly programming and writing assignments, students will be responsible for two projects that involve the creation, demonstration, and documentation of novel interactive graphics techniques. A particular focus of the course is on computational aesthetics, broadly defined to include novel image processing techniques, special effects for games and films, new media arts projects, and investigations into creative visual explorations of current computational topics, such as data mining, signal processing, machine learning, and natural language processing, among others.
Students should be of graduate standing with a strong interest in computer graphics. Students will be expected either to work on novel research related to fundamental topics in graphics or visualization, or to the application of contemporary graphics techniques to a topic in an area that they are already familar with, or both. A working knowledge of programming for 3D computer graphics is expected (e.g., OpenGL, three.js, Processing, VTK, Unity, etc). Finally, students should have completed CS 488 or a similar introductory graphics course (or be taking CS 488 concurrently). Exceptions to these prequisites can be made at the discretion of the instructor.
Research Journals Marco Cavallo Hoang Minh Huynh Nguyen Abeer Alsaiari Tomasz Rybiarczyk Kyle Almryde Paul Murray Igor Fortel Creative Projects Street view timelapse 3D city reconstruction Emphemeral bits Kinect-based audio-visual interaction Artistic 3D sculpture composition RF visualization Imagining Macondo A Web-based UI for designing 3D sound objects and virtual sonic environments Reas Processes 3D 3D Software Interpretation of Reas’s Processes Web audio API example code Chromatic fantasy code
Grading will be based on your contributions to discussions and critique sessions, the thoughtful and timely completion of programming assignments, and especially the creation, evaluation, and documentation of innovative computer graphics projects. All students are required to participate in one group project and to act as the lead for a project of their own choosing.
Research/project journal 15%
State-of-the-art (STAR) reports 16% One project as lead 30%
One project as assistant 15%
Discussion and critique sessions 9%
Short programming assignments 15%
Attendance is required. Any student missing more than three classes for any reason will not pass the course. You can use these absences as you like, for sick days, holidays, or special events observed by organized religions (for students who show affiliation with that particular religion), or those pre-approved by the UIC Dean of Students (or Dean's designee). No social media in class; no eating in class (gum or coffee is okay); no texting or phone calls in class.
Inspiration An Interview with Garry Winograd Sabrina Raaf’s Test People The Philosophy of Andy Warhol Inventing Abstraction 1910-1925 George Legrady’s Swarm Vision Lena Gieseke’s Guernica 3D Davis et al., “The Visual Microphone” Eulerian Video Magnification Christian Marclay‘s The Clock Graeme Brown‘s analysis of REM‘s Imitaion of Life