OpenFrameworks

Last updated
openFrameworks
Developer(s) Zachary Lieberman, Theo Watson, Arturo Castro
Stable release
0.12.0 / August 30, 2023;14 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 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. [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, for more than 33 days. [8] [9] In 2012, Petros Vrellis created an interactive version of Vincent van Gogh's "The Starry Night" using openFrameworks. [10] Terry Cavanagh's indie video game "Super Hexagon" was originally created in openFrameworks. [11]

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

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, HLASM, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, PL/I, Prolog, Python, R, Rexx, 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">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.

A multimedia framework is a software framework that handles media on a computer and through a network. A good multimedia framework offers an intuitive API and a modular architecture to easily add support for new audio, video and container formats and transmission protocols. It is meant to be used by applications such as media players and audio or video editors, but can also be used to build videoconferencing applications, media converters and other multimedia tools. Data is processed among modules automatically, it is unnecessary for app to pass buffers between connected modules one by one.

<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 exploratory qualitative data analysis and interactive data visualization.

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">Pootle</span> Free translation software

Pootle is an online translation management tool with a translation interface. It is written in the Python programming language using the Django framework and is free software originally developed and released by Translate.org.za in 2004. It was further developed as part of the WordForge project and the African Network for Localisation and is now maintained by Translate.org.za.

<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> American artist (born 1977)

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

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

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.

<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.

FastAPI is a high-performance web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize data. FastAPI also automatically generates OpenAPI documentation for APIs built with it. It was first released in 2018.

References

  1. "Contributors to openframeworks/OpenFrameworks". GitHub .
  2. 1 2 "openFrameworks FAQ" . Retrieved 10 April 2016.
  3. "Drawn". thesystemis.com. Archived from the original on 2022-12-07. 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. "Interactive 'Starry Night' Brings The Painting To Life". HuffPost. 2012-02-10. Retrieved 2022-12-24.
  11. "Super Hexagon brings concentric chiptune madness to BlackBerry 10". Engadget. 10 February 2013. Retrieved 2022-12-24.
  12. "openFrameworks for Processing users" . Retrieved 10 April 2016.