This course introduces real-time hardware-accelerated graphics programming suitable for game development, visual effects, and interactive projects. Emphasis will be placed on shader programming and developing custom effects using game engines and multimedia software. We will read from recent journal articles and online publications, and also survey the use of visual effects in films, interactive media, VR experiences, and video games. In addition to the completion of shorter assignments throughout the semester, students will be responsible for a project that involves the creation, demonstration, and documentation of a real-time graphics technique.
Computational Media Research— the second course in the Computational Media core graduate sequence— explores computational media research strategies, and investigates the ways in which successful computational media projects are defined, implemented, and disseminated, with special attention to how interdisciplinary concerns can be meaningfully addressed. Further, it considers the expressive and authorial affordances of different system architecture approaches. Students will read widely from seminal and contemporary writings on computational media. Two smaller projects and a larger group project invite students to articulate and implement interdisciplinary research strategies for contemporary topics in deep learning, procedural content generation, and humanities computing.
The burgeoning field of Immersive Analytics investigates pragmatic opportunities at the intersections of virtual reality and data science. This graduate seminar invites students to investigate the challenges and possibilities evoked by the two terms “immersion” and “analytics.” How can we utilize VR, AR, and MR technologies to create more useful environments for analyzing datasets? Does a heightened sense of immersion have an affect on how we think and assimilate information? How do virtual environments enhance our ability to focus, to perceive, to collaborate, and to reason? What new visual analytics techniques can we invent to take advantage of these environments? Students will read widely from seminal and contemporary writings on virtual reality, interactive narrative, network science, and information visualization.
This course explores contemporary techniques for visualizing the ubiquitous complex, dynamic systems— biological, socioeconomic, environmental, political, interpersonal, etc— that govern, or perhaps define, our lives. Through creating interactive visualizations that effectively model these systems, that facilitate explorations of the ways in which these systems interact with other, and that expose or emphasize salient aspects of their operations, we can begin to think more deeply about how to make sense of them and how to predict their behaviors. The course will be programming intensive. Students will be introduced to D3.js for data visualization and Three.js for real-time graphics rendering, and will use these JavaScript libraries to complete a series of short assignments as well as a more in-depth final project. Weekly readings will include seminal and recent articles on information visualization, immersive analytics, and network science.
This course explores the creative application of new media technologies, including graphics, visualization, audio, machine learning, and interaction technologies. We will focus especially on the use of generative models with which to simulate, accentuate, and ponder the complex systems in our lives. New media artists have traditionally been involved in exploring the creative, cybernetic potentials of new technologies and their cultural ramifications, using creative outputs to question how our awareness and thinking change when we introduce technology into our lives. We are currently in the midst of an explosion of new ideas related to automatic and interactive information processing. Advances in data mining and machine learning are rapidly finding their way into all corners of our lives. In addition to better understanding the nature of these advances (and learning how to make use of them), we will explore how to think critically about their transformative power. We specifically will focus on a class of machine learning algorithms that learn generative models. Students will become familiar with the TensorFlow library for machine intelligence, as well as any other software tools and languages that will help express and document projects (i.e., video software, Matlab, javascript frameworks, etc). In addition to the completion of weekly readings and assignments, students will be responsible for a series of projects that involve the creation, demonstration, and documentation of a series of three projects. Coursework will be organized around the development of these projects, to be completed individually or in small groups.
Data visualization facilitates reasoning effectively about information, allowing users to formulate and test hypotheses, to find patterns and meaning in data, and to easily explore the contours of a data collection from different perspectives and at varying scales. This course will introduce students to the theory and practice of both information visualization (representations of abstract data sets) and visual analytics (analytical reasoning supported by visual interfaces). We will explore fundamental and contemporary topics in visualization, including: the use of visual modalities to represent different types of data; emphasizing salient data through the design and implementation of effective visual metaphors; how to create compelling narratives from data; how perception informs information design; handling uncertainty and ambiguity; and the representation of spatiotemporal data. In particular, we will focus on exploring interaction techniques to filter, sort, query, navigate, arrange, and analyze data. Students will work with real-world data sets, both static and streaming, and will learn to use contemporary programming frameworks for information visualization. We will read widely from both seminal work in the field of visualization as well as from recent papers from top-tier conferences (VIS, EuroVis, CHI) and journals (Transactions on Visualization and Computer Graphics, Computer Graphics Forum). In addition to the completion of weekly assignments, students will be responsible for a series of projects that involve the creation, demonstration, and documentation of novel interactive visualization techniques.
Creative Coding 1 investigates how contemporary technologies can inspire novel forms of art-making. Media artists and designers have been utilizing computers for innovative creative expression since the late 1960s; the recent proliferation of low-cost consumer grade devices with advanced sensing, display, and computing capabilities, such as smart phones, AR and VR headsets, IoT-enabled devices, drones, 3D printers, and microcontroller kits, makes possible a new era of creative exploration. The field of “creative coding” emphasizes the goal of expression, rather than function (although these goals are often intertwined) and creative coders combine computational skill with creative acumen. Students will learn current techniques for creating interactive multimedia software; by the end of the course students will have a better understanding of the challenges and opportunities that emerge when using new technologies for expressive purposes. The course will capitalize on the diverse backgrounds of the students in the class (design + computer science) and three required projects will be collaboratively developed in small teams. Each of these projects provides an introduction to creative coding programming paradigms for the web, for audio composition, and for virtual reality platforms (using Javascript, Max, and Unity3D, respectively). To contextualize these projects, we will read chapters of seminal texts in multimedia and recent articles from media arts conference proceedings.
This course investigates 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.
This graduate seminar is a forum for exploring advanced topics in information visualization and visual analytics. A primary goal of data visualization is to help people reason effectively about information, allowing them to formulate and test hypotheses, to find patterns and meaning in the data, and to easily explore the contours of data sets from different perspectives and at varying scales. This course will introduce students to the theory and practice of both information visualization (representations of abstract data sets) and scientific visualization (representations of empirically-gathered scientific data sets). We will explore fundamental and contemporary topics in visualization, including: the use of visual modalities to represent different types of data; emphasizing salient data through the design and implementation of effective visual metaphors; how to create compelling narratives from data; how perception informs information design; handling uncertainty and ambiguity; and the representation of temporal and spatial data. We will read widely from both seminal work in the field of visualization as well as from recent papers from top-tier conferences and journals (VIS, TVCG, CHI, SIGGRAPH, etc). In addition to the completion of weekly writing assignments, students will be responsible for three projects that involve the creation, demonstration, and documentation of novel interactive visualization techniques.
This course provides students with an introduction to the theory and practice of modern real-time graphics programming. Emphasis will be placed both on OpenGL programming (especially including GLSL shader programming) and foundational concepts related to a variety of computer graphics topics, including: 3D transformations, curves and surfaces, space partitioning, lighting, interpolation, and texturing, among others. In addition to completing shorter assignments throughout the semester, students will be responsible for a final project that involves the creation, demonstration, and documentation of a novel real-time graphics technique. This course is co-convened: Upper-level undergraduates and graduate students are encouraged to enroll. Graduate students will be expected to complete more substantial projects and will be given more in-depth reading assignments.