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.
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.
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.
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.
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.
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.
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.
We want to develop a fun application drawing a UFO chasing a mouse pointer.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
To synchronize the openFrameworks project with other apps and also control it by mobile devices, using OSC protocol is a good solution.
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.
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.
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.
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.
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.
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.