Computational Systems for Visual Art and Design

Computational systems of rules, relationships, and behaviors can extend traditional art and design practices or support new creative workflows and outcomes. In this course, we will explore the creation of computational systems for visual art and design. Following a studio format, we will learn creative coding platforms and algorithms to create visual works that are flexible, dynamic, and generative. In the process, we will touch on the design philosophy and abstractions of existing creative coding platforms and examine methods to create alternatives. Students will learn basic approaches to modify creative programming languages and frameworks or develop new software interfaces for visual expression. Technical production will be complemented by readings on computational art and design theory and review of seminal works in computational art and design.

Instructor Information

Weekly Structure


Week One: Init

Introduction to the course and syllabus, questions activity, introduction to Processing and Github.

September 26 Detail

Week Two: Procedure and Repetition

Discussion: Computational Repetition and Rhythm in Art and Design.
Practice: Loops to generate repeating form and pattern.
Project: Create a repeating wallpaper.

October 1 Detail
October 3 Detail

Week Three: Parameterization and Systems

Discussion: Capturing design intent and design patterns in code.
Practice: Using variables to create degrees of freedom in a design. Creating basic user interfaces to tune parameters.
Project: Create a parameterizable form with a basic tuning interface.

October 8 Detail
October 10 Detail

Week Four: Generativity

Discussion: Reconciling design intent with generative processes.
Practice: Sculpting noise, external data, and autonomous processes.
Project: Create a generative series with 10 variations.

October 15 Detail
October 17 Detail

Week Five: Dynamic Art and Design

Discussion: Dimensions of expression for dynamic art.
Practice: Creating animation and interactivity with code.
Project: Create a drawing tool that either draws on its own or enables another person to draw with it.

Week Six: Interface

Discussion: Designing user interfaces for creative expression
Practice: Extending user interface design frameworks
Project: Create a personal user interface that reflects your approach and preferences as an artist and designer. Draft a proposal brief for your final project.

Week Seven: Abstraction

Guest Lecture: Sarah Roselena Brady

Discussion: Building domain-specific programming abstractions
Practice: Object-oriented programs to support multiple design applications.
Project: Create a programming library and a set of example projects.

Week Eight: Digital/Physical

Discussion: Integrating manual and procedural expression.
Practice: Processing input from the physical world and creating computational designs that can be physically fabricated
Project: Create a work with elements that are driven by data collected from the physical world --OR-- Convert a digital work using a plotter or vinyl cutter. Fill out mid-course survey.

Week Nine: Synthesis

Discussion: Alternative programming tools for alternative programmers.
Practice: Final project proposal review and feedback.
Project: Select from final project options: Extend or modify and existing programming tool for art and design to support a new form of expression. Create a generative series and a justification for your selection of each piece. Extend a course project. Choose your own adventure

--Thanksgiving Holiday--

Week Ten: Final Project

Discussion: Course reflection. Potential futures of computational art and design.
Practice: In class technical support and troubleshooting
Project: Continue work on final project. Fill out closing course survey.

Finals Week

Final Project Presentation and Critique.