Module 1: Visuals

Processing is an easy to use programming framework for creating visual arts. We will use Processing in Python mode to create our own visual art with code. During the creation process, some of the key questions we ask are:

Project 1: Generative Animation

Your goal is to create a new work of art with Processing in Python mode, or with Blender using Python scripting with the bpy package. This is an open-ended assignment - which may be an uncomfortable space for you if this is new to you. The guiding principle should be to create something that you are proud to call your own creation.

As a more concrete guide, here are some guideposts you should hit:

You do not need to have every single point here, but you should have at least 3.

What to hand in?

How am I graded?

Rubric

An example of an A+ project is here https://www.youtube.com/watch?v=OCe36rvdrFI


Lecture 1-1:

Oct 25

slides - https://docs.google.com/presentation/d/19_aM9lGcngPQDzwll8MkjKBmKnL1xN5bAzWfe9BHc7k/edit?usp=sharing

In this lecture we get into the technical aspects of generative visuals. We will cover the graphics system used by Processing and explore the ways in which we communicate visual instructions to a computer. We will tackle the generation of both static images and animations. One key point is to ensure that we understand performance bottlenecks and other basic issues in graphics systems, and how our code can impact the quality of our renderings.

Lecture 1-2:

Oct 27

slides - https://docs.google.com/presentation/d/1ROUIlclygquDHawnaLrTM6Je9lzx2jOGME5vhFxgLUs/edit?usp=sharing

Creativity and Code. Context in digital art. How can code itself be a visual artistic object? Can we treat code as literature? What are the core techniques used in generation of visuals. How do we define the difference between data visualization and computational art?

How do we tackle issues of artistic ownership of art generated by an algorithm? This is especially relevant in the machine learning setting, where training data was used in conjunction with code to generate new art.

In automating art, how far is too far? What is the value is automation?

In class reading: https://hai.stanford.edu/blog/humans-loop-design-interactive-ai-systems

Lab 1-1: Processing

Oct 28

Installing Processing. Once you have installed Processing, proceed to install Python mode. To do this, click the top right button that says Java, and then click “Add Mode” and find the Python mode.

Note that you should stick to Processing version 3.5.4 for now (as opposed to 4.0.1). Also, if you are on a newer Mac, you may need to add frameRate(30) to your setup() function in case some example sketches are not working for you. See the video below for more details. You are welcome to use 4.0.1, but some students have had issues - if you always have trouble fall back to the older version.

In this lab we have two goals: 1) getting our hands dirty with Processing, and 2) establishing the foundations for documenting work. For the first part of this lab our goal is to start with the “Yellowtail” example and modify it to additionally display text of your choice. The text size should take up the full display window, and the text should “bounce” up and down on the screen. You will want to “remix” code from Demos > Graphics > Yellowtail and Basics > Typography > FiveWaysOfWritingText.

Once you have the code working, next we will document our work. Documenting your work is one of the most important, and most neglected, aspects of computational art. This is a different type of documentation than commenting your code. We will create a video recording of that processing script being run - our goal is to document the artistic artifact. This style of documentation is complementary to technical documentation (e.g. commenting your code). There is a built-in tool to record images frame-by-frame in Processing, but it might be easier to just record a screencast using your favorite tool. Try to screencast just the display window, rather than your whole screen.

Here is a short video with a walk-through of the key points of the lab.

To turn in:

Post your video recording publicly, and save the link. Add that link as a comment in your code. To submit this lab, submit a .zip of your code.


Lecture 1-3:

Nov 1

slides - https://docs.google.com/presentation/d/1J_ty_J0rnksw_0tkljc2BcTo4hm0mtLjZv8hm7xXR9c/edit?usp=sharing

Intro to Blender and the bpy package. We explore the basics of Blender from a coding perspective. This class focuses on the basics of the interface and how to write code.

Download Blender her: https://www.blender.org/

Lecture 1-4:

Nov 3

slides - https://docs.google.com/presentation/d/1suUSGNwcsFQTLQCpu57IYXZvDXVXAOrkbmiJ17Qjxwk/edit?usp=sharing

Review of Blender topics and discussion of code reuse

Lab 1-2:

Nov 4 (no lab due to break)