#gsd6483 is a course that introduces
participants
to
computational methods for the generation of discrete multi-dimensional media,
using
functional definitions.
Digital modeling techniques are at the core of most modern creative workflows in
visual
media, such as static 2D images, video animations, 3D models and digital
fabrication.
For instance, most prevailing paradigms in CAD modeling are based on the
explicit
definition of geometrical entities in model space (location and size of 2D
shapes,
vertices of a mesh, control points of NURBS objects) and their manipulation
through
constructive modeling operators (extrude, revolve, sweep or boolean operations,
to
name
a few). However useful, such paradigms are often very limited for advanced
creation/manipulation of digital models, such as those with high degrees of
formal
complexity (failed boolean intersections, complex infill patterns in 3D prints)
or
simply incapable of representing certain kinds of realities (models with
non-binary
gradients between inside and outside).
In parallel, the field of computer graphics has developed a plethora of
techniques
designed to generate, visualize and process images displayed on a 2D screen.
Many of
these methods involve the implicit definition of the rules governing
visualization
pipelines, expressed as functional representations of the characteristic values
in a
field of discrete entities. Traditionally, this has translated into the problem
of
computing the RGB values of each pixel in a digital screen. However, modern
applications
of these techniques have been extended in multiple dimensions to, for example,
generate
procedural animated graphics, analyze and process video, perform computational
fluid
dynamics, voxel-based world generation for video games, or multi-material 3D
printing.
In this course, you learn techniques for the procedural generation of discrete
multidimensional spaces, such as 2D images, video, voxelized fields or any
extension
thereof. We cover topics such as color theory, image processing, functional
modeling, shaders and raytracing techniques. The content of the class is
predominantly technical, and taught through a combination of high-level lectures
and
hands-on technical workshops. Students are expected to complement the class
learning
with online materials guided by the instructor. Demonstrated experience in
computer
programming, such as SCI-6338, CS50 or similar, is a pre-requisite for this
class.
Student work consists of guided tutorials and course assignments, culminating
with a
personal final project of the student's choice.
This course is the second installment of a three-part course series on
Computational
Design preceded by SCI-6338: Introduction to Computational Design (Fall), and
continued
by SCI-6365: Enactive Design, Creative Applications Through Concurrent
Human-Machine
Interaction (Fall) taught by the same instructor.