#1 (Due 1/23)

This set of Deliverables (#1) is due at the beginning of class on Wednesday, January 23. It has six parts (most of which are quite small):

  1. Read the course Syllabus.
  2. Complete the “Welcome Form”.
  3. Register for Processing Day events that interest you.
  4. Reading #1 and written response.
  5. Looking Outwards #1.
  6. Warmup: An interaction with a 2D physics engine

1. Read the course Syllabus

Please read our course Syllabus carefully and thoroughly.

2. Complete the course “Welcome Form”

Please complete the 60-423/723 “Welcome Form“, which is a Google Survey questionnaire. In this form, you are asked to acknowledge that you agree to our class Code of Conduct (on page 13 in our Syllabus). You are also asked to sign our FERPA Waiver (which you can read on page 17 in our Syllabus). Completing this form will take just a few seconds, but is essential to continue in the class.

3. Register for Processing Community Day events

Please register for any workshops and/or lectures that interest you in our Processing Community Day, which takes place January 25-26. The list of events is here, and the registration forms are here. The workshops have limited space; please do this soon. Registration is free and optional.

4. Reading (“The Productive Paradox”) and Response

This semester, we will have a handful of readings about interactivity and interactive art. Please read: “Critical Play: The Productive Paradox” by Mary Flanagan, which appears as Chapter 20 of A Companion to Digital Art (Paul, Christiane, editor.) pages: 445-459. A PDF of Flanagan’s article is here: flanagan_ch20.

Flanagan’s article is concerned with the ways in which play, in artist-made games, obtains critical potential. In this article, she sets out three propositions for what she terms critical play:

  1. Critical Play Exposes and Examines Dominant Values
  2. Critical Play Can Mean Toying with the Notion of Goals
  3. Criticality Can Lead to Extreme New Kinds of Play, and Make Familiar Types of Play Unfamiliar


  • In a blog post, write about 100-200 words (one or two paragraphs) in response to the following: It’s understood that this is not a “game design” class, per se, and that the kinds of interactive systems that you’re interested in creating may or may not be “games”. Without dwelling on the meaning of “game” as a category: Which of Flanagan’s propositions are the most aligned with your own goals, and why?
  • Label your blog post with the Category, Reading1.
  • Title your blog post: nickname-reading1.

5. Looking Outwards #1: Interactive Art that has Inspired You

Looking Outwards reports are brief blog posts that function as a research diary. Generally you will write a paragraph discussing a project (by someone else) that intrigues you, and document it with an image or two. (For complete details about these requirements, read this page.)

I thought it would be nice, at this early stage, if you could share a “touchstone”: Think about an interactive artwork (from anywhere, by anyone except yourself) that you knew about before starting this course, and which you find inspirational. In a blog post of about 100-200 words,

  • Please discuss the project. What do you admire about it, and why do you admire these aspects of it?
  • How many people were involved in making it, and how did they organize themselves to achieve it? (Any idea how long it took them to create it?)
  • How was the project created? What combination of custom software/scripts, or “off-the-shelf”  software, did the creators use? Did they develop the project with commercial software, or open-source tools, or some combination?
  • What prior works might the project’s creators have been inspired by?
  • To what opportunities or futures does the project point, if any?
  • Provide a link (if possible) to the artwork, and a full author and title reference.
  • Embed an image and a YouTube/Vimeo video of the project (if available).
  • Create a brief animated GIF for the project, if a video is available. (For advice, information and resources about how to make an animated GIF, please see this page.) Keep your GIF around 640×480 pixels (absolutely no wider than 840 pixels), and under 5Mb.
  • Label your blog post with the Category, LookingOutwards01.
  • Title your blog post: nickname-lookingoutwards01.

This Looking Outwards is unusual, in that you are asked to report about something you already know. The remaining LO’s this semester will ask you to report on projects that are as yet unknown to you.

6. An interaction with a 2D physics engine

Examine the resources and tutorials here. Then:

  • Using a readymade 2D physics engine of your choice* (Box2D, Matter, etc. — see note below),
  • in the development environment of your choice (p5.js, Processing, Unity3D, etc.),
  • using the mouse, camera, and/or keyboard,
  • create an engaging screen-based interaction.

Here is an absolutely non-exhaustive list of some creative opportunities:

  • Replicate a mechanism with interesting kinetic behavior. For example, see 507 Mechanical Movementsfour-bar linkages, etc.
  • Make a musical instrument or sound-toy, in which sounds are generated when items bonk into each other.
  • Make a springy creature or character which has a certain autonomy, but which the user can also poke or prod.
  • Recreate an carnival-park amusement, such as a high striker or dunk tank. (Check out the high striker mechanism.)
  • Create a gladiator joust game in which two people use the keyboard, or a shared network connection, in order to knock each others’ characters off of a pedestal.
  • Create a face-based interaction with openPose or clmTracker
  • Create an interactive abstraction whose colors express the dynamics of the underlying force simulation.


  • Create a blog post to contain the documentation for your project.
  • Write 100 words describing your project: your goals, and how you evaluate your project in light of those goals.
  • Label your blog post with the Category, 2DPhysics.
  • Title your blog post: nickname-2Dphysics.
  • Include a screengrabbed image or two in your blog post.
  • Document your project with a screencapture video recording. Upload a video to this site (max 10MB please), or to Vimeo or YouTube, documenting your project.
  • Also create and upload an animated GIF of your project. Resources to create animated GIFs are here.

*May I Make My Own Physics Engine?  In a word: No

I had the following email exchange with one student:

> Golan, Just a quick clarification: for the assignment, do I have to use an existing physics engine like Box2D or can I just write my own physics? 

Thanks for your question. It’s a good question, and a reasonable one.

I do thoroughly respect your desire to make your own physics engine. I frequently create my own small, throwaway physics systems for things like circle-circle collisions, simple springs, simple meshes, etc. It can be a joy and very personally rewarding to make such solvers for oneself.

However, there’s a reason Box2D has been in continuous development by a group of people for more than a decade. The fact is that Box2D (and related libraries) have some extremely sophisticated features (such as collisions between arbitrary concave polygons, pin joints, accelerated n-body calculations) and some sophisticated algorithms (such as higher-order Runge-Kutta differential equation solvers, convex hulls, quad-trees, Barnes-Hut approximation). These allow you to create simulations that go far beyond what you (or anyone) could whip together in a week.

Part of the purpose of this assignment is to keep your energy focused on application concepts, artwork, and interactions — rather than thinking about how to calculate moments of inertia and integrating torques. I’m certain you could make a solver, but I want to see what you can do once you already have one. I also want to see what you can do when you’re given a full-featured physics engine that can do things you couldn’t implement yourself — at least, not in the time you have available.