Photo credit: Windell H. Oskay, www.evilmadscientist.com bridell.com
on creative engineering and new media art

openFrameworks

November 27th, 2008
http://www.vimeo.com/921725

OpenFrameworks is a cross-platform, open-source C++ library for creative coding. It seems to be really catching on in the new media field, and a lot of artists and hackers are now using it. Watch the video I posted here, “Made with openFrameworks” for some examples of how it has and can be used, and some interviews with some people using it.

Basically what openFrameworks (“oF” for short) does is to allow you to easily use graphics, audio and video (generating as well as playing from files) and using stuff like video tracking (using OpenCV) and audio inputs. It is also easy to extend it further using other C++ libraries or using inputs from e.g. an Arduino board.

It is a C++ library which really means you’ll have to know (or learn!) C++ to use it. For me, openFrameworks is what finally made me force myself to learn C++.

openFrameworks is free, really free, and you can get it by signing up at openframeworks.cc. Actually, you don’t have to sign up either, you can just go straight to openframeworks.cc/about – but you really should sign up to the list.

You will need a C++ IDE. You can use Code::Blocks to build your applications, whether you’re on Windows, Mac or Linux. It is free, too! Or you can use XCode (free, on a Mac) or Visual C++ (on Windows, comes in a free version called “Express”) if you prefer.

openFrameworks vs Processing

  • Processing is based on Java, openFrameworks is based on C++.
  • Processing is friendlier and easier to use. OpenFrameworks applications are faster.
  • Processing comes with its own IDE that you can code directly in, for openFrameworks you’ll need to install a separate C++ IDE. However, the Processing IDE is pretty crappy and you’re better off installing a proper Java IDE such as Eclipse if you want to do some real work.
  • Processing builds to desktop applications and web applets, openFrameworks only to desktop applications.
  • Both are cross-platform (Mac, Windows, Linux)
  • Both are free.
  • Both have an active community that share code and will help you on the forums.
  • Both require coding skills.

Recommendations: if you are a total programming newbie and want to try some stuff or to learn to program, I recommend you to start with Processing. If you just want to do some graphic stuff that you want to put online, Processing will do just fine (or consider using Flash). If you already know C++, consider going for openFrameworks. If you want or need really fast applications, you should know that Processing is no way near as fast as openFrameworks.