Category Archives: Homework

The latest homework assignments. Please follow these over the syllabus.

Homework 4: Final Project Proposal

Your Art 122 final project will be an interactive artwork or device.  It could manifest itself as purely software or hardware, but in most cases will be a combination of software (Processing) and hardware (Arduino and/or sensors).  The interactivity can come from sensor data (light, proximity, knobs, buttons, etc.), microphone data, camera data, or a database (stocks, network data, Twitter, etc.).  The output of your project may be sound, graphics, light, or robotics (don’t forget about servos and motors!). There are endless options. If you have an idea and are questioning its qualification, please email or ask me.

Email me a 1-2 page final project proposal by Saturday, May 18th.  Your proposal should include the following sections:

  • Abstract : 1-2 paragraph summary of your work.  What is your motivation for the project and what are you trying to explore or accomplish?
  • Background: What existing projects, artwork, or music have inspired your project?  Give at least 2 references and describe how your project will be unique.
  • Goals:  What do you want your project to accomplish in terms of interactivity and aesthetics?  Is its main purpose aesthetics, data visualization/sonification, a game, or simply an exploration of interactivity?  What do you hope to learn from this project?
  • Implementation: Describe the hardware/software flow of your project (with words or a diagram). How will everything be connected? What hardware components and software libraries will you need to realize your project?  What display equipment will you need (speakers, projectors, etc.)?  What hardware/software skills will you need assistance with to realize your project?

I will schedule individual meetings with students on May 20th during class time and office hours to provide feedback on proposals and go over implementations in detail.  However, it would be a good idea to start prototyping and shopping for parts as soon as possible.  Final presentations will be June 12th, so you have just over 1 month from conception to realization.  I am always available via email or office hours for final project consultation.

Homework 3 due May 6th

Complete either Option 1 or Option 2 depending on your interests and available hardware.  For both options you may augment your existing code from HW 1 or create something entirely new.

Option 1) Create a Processing sketch that is reactive to sound and/or image.  This could take on several forms.  For instance it could be:

  • graphics that react to an audio input or file
  • an audio-reactive image or video filter
  • generative graphics derived from image or video pixel data
  • a soundscape or music that is derived from graphics, image, or video
  • a soundscape or music that is derived from audio input

Option 2) Connect your Arduino to your HW 1 sketch or a new sketch and implement at least 2 forms of hardware input or output.  For instance:

  • hardware buttons, switches, knobs, sliders, or sensors controlling audio or visual parameters of your sketch.  (Note, to meet requirements you could implement two forms of control on a single hardware input.  Pushing and holding versus toggling a button, for example.)
  • audio or visual data from your sketch controlling LEDs and/or speaker/buzzer output.

I have a large supply of LED’s, buttons, knobs, wire, jumper cables, and resistors available- see me before/after class or during office hours if you need them.  I have a limited supply of piezos, flex sensors, touch sliders, and photoresistors (light sensors) available that could possibly be borrowed for the duration of the assignment depending on demand (or at least used during office hours for testing).

For both options, email me your code and be prepared to present your work in class on Monday, May 6th.  If you are unsure or have questions about an idea, don’t hesitate to email me with questions.  Also, remember it is perfectly acceptable to use office hours as a place to do your homework and get help immediately if you run into problems.

Homework #2 due 4/19

Create a 2D or 3D Processing “sketch” with the following requirements:

Object Oriented

  • Create at least one custom object (class) to be used in your sketch.  The parameters your object contains are up to you.  For instance, maybe your objects have a position, color, size, shape, and velocity.  Your object should have at least one custom function for drawing itself (i.e. draw() but it can be called anything you wish).  More complex objects might also have an update function or a function for changing the parameters of an object according to set of rules.
  • Use at least one primitive or curve in Processing that we did not cover in class, or you may draw a custom shape using any of the Vertex functions (beginShape(), vertex(), endShape(), etc.).
  • Create and display many of these objects (exactly how many is up to you).  This can be accomplished with an array or an ArrayList and a for loop.


  • Your sketch should autonomously change over time or incorporate a form of motion according to a set of rules.  Dynamic elements could be color, position, size, shape, etcetera.  A simple set of rules could be boundary conditions.  For example, an object could change color or size when it hits a boundary.  More complicated rules could involve changed based on the number of objects present or how fast they are moving.


  • Your sketch should involve at least two forms of interactivity via the mouse or keyboard.  If your sketch is 3D, interactivity could be in the form of navigation via a camera controlled by the mouse or keyboard.  If your sketch is 2D then you could use the mouse and/or keyboard to control any parameters of your objects.

Title and Description

  • Your work must have a title and a short description (150-300 words).
  • The description should have two paragraphs.  The first should describe your aesthetic intentions and/or future goals regarding the work.  The second should describe the implementation- did you build off any example code from class or online? What was the most challenging thing you had to create, add, or modify to achieve your results?  How could you add to more dynamism or interactivity to this work in the future?


  •  Send an email to with the subject Art122 Homework #2.  In the body of the email include the title and description of your sketch and attach a zip file containing the code.

Due Friday April 19th by 11:59pm.

Useful resources:

Homework #1 due 4/3

  1. Complete the readings and send me an email with the subject Art 122 Homework #1.  In your email include: comments on anything from the readings that was unclear, your experience with programming and electronics (zero is fine), and your goals for this class (i.e. do you already have a project in mind?  are there specific aspects of multimedia programming or microcontroller development that you would like to explore?).
  2. Download and install Processing.
  3. Fill out the Doodle poll with your preferences for office hours times.