OpenFrameworks

Last updated
openFrameworks
Developer(s) Zachary Lieberman, Theo Watson, Arturo Castro
Stable release
0.12.0 / August 30, 2023;7 months ago (2023-08-30)
Repository
Written in C++
Operating system Microsoft Windows, macOS, Linux, iOS, Android
Type Application framework
License MIT License
Website openframeworks.cc

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 [1] of the openFrameworks community.

Contents

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." [2]

openFrameworks running the OpenCV add-on example. OfxOpenCV.png
openFrameworks running the OpenCV add-on example.
Presentation of the project openFrameworks at the 2008 Ars Electronica Festival Ars Electronica 2008 openFrameworks 01.jpg
Presentation of the project openFrameworks at the 2008 Ars Electronica Festival

Artists and projects

Several 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. [3] [4] 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." [5] [6] 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. [7] 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, over a period of more than 33 days. [8] [9] Terry Cavanagh's indie video game "Super Hexagon" was originally created in openFrameworks. [10]

License

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

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. [11]

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.[ citation needed ]

Related Research Articles

<span class="mw-page-title-main">Interactive art</span> Creative works that involve viewer input

Interactive art is a form of art that involves the spectator in a way that allows the art to achieve its purpose. Some interactive art installations achieve this by letting the observer walk through, over or around them; others ask the artist or the spectators to become part of the artwork in some way.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">Inkscape</span> Free open-source vector graphics editor

Inkscape is a free and open-source vector graphics editor for traditional Unix-compatible systems such as GNU/Linux, BSD derivatives and Illumos, as well as Windows and macOS. It offers a rich set of features and is widely used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagramming and flowcharting. It uses vector graphics to allow for sharp printouts and renderings at unlimited resolution and is not bound to a fixed number of pixels like raster graphics. Inkscape uses the standardized Scalable Vector Graphics (SVG) file format as its main format, which is supported by many other applications including web browsers. It can import and export various other file formats, including SVG, AI, EPS, PDF, PS and PNG.

<span class="mw-page-title-main">Processing</span> Free graphics library

Processing is a free graphics library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming in a visual context.

<span class="mw-page-title-main">Orange (software)</span> Open-source data analysis software

Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for explorative qualitative data analysis and interactive data visualization.

<span class="mw-page-title-main">VTK</span> Free software software system for 3D computer graphics, image processing and visualization

The Visualization Toolkit (VTK) is a free software system for 3D computer graphics, image processing and scientific visualization.

<span class="mw-page-title-main">Open Cascade Technology</span> Open-source 3D modelling software

Open Cascade Technology (OCCT), formerly called CAS.CADE, is an open-source software development platform for 3D CAD, CAM, CAE, etc. that is developed and supported by Open Cascade SAS company.

Eyebeam is a not-for-profit art and technology center in New York City, founded by John Seward Johnson III with co-founders David S. Johnson and Roderic R. Richardson.

<span class="mw-page-title-main">JUCE</span> C++ Cross-Platform Application Development Framework

JUCE is an open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries. It is dual licensed under the GPLv3 and a commercial license.

<span class="mw-page-title-main">Theo Watson</span> British artist and programmer

Theo Watson is a British artist and programmer. His art work includes interactive video, large-scale public projections, computer vision projects, and interactive sound recordings which have featured in museums and galleries across the world including Museum of Modern Art, New York Hall of Science, Tate Modern amongst others. Watson is a partner at Design I/O, a Cambridge-based interactive design firm known for cutting edge, immersive installations. He is also co-founder of the programming toolkit openFrameworks, co-creator of the EyeWriter and a virtual fellow at Free Art and Technology Lab.

<span class="mw-page-title-main">Zachary Lieberman</span>

Zachary Lieberman is an American new media artist, designer, computer programmer, and educator.

The EyeWriter is a low-cost eye tracking system originally designed for paralyzed graffiti artist Tempt1. The EyeWriter system uses inexpensive cameras and open-source computer vision software to track the wearer's eye movements.

Cinder is an open-source programming library designed to give the C++ language advanced visualization abilities. It was released as a public tool in spring 2010 and can be viewed in many ways as a C++-based alternative to tools like the Java-based Processing library, Microsoft Silverlight or Adobe Flash. It is also comparable to the C++ based openFrameworks; the main difference is that Cinder uses more system-specific libraries for better performance while openFrameworks affords better control over its underlying libraries.

<span class="mw-page-title-main">Chromium Embedded Framework</span> Free and open-source software framework

The Chromium Embedded Framework (CEF) is an open-source software framework for embedding a Chromium web browser within another application. This enables developers to add web browsing functionality to their application, as well as the ability to use HTML, CSS, and JavaScript to create the application's user interface.

<span class="mw-page-title-main">Simple and Fast Multimedia Library</span> Graphics and Multimedia Library written in C++

Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple application programming interface (API) to various multimedia components in computers. It is written in C++ with bindings available for Ada, C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby, and Rust. Experimental mobile ports were made available for Android and iOS with the release of SFML 2.2.

Ilastik is a user-friendly free open source software for image classification and segmentation. No previous experience in image processing is required to run the software.

<span class="mw-page-title-main">Creative coding</span> Activity of computer programming for expressive purposes

Creative coding is a type of computer programming in which the goal is to create something expressive instead of something functional. It is used to create live visuals and for VJing, as well as creating visual art and design, entertainment, art installations, projections and projection mapping, sound art, advertising, product prototypes, and much more.

References

  1. "Contributors to openframeworks/OpenFrameworks". GitHub .
  2. 1 2 "openFrameworks FAQ" . Retrieved 10 April 2016.
  3. "Drawn". thesystemis.com. Retrieved 2022-12-22.
  4. "Zach Lieberman and Golan Levin at NTT ICC". Rhizome. Retrieved 2022-12-24.
  5. "AUDIO SPACE". Theodore Watson - Interactive Installations. Retrieved 2022-12-22.
  6. "LASER TAG". Theodore Watson - Interactive Installations. Retrieved 2022-12-22.
  7. "EYEWRITER". Theodore Watson - Interactive Installations. Retrieved 2022-12-22.
  8. Arcangel, Cory (2018). "Colors Personal Edition" (PDF). The Source. 1 (9): 8.
  9. Tate. "'Colors', Cory Arcangel, 2006". Tate. Retrieved 2022-12-24.
  10. "Super Hexagon brings concentric chiptune madness to BlackBerry 10". Engadget. Retrieved 2022-12-24.
  11. "openFrameworks for Processing users" . Retrieved 10 April 2016.