2.2. Herramientas de programación creativa
2.2.3. openFrameworks
De forma similar a Processing, openFrameworks (OF) también es un software de código abierto creado por un artista y programador. Zachary Lieberman, coautor de numerosos proyectos artísticos, entre los cuales los galardonados Messa di Voce (con Golan Levin) o The Eyewriter (con FAT Lab y Graffiti Research Lab), lanza openFrameworks v.0.01 en 2005 y poco después desarrolla la versión 0.03 con la colaboración de sus estudiantes en Parsons School of Design (Nueva York). Posteriormente continua desarrollándolo con Theo Watson y Arturo Castro junto a una creciente comunidad de programadores y diseñadores.
OF comparte con Processing el planteamiento de ser un software creado para acercar las posibilidades de la programación a artistas y diseñadores, pero tiene sus propias características.
openFrameworks es un conjunto de herramientas en lenguaje C++ que combina recursos de uso común como OpenGL (para gráficos), FreeType (tipografía), FreeImage (gestión de imágenes), Quicktime (vídeo), OpenCV (visión artificial) o Assimp (3D) en un entorno de programación sencillo e intuitivo. Es, además, compatible con los principales sistemas operativos (Windows, OSX, Linux, iOS, Android) y cuenta con una comunidad de usuarios, librerías y recursos compartidos.
OF se basa en la filosofía DIWO (Do-It-With-Others, hágalo con otros) que promueve la creación colectiva y colaborativa, a partir de recursos desarrollados por una comunidad cuyos resultados se revierten en la misma.
Lieberman y Watson inciden en la importancia del carácter colaborativo de su proyecto, que consideran una forma de considerar el arte como investigación:
[…] somos artistas desarrollando herramientas para otros artistas. Cuando trabajamos, cogemos ideas que hemos aprendido y procuramos llevarlas a openFrameworks para que otros puedan usarlas. Nos hace mejores programadores y también significa que tenemos un mayor impacto que si simplemente hacemos un proyecto con nuestros nombres. El objetivo es tomarse en serio el concepto de arte como investigación y esta es una manera de publicar los resultados de nuestra investigación.
R. Kirschner (2008). «openFrameworks. Zachary Lieberman and Theodore Watson interviewed by Friedrich Kirschner». En: G. Stocker, C. Schöpf (ed.). Ars Electronica 2008. A New Cultural Economy. The Limits of Intellectual Property (pág. 209-213). Ostfildern: Hatje Cantz.
Según admite Watson, parte de la motivación para trabajar en un proyecto como OF parte de la necesidad de desarrollar la propia creatividad sin verse limitado por los programas comerciales de diseño gráfico o edición de imágenes, vídeo y audio (entre otros).
El software comercial facilita a quien no sabe programar la creación de todo tipo de cosas con un ordenador, pero a la vez le lleva a depender de la compatibilidad de este software con determinados sistemas operativos (como ocurre, notablemente, con Adobe Flash, que ha dejado de ser compatible con iOS y dejará de usarse oficialmente en 2020). Como hemos comentado, saber programar libera a artistas y diseñadores de las limitaciones del software comercial, pero requiere unos conocimientos que pocos tienen.
Por este motivo, OF busca la mayor simplicidad posible en el uso de sus herramientas. Partiendo de unos conocimientos básicos del lenguaje C++, es posible trabajar empleando ejemplos que se pueden modificar, aprendiendo al mismo tiempo cómo funciona el código de programación. Los proyectos creados en OF son además compatibles con Processing, lo cual facilita la transición de una plataforma a otra.
Al desarrollar openFrameworks, Lieberman y Watson afirman haber establecido un sistema modular que permite a los no-iniciados empezar a trabajar de manera sencilla, pero a la vez facilita una extensa variedad de recursos a los usuarios más avanzados.
En este aspecto, el lenguaje C++ resulta adecuado puesto que permite programar en distintos niveles y cuenta con numerosos recursos, tanto para aprender a usarlo como para desarrollar proyectos complejos. Al ser un entorno multiplataforma, permite también que cualquiera pueda usarlo sin tener que cambiar de sistema operativo y, por otra parte, facilita que el producto terminado sea fácilmente exportable, por ejemplo de Windows a MacOSX o Linux. Esta compatibilidad es especialmente útil para los artistas, que a menudo deben adaptar sus proyectos a diferentes plataformas o máquinas.
Manos a la obra con openFrameworks
La web www.openframeworks.cc contiene toda la información acerca de OF, documentación, una galería de ejemplos y el propio software para descargar. Según recomiendan sus creadores, lo mejor es partir de una idea y buscar en los ejemplos el código que nos permitirá desarrollar nuestro proyecto.
La web de OF resume en cuatro pasos el proceso de instalación y primer uso de las herramientas: descargar el software, explorar ejemplos, crear un proyecto y consultar tutoriales.
De esta manera, el trabajo con OF no parte de un aprendizaje paso a paso desde los conceptos más básicos, sino que anima al usuario a ir directamente a los ejemplos que necesita para desarrollar la idea que tiene en mente. Estos pueden consultarse en diferentes categorías, tales como 3D, comunicación, visión artificial, sonido, video, etc. Cada ejemplo permite al usuario aprender cómo aplicar las funciones necesarias para lograr un objetivo determinado. Por ejemplo, en la categoría visión artificial (Computer Vision), encontramos un archivo creado con OpenCV que permite captar a través de una cámara la presencia de una persona u objeto en un espacio y seguir sus movimientos. Al estudiar el código de este archivo, el usuario aprende a capturar vídeo a través de una cámara o archivo pre-grabado, usar el vídeo para generar algún tipo de cálculo y diferenciar entre el objeto o persona y el fondo.
Siguiendo el principio de caja de herramientas, se da más importancia al propio proyecto, cuya ejecución debe facilitar el software gracias a las múltiples combinaciones que se pueden hacer del gran número de recursos que facilitan las librerías y los proyectos realizados. OF se ha empleado en todo tipo de proyectos, desde instalaciones audiovisuales e interactivas a performances, proyectos de investigación científica, diseño de interfaces, juguetes, robots y numerosas piezas desarrolladas con inteligencia artificial, realidad virtual y otras tecnologías.