Coding openFrameworks

2017/06 Interactive Systems @ Hochschule Rhein-Waal

Between 26 June and 1 July 2017, I taught the Interactive Systems course at the Digital Media M.A., Hochschule Rhein-Waal. Below are the support materials we used for the course.

The course is focused on interaction design for media generation and manipulation. Students will experiment with a broad range of media elements with an emphasis on controlling media behavior through code. Special emphasis will be given to crossings between interaction design, sound and image. The main development environment for the course will be openFrameworks (, although other environments can be explored. Students are required to plan, develop, document and present a project at the end of the course.


Introduction to openFrameworks; Animation;
Drawing; Interactive behaviours; Generative graphics;
Interactive particle systems; Physics;
Image, Video;
Camera; Computer vision for interaction;
Sound; Audio-visuals;
Project proposal presentations;
Project development;
Project development;
Project development;
Project presentations.

You can also check a library of exercises, most of which we’ll replicate in class, here:

More introductory info on openFrameworks:

Recommended bibliography:

  • ofBook (work in progress)
  • Noble, J., 2012. “Programming Interactivity: A Designer’s Guide to Processing, Arduino, and openFrameworks” (2nd Edition), O’Reilly Media. (new version coming out in May 2016)
  • Perevalov, D., 2013. “Mastering openFrameworks: Creative Coding Demystified”, Packt
  • Perevalov, D. & Tatarnikov, I., 2015. “openFrameworks Essentials”, Packt

For Processing, but easily adapted to oF:

  • Shiffman, D., 2012. The Nature of Code: Simulating Natural Systems with Processing
    Examples ported to oF:
  • Bohnacker, H., Gross, B., & Laub, J., 2012. Generative Design: Visualize, Program, and Create with Processing. (C. Lazzeroni, Ed.). New York: Princeton Architectural Press.
  • Pearson, M., 2011. Generative Art: A Practical Guide Using Processing (1 edition). Shelter Island, NY: Manning Publications.

Exercises done in class:

Tutoring exercises:

Instructions: In the openFrameworks folder, duplicate and rename “emptyExample” folder under apps > myApps. Replace the “src” folder with the downloaded “src” folder

(*) add a font file to bin > data folder inside the project folder; change font file name in code
(**) add 6 image files to bin > data folder inside the project folder; change image file names in code

Project evaluation criteria:

  • Functional and aesthetic qualities of final result (UI/UX design) (30%)
  • Technical capabilities demonstrated (30%)
    • Data management (ex: arrays/vectors/for loops/conditions)
    • Project structuring (ex: classes/structs)
  • Depth of project (amount of content or functionalities) (20%)
  • Innovation and creativity (20%)

Send projects to:

  • Project files: (Deadline 1/July/2017);
    • Project files should be sent as the whole project folder, zipped. You can also email me the GitHub link if you have the files there.
  • Video files: (Deadline 8/July/2017).
    • Video files should be around 20 seconds of duration, and demonstrate usage of project. They can be screen capture videos, or recorded with a camera (ex phone). Videos and their quality count for evaluation. Resolution should be HD 1280 x 720.
    • Mac screen capture: you can use QuickTime (Fila > new screen recording) with SoundFlower for audio (if needed) – tutorial
    • PC screen capture: some recommendations – Camtasia, OBS, VLC (haven’t tried these myself)

Project proposals:

Class notes: