This review on openFrameworks is the first in a series about creative programming toolkits. During my last years as researcher and organiser of a media arts festival I stumbled upon a heap of software tools meant to ease the creation of rich media artworks. Written by artists for artists and mostly released as open-source those tools have become the de-facto standards for media art production today. Since there is no comprehensive overview available elsewhere on the web I fealt it was a good idea to start off with this series.
The philosophy behind creative programming is to provide a rich and easy-to-use interface to computing with a focus on creativity. Current frameworks usually provide functions for generating sound and images, sensing and controlling the physical environment, and programming interactivity. The benefits for artists are quick development cycles allowing to continuously explore, experiment, and quickly iterate through creative ideas.
Creative programming tools are not only useful for artists. Computer scientists and students can use them to build prototypes for visualising and verifying ideas, and even teachers can use them in school to teach children how to use computer technology for creating things.
The low entry barrier into programming is especially attractive for creating a better understanding of information processing systems and, more importantly, creative programming empowers people to become creators and escape the spiral of mere consumtion of information technology. This is vital to innovation and progress in our society and probably the biggest achievement for all the creators of creative software.
openFrameworks is an open source toolkit designed for “creative coding” and released under the MIT license. OpenFrameworks is written in C++ and runs on Windows, Mac OS X, Linux, iOS, and Android. It is maintained by Zachary Lieberman, Theo Watson and Arturo Castro with contributions by many other members of the openFrameworks community. With the first release published in 2005 openFrameworks is under active development and currently available in version 0072.
openFrameworks provides a simplified interface to more powerful libraries for media manipulation, hardware control and network communication. openFrameworks consists of a core set of functions for 2D and 3D graphics, video and sound processing, OpenGL rendering and network communication. openFrameworks can be extended by so called addons (prefixed with ofx) written by different contributors. That way libraries like OpenCV, OpenNI, SDL and protocols for Open Sound Control, MIDI, DMX, Arduino and many others are easy to integrate.
openFrameworks is a toolkit for low level access to data manipulation which is harder to learn and more complex to use than other creative tools. It has, for example, many similarities to Processing. It’s benefits are a greater flexibility, better extensibility and the ability to easily integrate other low level C or C++ libraries directly. A good way to start using openFrameworks is to take some of the tutorials, read the wiki and the documentation and follow the mailing list.
The openFrameworks community is a rather helpful bunch of creative people who work on the project for free. So please be polite when asking for help or suggesting improvements. From time to time individuals offer workshops for beginners or intermediate users hosted at hacker spaces or media arts festivals which is a good way to mingle and learn more.
Current Version: 0072
Availability: Windows, Mac OS X, Linux, iOS, and Android
Official openFrameworks project page
ofxAddons – A directory of extensions and libraries
openFrameworks documentation wiki
openFrameworks C++ class documentation