Time: Tuesday and Thursday, 1:30-4:20am
Location: CFA 307 + CFA-318 (College of Fine Arts building, CMU)
Instructor: Paolo Pedercini – paolop andrew…
TA: Zhiwan Cheung – zhiwan.cheung gmail…
Office: CFA 419A – 4th Floor
Office hours: By appointment

Electronic Media Studio: Introduction to Interactivity (60-210) is an introduction to software programming and physical computing within the context of the arts. In this course students develop the skills and confidence to produce interactive artworks using audiovisual, networked and tangible media.
This section has an emphasis on game design.


Electronic literature (Twine, context free grammar, CSS)


What is new media art?
Intro + Syllabus.

Hypertext and interactive stories.
Assignment: Using Twine write a branching story with one or more of the following features: a) Non-human (or better, non-animal) main character b) Events out of chronological order c) Multiple characters

253 by Geoff Ryman, Everybody Dies by Jim Munroe and Michael Cho, The Immoral Ms. Conduct by Hannah Epstein, Spent by McKinney, How to Speak Atlantean by Porpentine, Ultra Business Tycoon by Porpentine, Cyborg Goddess by Kara Stone and Kayte McKnight, Coming Out Simulator by Nicky Case, 80 Days by Inkle.

The garden forking paths – Jorge Luis Borges (1941)
CYOA – Christian Swinehart (200?)
Computer Lib / Dream Machines – Ted Nelson (1974)

Potential literature
Assignment: Create a random text generator using the provided context free grammar engine.

Creative Coding (Processing)


Drawing machines: from Tinguely to Cory Arcangel
Assignment: analog instructional drawings.

Reading: Principles of New Media – From the language of New Media – Manovich.

Drawing with code
Intro to processing. Elements of programming, Syntax, functions, arguments, states, static drawing, Coordinates, lines, primitives, colors.

Assignment: Re-interpret a classic painting or an artist of your choice using Processing drawing function. It must have at least 10 graphic elements (no Black Square by Malevich).

Reading: Douglas Rushkoff – Program or be programmed – Introduction.

Dynamic drawing, setup and draw, mouse input, blocks, variables.

Assignment: Starting from the provided framework, draw a stylized face that responds to microphone activity.

20 GOTO 10: Op art, Modularity, repetition, generative art.
Iteration: for loop, functions, scale, rotation, random.

Assignment: Create a dynamic sketch representing order vs. chaos.

Games and simulations (Processing + Fisica)


Rigid bodies
Intro to fisica, world, bodies, properties.
Assignment: make a 2D physics world that functions as clock.

Game feel
Methods, forces, input.
Assignment: implement a control system that “feels good”

Reading: Defining Game Feel – by Steve Swink

The humor and existential horror of physics games
Works: Qwop, Stair dismount, Flappy bird, Not Tetris, Tug the Table, How do you do it, Envirobear, Crayon physics, Tower of goo, Incredipede.

Meaningful play
Collisions, appearance, sounds.

Reading: Meaningful Play – by Katie Salen and Eric Zimmerman

Assignment: Create a simple game based on the control system implementing challenges and feedback.

Tangible Interfaces (Arduino)


Hello Arduino
Input & outputs, digital & analog, sensors.
Assignment: created an interactive noisemaker using sensors and a buzzer.

Hello Arduino
Input & outputs, digital & analog, sensors.
Assignment Design a custom controller for a game/interactive application.

Works: PainStation, Furminator, Tekken torture tournament, The Colour Game, Sweetpads, Intimate controllers, Massage me, Dance Dance Immolation, Giant Joystick, Prepared PlayStation, Long March: Restart, Simmer Down Sprinter, Rolling Up the Cosmos, Panoramical.

Reading: Analog: on Katamari Damacy by McKenzie Wark.

Learning Objectives:

  • To have an understanding of the underlying concepts of digital computing and physical computing and their roles in the arts.
  • To be proficient in creating basic computer programs and electronic devices capable of responding to user interaction.


*Plagiarism and “collaborations”: in programming the concept of plagiarism is somewhat elusive. We are working with open source tools and libraries, building upon the work of a multitude of people. You are encouraged and expected to tap into resources available online, copy-paste and tweak code you may not fully understand.
However it is categorically forbidden to outsource work to people outside the course (e.g. your friend from CS). Showing up to class with something made by others is the worst offense and is considered equivalent to plagiarism.

* Attendance: three or more unexcused absences result in the drop of a letter grade.

* Absences: you are responsible for what happens in class whether you’re here or not. Organize with your classmates to get class information and material that you have missed.

* Participation: you are invited, encouraged, and expected to engage actively in discussion, reflection and activities.

* Net addiction: you can exist for few hours without tweeting, facebooking, chatting, texting or emailing. Any device for mediated communication is banned during theory classes, crits and discussions. A 1% grade reduction will result from being found using them.
During the lab hours you will be allowed to network as long as your behaviour is not disruptive.

*Assignments: late assignments are only accepted with permission of instructor. You lose 10% of your points per day late up to a max of 7 days late.

*Tardiness: 1st tardy = free.
Less than 10 minutes late = 1% grade reduction.
Over 20 minutes late = absence (unless justified).

*Header image: Eric Frommelt