Foreword

by Zach Lieberman

openFrameworks began around 2004 / 2005. I was teaching at Parsons School of Design, and at the same time, making a living as an artist creating interactive projects with code.

I had graduated a few years earlier from grad school in 2002, and we were using computational tools like Director / Lingo and Flash when I was there -- it was the heyday of flash experimentation. In 2002, my professor, Golan Levin, invited me to collaborate with him on some projects after I graduated from school and he introduced me to ACU, a C++ library that had been developed at MIT under the Aesthetics and Computation Group, the group that John Maeda ran which had students like Elise Co, Peter Cho, Ben Fry, Casey Reas and Golan himself.

ACU as a library was great, but quite oriented to late 90s tech such as SGI machines. It was also not open source and not actively maintained. Folks like Ben Fry had fortuitously moved on to developing Processing and it seemed like it wasn't going to last us a long time for our work. It seemed like we would need an alternative codebase moving forward.

In addition, I really wanted to share the code I was writing in my professional practice with my students. I remember vividly having conversations with the administration of the department at Parsons where they said, "Art students don't want to learn C++." I started teaching classes with oF in 2005, and I had students like Theo Watson, Christine Sugrue, and Evan Roth who created remarkably wild, experimental work with oF and that argument crumbled rapidly. C++ provided low level access to the machine for things like computer vision, sound processing, access to hardware as well as access to a wide array of libraries that other folks had written. It opened up doors to expressive uses of computation.

Theo Watson, who was my student in 2005, joined the oF team to help produce an OS X version. In the early days, we had openFrameworks up online behind a cryptic "join the mailing list" front page and Theo and I would produce a single static HTML page with oF documentation. It was not super public, but we had a small and dedicated group of people starting to use oF. I'm not totally sure when our first official release was, but I remember vividly presenting openFrameworks to the public in a sort of beta state at the 2006 OFFF festival where we had an advanced processing workshop held at Hangar. One of the participants of that workshop, Arturo Castro, joined the oF team to help produce a Linux version. Theo, Arturo and I have been joined by a huge group of people who use oF and help contribute to it.

I think one of the most important things about code and any tool is joy, and I can't express how much joy I've had working with Theo and Arturo, joking about weird operating systems properties, having late night Skype calls to figure out tough issues. I think one of the strengths of oF is that it attracts really caring, helpful people who like to make things and share what they've learned.

In 2008, we won a prize at Ars Electronica and built a laboratory called oF lab which brought many of us who had been working remotely, face-to-face, often for the first time. It was the first of many such world-wide meetings, labs, workshops, and developer conferences that have helped grow the community. That year we also held an oF workshop in Japan at YCAM and discovered that there was a whole community of people across the world using this tool. It was way more global than we had thought. It was simultaneously heartening and also a little bit frightening, the realization that there were people around the world who were using this tool to make a living.

We've been lucky in these events to be able to work with great institutions such as The Studio for Creative Inquiry, V&A museum, YCAM, Imal, Ars Electronica and Eyebeam, which have helped sponsor events to bring the oF community together.

In recent years, we've tried to help grow and expand the community -- folks like Kyle McDonald have helped organize the diverse interests of developers and keep everything focused while Caitlin Morris has produced detailed surveys of the community. Greg Borenstein and James George helped launch ofxAddons.com, an online repository which helps organize the impressive quantity of addons that the community is creating on a daily basis. In addition, there are now section leaders for the development of oF, helping grow different parts of the codebase and helping imagine what modern oF looks like. Finally, there are countless contributors to oF who help with the codebase, documentation, examples, addons and answering questions on the forum.

More than anything, we've tried as hard as we can to create a friendly atmosphere around programming, which can be an unfriendly activity and in some ways isolating. We preach the idea of art-making as a laboratory, as R&D (Research & Development) for humanity, and oF is one attempt to make a large lab where we can grow and share experiments together. There's been a big movement for DIY (Do it Yourself) culture these days, things like Make Magazine and Instructables promoting a culture of sharing through making. We are big fans of DIWO (Do it With Others) and try to do that as much as we can online and offline. Somehow, luckily, we've attracted some of the most amazing, helpful, warm-hearted, lovely people to come be a part of this, and if you're not already, we'd like to say welcome.

About This Book

This book, much in the spirit of openFrameworks, is a community driven affair and it's very much a work in progress. It was a suggestion on the openFrameworks developers mailing list which kicked this off and for a the past months we've been hacking away on it.

A couple of notes,

Every chapter, unless noted, is licensed: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

Creative Commons License

Credits

Countless thanks to Rachel Uwa for organizing this project, Tega Brain for helping edit it, Ishac Bertran and Andy Clymer for directing the design, and Arturo Castro, Christoph Buchner and Michael Hadley for developing the codebase for generating the book. In addition, the following authors and editors have contributed to this book: Rui Pereira, Arturo Castro, Brannon Dorsey, Zach Lieberman, Kayla Lewis, Josh Nimoy, Phoenix Perry, Jane Friedhoff, Caitlin Morris, Pierre Proske, Golan Levin, Blair Neal, Michael Hadley, Abraham Avnisan, Christopher Baker, Lukasz Karluk, Omer Shapira, Mimi Son & Elliot Woods (Kimchi and Chips), Eva Schindling, Pierre Thirion, Joel Gethin Lewis, Roy Macdonald, Adam Carlucci, Christoph Buchner, tpltnt as well as countless others who have given feedback, submitted pull requests, offered advice, etc.

I think if there's one motto that openFrameworks (and open source generally) embodies, it is:

together we know more

please note that this book / chapter is a work in progress. Feel free to suggest edits / corrections here