# OpenFrameworks

openFrameworks is an open-source toolkit designed for creative coding founded by Zachary Lieberman, Theo Watson and Arturo Castro. OpenFrameworks is written in C++ and built on top of OpenGL. It runs on Microsoft Windows, macOS, Linux, iOS, Android and Emscripten. It is maintained by its founders with contributions by other members of the openFrameworks community.

## History

The 0.01 version of openFrameworks was released by Zachary Lieberman on August 3, 2005. By February 2006, Lieberman was using version 0.03 with their students at the Parsons School of Design in New York City. According to its authors, openFrameworks was developed for
   "... folks using computers for creative, artistic expression, and who would like low level access to the data inside of media in order manipulate, analyze or explore. That audience we felt was significantly underserved by the current crop of C++ libraries."

## Artists and projects

Several notable artists have used openFrameworks in their projects. Co-founder Zach Lieberman used the toolkit for his 2006 Drawn project, in which visitors can create painted ink shapes and then interact with them. Co-founder Theo Watson has used openFrameworks for their projects' audio space, where visitors can leave spatialised audio messages in a room and hear messages left by previous visitors, and "Laser Tag." In 2010, Lieberman, Watson, Graffiti Research Lab and others working together as "Free Art and Technology" used openFrameworks for the "EyeWriter" project, a low-cost eye-tracking system originally designed to allow paralyzed graffiti artist Tempt One to be able to draw using his eyes. In 2006, Cory Arcangel used openFrameworks to create the video projection Colors, taking the 1988 film of the same name and playing it one horizontal row of pixels at a time, for more than 33 days. In 2012, Petros Vrellis created an interactive version of Vincent van Gogh's "The Starry Night" using openFrameworks. Terry Cavanagh's indie video game "Super Hexagon" was originally created in openFrameworks.

## License

Openframeworks is released under the permissive MIT license. The libraries used by the framework each have their own licenses.

## Related projects

OpenFrameworks' emphasis on creative coding is similar to the Processing language in that both projects present a simplified interface to powerful libraries for media, hardware and communication. openFrameworks's main difference from Processing is that it is written in C++, instead of Java. Users will find many similarities between the two libraries, for example what is beginShape in Processing is ofBeginShape in openFrameworks. The openFrameworks wiki includes an article for people coming to openFrameworks from Processing.
Another similar project is Cinder, which is also a C++ library framework for creative programming. The primary difference is that openFrameworks has a larger number of dependencies on open source libraries, allowing advanced programmers more control and transparency, while Cinder is more dependent on libraries built into the operating systems it sits on top of, which generally means updates and bug fixes are more frequent and reliable with openFrameworks.