made with openFrameworks from openFrameworks on Vimeo.
This weekend saw the second London based openFrameworks workshop. It was kindly organized by Ruiri Glynn who writes the blog Interactive Architecture and hosted by UCL’s MSc Adaptive Architecture and Computation at which Ruiri lectures. Other notable contributors were Memo Akten who seems to be prolific in the area of openFrameworks on the iPhone, Joel Gethin Lewis who is invovled in This Happened and Marek Bereza.
The two day workshop started on Saturday (Day 01) from the very ground up, taking us through the class structure, syntax and implementation of some basic openFrameworks projects. They kindly set up two projectors to cater for those on OS X using Xcode and those on Windows using Code Blocks. The syntax is not different between platforms however there are some minor differences in the IDE experience. Using this setup Memo, Joel and Merek led us through three examples including a simple drawing and interaction demo, a particle system and a very basic sound synthesizer. Using these examples, the workshops leaders demonstrated the basic setup of the three files required to compile our first C++ application. The main.cpp file – which is where the magic happens – is similar in function structure to the basic Processing patch with a setup() & draw() function plus easy interfaces to mouse and keyboard inputs. Throughout the examples were also snippets of advice and information about standard coding concepts and practices (pointers, arrays, etc) plus basic principles of OOP concepts (encapsulation, inheritance, etc).
OpenFrameworks’ ability to leverage some of the more powerful aspects of C++ became evident on Sunday (Day 02) when we went through the addon examples, which are applications with various functionality created by the oF community for reuse. These examples included a 3D rendered model of a squirrel (of course), a client and server app communicating using TCP, UDP or OSC and a threading example. The ability to utilize threading to take full advantage of multi-core systems exemplifies the power you can wield when developing in openFrameworks. One pragmatic example of threads in use would be to enable the efficient use of multiple camera inputs plus computer vision as an interface for an interactive installation; we’re talking about 6 cameras without issue.
Although the demonstrators at this event were advocates of openFrameworks itself, throughout the workshop they were even more evangelical about the community which surrounds and supports it. All the openFrameworks libraries are completely open source and available for the community to amend, update and reuse. Each library has it’s own LGPL license – a version of the GPL which does not extend any further than the original libraries. This balance of (not too) copy-left licensing and open source methodologies, I hope, will help to continue the momentum which seems to have been generated around the openFrameworks project.
As a developer I am easily excited by the ability to use C++ without having to go through the inconvenience of a degree in computer science however the proliferation of frameworks such as these may, hopefully, accelerate the creation of more diverse interfaces to digital media than the keyboard and mouse; which is possible more exciting to the vast majority!
All of the examples which we went through during the workshop are availble from the openFramworks wiki.
Tagged: C++, code, programming