openFrameworks Interactivity
4.6 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
20 students enrolled
Wishlisted Wishlist

Please confirm that you want to add openFrameworks Interactivity to your Wishlist.

Add to Wishlist

openFrameworks Interactivity

A practical guide to creating audio-visual interactive projects with low-level data processing using openFrameworks
4.6 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
20 students enrolled
Created by Packt Publishing
Last updated 5/2017
Curiosity Sale
Current price: $10 Original price: $125 Discount: 92% off
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn how to process different kinds of data
  • Implement and debug simple applications
  • Create a new project and explore existing project structures
  • Work with coordinate system transforms and 2D, 3D graphics
  • Exchange data using different internet protocols
  • Connect with various devices such as Arduino, joysticks and MIDI
  • Work with various depth cameras
View Curriculum
  • In-depth content balanced with tutorials that put theory into practice. The focus of this course is to give you both the understanding and the practical examples on how you can use openFrameworks in your everyday projects.

openFrameworks is an open source C++ toolkit designed to assist the creative process by providing a simple and intuitive framework for experimentation. In this course you will learn openFrameworks basics and become familiar with processing various kinds of data, including video, sound and networking. Also, you will learn how to use in openFrameworks project many kinds of external devices, such as cameras, Arduino, USB-controllers and joysticks.

You will start with learning how to install openFrameworks on different platforms and create simple openFrameworks project. Also, you will learn how to use most notable built-in examples and addons, which demonstrate basic openFrameworks possibilities. After that you will look into basics of programming multimedia with openFrameworks. You will learn how to generate graphics, work with videos and program sound playing and recording. Finally, you will learn how to communicate with other programs and additional hardware. You will lean about networking capabilities and various additional devices in your openFrameworks project.

About The Author

Denis Perevalov is a lecturer and programmer from Ekaterinburg, Russia. He teaches creating interactive media projects at Ekaterinburg Academy of Contemporary Art, and teaches 3D graphics at Ural Federal University. Also he is scientist the Krasovsky Institute of Mathematics and Mechanics.

Igor (Sodazot) Tatarnikov is a video artist, programmer and VJ from Moscow, Russia. He creates media content in various techniques, including animation, stop motion, and generative art.

Igor and Denis are cofounders of the visual laboratory Kuflex (2011), which made numerous interactive video installations for many exhibitions and events around the world. Most of these works were made using openFrameworks.

Who is the target audience?
  • If you are a Programmer, media-designer or scientist who knows programming and wants to utilize openFrameworks for solving various resource-intensive tasks then this is the perfect course for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
32 Lectures
Installing openFrameworks
5 Lectures 29:42

This video gives a complete overview of the course.

Preview 04:14

Working with openFrameworks for OS X requires the C++ compiler and openFrameworks itself. In this video, we will learn to install Xcode and openFrameworks. Also, we will test our setup by compiling and running an openFrameworks example project.

Installing for OSX

Working with openFrameworks for iOS requires C++ compiler and openFrameworks on desktop. In this video we will assume that Xcode is installed and install openFrameworks for iOS. Also, we will test our setup by running an penFrameworks example project in iOS Simulator.

Installing on iOS

Working with openFrameworks for Windows requires C++ compiler and openFrameworks itself. In this video we will learn to install Visual Studio Community and openFrameworks. Also, we will test our setup by compiling and running one of the openFrameworks example projects.

Installing on Windows

Although tab-delimited format is simple to read as csv files, we need to ensure that certain parameters are there to keep the reading process accurate. Let’s explore how we can do that.

Installing on Linux
Creating an openFrameworks Project
4 Lectures 24:25

An openFrameworks project is a folder on a disk. To start a new openFrameworks project, we need to create such a folder by copying an existing project or by using Project Generator wizard.

Preview 06:07

Developing an openFrameworks project requires understanding structure of the project's folder and the source code. In this video we will explore the project’s folder and source code, and learn how to call openFrameworks functions for setting up the project's window properties such as size and frame rate.

Discovering a Project Structure

We want to develop a fun application drawing a UFO chasing a mouse pointer.

Implementing a Simple Application

To find logical errors in code, it's required to use debugging techniques. In this video we will learn several methods for debugging openFrameworks projects.

Using Addons
3 Lectures 13:51

openFrameworks’ built-in functionality doesn't include support for
most of the modern libraries and devices. To solve this problem easily,
it should extend openFrameworks capabilities by addons. Here we will be
introducing addons and learn how to link them to a project.

Preview 04:22

Using contributed addons requires installing them. In this video we will learn to do it by installing ofxBox2d addon.
Installing a Contributed Addon

To be aware the range and trends of openFrameworks development and usage, it's worth to overview the most popular addons. In this video,  we will discuss the measure of contributed addons popularity and overview three most popular addons.

Three Most Popular Contributed Addons
Vector Graphics
4 Lectures 23:54

Vector graphics is based on drawing geometric primitives and
curves by specifying their coordinates. In this video we will learn
about coordinates in openFrameworks and how to draw primitives,
polygons, curves and texts.

Preview 06:59

Most of objects in the real world often possess hierarchical structure. Using this hierarchy can simplify drawing such objects a lot. In openFrameworks, coordinate system transformations can be used to  draw hierarchies and also rotated images and rectangles.

Coordinate System Transformations

To make the objects’ changes on a screen, we need to program rules of such changes. In this video, we explain how to use harmonic oscillations and Perlin noise to simulate moving of a midge.


Drawing 3D scenes is different from drawing 2D graphics. In this video, we will consider such differences and create a simple 3D scene rotated by the mouse.

3D Graphics
Images and Video
4 Lectures 23:16

Basic operations with raster images such as loading from file, drawing, changing pixels and saving to file can be done in openFrameworks using the ofImage class. We will consider this class in a detail and also explore its companions, ofPixels and ofTexture classes.

Preview 05:29

Working with videos in openFrameworks is easy. In this video, we will consider playing video files, capture frames from a web camera and process them.

Working with Video

To process a video using GPU and create multi-layered graphical composition, we need to do offscreen drawing. Frame Buffer Objects (FBOs) are intended for this. In this video, we will implement a simple project using FBO for offscreen drawing.

Using Frame Buffer Object for Offscreen Drawing

Processing high-resolution video at real time is almost impossible using CPU-based programming. It’s required to use GPU-based programming using shaders. In this video, we will consider working with fragment shaders in openFrameworks for image generation and video effects.

Using Fragment Shaders
3 Lectures 16:01

Playing a sound file with openFrameworks is easy with the ofSoundPlayer class. It allows us to control playing parameters such as looping, volume, speed and pan. Also it is possible to analyze spectral content of the sound by acquiring its spectrum.

Preview 05:41

To analyze, recognize or record sounds in an openFrameworks project, we need to start sound capture. In this video we will consider how to do it. Also, we will consider how to measure input sound level.

Capturing Sound

To generate sounds in an openFrameworks project we need to start sound generation. In this video, we will consider how to do it. Also, we will consider how to synthesize sine wave and consider addons for working with sound.

Synthesizing Sound
3 Lectures 19:11

To synchronize the openFrameworks project with other apps and also control it by mobile devices, using OSC protocol is a good solution.

Preview 07:47

To send and receive megabyte-sized arrays such as raster images, we may use TCP protocol. In this video we will consider how to do it in openFrameworks using the ofxKuNetwork addon. Also, we will overview other addons for this purpose.

Using to Send and Receive the Arrays

Web interface is a very affordable way to control an application remotely. We will implement this capability by embedding a web server inside the project ofxWebServer addon.

Creating WebInterface
3 Lectures 14:53

USB gamepad and joystick are affordable devices which give an opportunity to control your openFrameworks projects, such as games, interactive installations and shows made with openFrameworks.

Preview 05:01

Midi controllers and MIDI keyboards are devices for controlling professional music, DJ and VJ software. But also, they can be used for controlling parameters of your openFrameworks project. In this video, we will see how to do it using the ofxMidi addon.

Connecting the MIDI Controller and Keyboard

Arduino is a cheap and small computing platform which connects to various sensors, motors and many other electronic devices. In this video we will get acquainted with using Arduino together with our openFrameworks project.

Connecting Arduino
Depth Cameras
3 Lectures 18:23

In this video we will consider working with Microsoft Kinect V1 depth camera.

Preview 08:38

In this video we will consider working with Microsoft Kinect V2 depth camera.
Microsoft Kinect V2

We will now consider working with Stereolabs ZED depth camera.

Stereolabs ZED
About the Instructor
Packt Publishing
3.9 Average rating
7,349 Reviews
52,613 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.