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

Guest Lecture: Sarah Roselena Brady

Discussion: Dimensions of expression for dynamic art.
Practice: Creating interactivity for visual expression with code.
Project: Create a drawing tool.

October 22 Detail
October 24 Detail

Week Six: Interface

Discussion: Designing user interfaces for creative expression
Practice: Extending user interface design frameworks
Project: Create a personal color picker.

October 29 Detail
October 31 Detail

Week Seven: Abstraction

Discussion: Building domain-specific programming abstractions
Practice: Object-oriented programs to support multiple design applications.
Project: Create a Processing programming library and a set of example projects. Draft a proposal brief for your final project.

November 5 Detail
November 7 Detail

Week Eight: Digital/Physical

Discussion: Final Projects Planning. Integrating Manual and Procedural Expression
Practice: Creating computational designs that can be physically fabricated
Project: Create a physical drawing based on a Processing Sketch.

November 12 Detail
November 14 Detail

Week Nine: Final Project Planning

Discussion: Review of project themes and reflection.
Practice: Final project proposal review and feedback.
November 19 Detail
November 21 Detail

Week Ten: Course Synthesis

November 26th

Final Project check in, course review and reflection.

November 28th


Week Eleven: Final Project

Practice: In class support for Final Projects
Project: Continue work on final project. Fill out closing course survey.

Finals Week

Final Project Presentation and Critique (Elings 2003).
Schedule and Structure