GAmuza. Aplicación open source para la enseñanza del arte interactivo
Abstract – En esta comunicación se van a exponer las motivaciones que han impulsado el desarrollo de la aplicación GAmuza, su vinculación con la enseñanza de arte interactivo y la necesidad de utilizar software open source en la universidad.
En la docencia del arte digital, es importante utilizar aplicaciones open source y además es necesario hibridar la enseñanza de código de programación con el sentido crítico y especulativo que impulsan las humanidades, porque el código es técnica y lenguaje, lógica y pensamiento, tal como señala Stephen Ramsay «Los algoritmos son pensamientos, las motosierras son herramientas» . Este enfoque se complejiza un poco más en nuestro contexto por dirigirse hacia el arte contemporáneo, lo que suma no pocas incertidumbres a los estudiantes que crecen en esta emulsión.
Para reducir tensión a la mixtura, la experiencia acumulada en docencia e investigación se ha vertido en el desarrollo del software GAmuza, una herramienta open source pensada para facilitar el aprendizaje sin ocultar los conceptos y estructuras de programación. Ante el debate entre el uso de software libre con programación gráfica, como Pure data, o enseñar código, línea de comandos, como Processing, GAmuza opta de nuevo por la hibridación, conjuga un entorno ScriptEditor para escribir código con aplicaciones modulares para: computer vision, análisis de entrada de audio, comunicación con Arduino, y comunicación con otros software por OSC. Está enfocado al diseño interactivo, la realización de performances audiovisuales en directo y principalmente la enseñanza de arte interactivo o electrónico.
Palabras claves – open source, arte interactivo, enseñanza del arte
Introducción
La mayoría de las escuelas de arte dan clases de «arte digital», que para ellos significa «cómo utilizar Adobe Photoshop». A pesar de que en estos cursos suelen decir que exploran las posibilidades de un nuevo medio, por lo general exploran poco más que las posibilidades que alguien (es decir, Adobe) ha encontrado conveniente empaquetar en una pieza de software comercial. El hecho es que los ordenadores son capaces de hacer un número inimaginablemente mayor de cosas que cualquier pieza de software específico puede hacernos creer. […] es mi intención alentar a los artistas visuales a entender y trabajar más allá de las limitaciones impuestas por sus herramientas de software. […] me gustaría ofrecer una visión de lo que puede lograrse cuando un artista pasa de Photoshop por completo, y hace sus propias herramientas de software con código. (Levin)
Este y otros textos u obras con un carácter similar, nos impulsaron a revisar el enfoque que la enseñanza de las tecnologías de la imagen tiene en las facultades de Bellas Artes, respecto al uso de software open source y la relación que este movimiento colaborativo mantiene con los planteamientos de gran parte del arte digital, electrónico o interactivo. Hoy, la actual situación social y económica demanda, aun más si cabe, la necesidad de utilizar software open source en la enseñanza del arte, e impulsar nuevos desarrollos de aplicaciones en la universidad.
Motivado por esta convicción, dentro de los resultados obtenidos en el proyecto I+D: Vision Ampliada: Sistemas de Tracking Visual para Instalaciones Interactivas en el Campo del Arte Digital (HAR2008-02169) realizado del 01/01/09 a 01/01/12 por el grupo de investigación Laboratorio de Luz, Emanuele Mazza desarrolló el software open source GAmuza , cuya primera versión (rel. 001) se centraba en una interface gráfica para facilitar la enseñanza y uso de aplicaciones de tracking video.
La actual versión estable (rel. 0420 | 2012 12 17) es mucho más completa, basada en openFrameworks (0071), tiene un entorno de scripting integrado (un editor para escribir el código de programación), que sigue directamente el modelo marcado por el PDE de Processing , más aplicaciones modulares con interface gráfica para: computer vision; análisis de entrada de audio; comunicación con Arduino, y comunicación con otros software por OSC. También puede controlar dispositivos con distintos protocolos, como DMX (Digital MultipleX para sistemas de iluminación), con las funciones del addon ofxDmx(), MIDI (Interfaz Digital de Instrumentos Musicales), mediante funciones propias de GAmuza o establecer comunicación con aplicaciones de internet como twitter mediante funciones del addon ofxTwitter()
En estos momentos se está terminando una nueva versión, rel. 0426, que supone realmente un entorno de programación más sencillo para openframeworks (0074), manteniendo los módulos GUI de la anterior versión mejorados, e incorporando además, entre otras cosas, generación de QRCodes, exportación de video/audio vía Quicktime, envío de video directamente a Max/Msp (en local o en red), servidor de video streaming (Syphon, de momento solo en local), conexión con los AU (AudioUnit) plugins de audio del sitema, y pdLib, el motor de sinthesis de PureData.
GAmuza recoge y relaciona de forma particular lenguajes de programación [Lua y C++] y plataformas [openFrameworks, openGL, etc..] ya existentes, y desarrolla librerías nuevas, de manera que más que un collage de lenguajes y plataformas, reconstruye un entorno de programación por medio de «zurcidos», utiliza parches y genera tejido nuevo, entrecruzando funciones, sin ocultar los fragmentos.
Como otros entornos de programación creativa aporta un repertorio de soluciones fragmentarias, a través de funciones, clases y métodos ya programados. Así, Gamuza incorpora las desarrolladas por openFrameworks (el 99%), muchos ofxAddons (librerias externas) y openGL 1.1, además de sus funciones propias . Estas bases, más los ejemplos que vienen con el software, permiten a los estudiantes desarrollar proyectos de arte electrónico o interactivo de forma más ágil, saltando las cuestiones técnicas más engorrosas, con la esperanza de que la visualización de los resultados les impulse a superar el rechazo que la programación suele generar a priori en nuestro campo.
Referencias y desarrollo del Software
El software más utilizado en la enseñanza de arte digital, dentro de la línea open source, es Processing, desarrollado por Casey Reas y Ben Fry en 2001, en el Aesthetics and Computation Group del MIT Media Lab. En la actualidad cuenta con una gran comunidad de desarrolladores que han aportado cerca de 70 nuevas librerías para ampliar las posibilidades del software. Processing está desarrollado sobre Java, tiene una sintaxis más simplificada y un entorno de programación sencillo que facilita su uso a los estudiantes para bosquejar ideas visuales en código de programación. En su definición Processing remarca que fue «Inicialmente creado para servir como un cuaderno de bocetos de software y para enseñar los fundamentos de la programación informática en un contexto de artes visuales», si bien a continuación señalan «Processing rápidamente se convirtió también en una herramienta para la creación de obras profesionales» .
Otro de los software utilizado en destacados centros de artes visuales y diseño es openFrameworks , su primera versión fue desarrollada por Zachary Lieberman en agosto de 2005; actualmente la mantienen Zachary Lieberman, Theo Watson y Arturo Castro junto a la comunidad on-line openFrameworks. La diferencia principal con Processing es que está escrito en C++, lo que lo hace más estable, robusto y consume menos recursos de procesador. La segunda diferencia es que es bastante más difícil de programar y compilar.
GAmuza se desarrolló después de realizar varios proyectos de arte interactivo en el Laboratorio de Luz. Estos proyectos nos permitieron observar las ventajas y deficiencias de las aplicaciones que utilizábamos, teniendo que reconocer que las resueltas con Max/MSP/Jitter eran más estables, pero recurriendo a software propietario. Es el caso de la primera versión del proyecto Modulador de Luz 2.0 (2006) , para la siguiente versión, Modulador de Luz 3.0 (2008) , se desarrolló una aplicación específica programada en C++ sobre openFrameworks y el resultado fue mucho más estable y robusto que la anterior, utilizando un entorno de programación open source. La aplicación fue escrita por Emanuel Mazza, Ulrike Gollner y Jeldrik Schmuch y la pieza funcionó sin problemas durante 3 meses en el Centro de Arte La Laboral de Gijón y otros 3 meses en el Museo ZKM de Karlsruhe. Pero el nivel de conocimientos que requiere este lenguaje de programación distanciaba los roles que podíamos desarrollar los distintos miembros del grupo de investigación y marcaba la necesidad de escribir una aplicación concreta para cada proyecto.
El proyecto I+D antes mencionado, proporcionó el soporte inicial para desarrollar una aplicación que tuviera la robustez de openFrameworks y fuera utilizable en una amplia tipología de proyectos artísticos. En sus dos versiones iniciales se dirigía sólo a resolver cuestiones de tracking video, comunicando por OSC con otras aplicaciones, como Processing o Pure Data, para enviar los datos necesarios, de manera que el procesado más pesado lo realizaba GAmuza y en los otros software se programaba sólo lo que hacía la pieza con esos datos.
Posteriormente, el auge de los entornos de live coding, como Fluxus o Chuck, para performances de audio y generación de visuales en directo, dio a conocer las posbilidades de distintos lenguajes de programación. Uno de los más simplificados es Lua, que se comunica con openFrameworks a través de ofxLua y Luabind. Con estos elementos se inició el proceso de «zurcido» por el cual GAmuza dejó de ser sólo una aplicación para realizar las tareas más pesadas de tracking, y se configuró como un entorno de programación para openFrameworks (tiene el wrapper casi completo de sus librerías), con un lenguaje muy simplificado, Lua, que no requiere compilación (lenguaje de scripting). El código escrito en el editor (ScriptEditor) se comunica internamente con los datos que obtienen los distintos módulos de interfaces gráficas, pues al tracking video se le sumó las opciones de usar el sensor kinect, análisis de entrada de audio, comunicación con el microcontrolador Arduino, más el módulo siempre activo de comunicación por OSC ya sea a nivel interno con otros software o con otros ordenadores; hay también otro módulo de Timeline que se activa por código.
Cuestiones de uso. Open source y universidad
En las aulas, como en la vida cotidiana, hay una presencia masiva de dispositivos técnicos de comunicación que, además de ser un reflejo comercial de la industria, indican también un cambio de paradigma mayor que incide en las nuevas relaciones cambiantes que se están dando entre hombre y mundo. Y ante estos cambios debe surgir el deseo de comprender y asimilar el papel que la técnica y el lenguaje técnico están jugando, ser conscientes del tipo de usos que hacemos con estos medios y de que estamos multiplicando el tiempo que les dedicamos.
Se ha hecho popular publicar ideas personales, intereses, conversaciones, gustos, opiniones, fotos, videos… Todo el mundo está en línea, desde su portátil o Smartphone, y en 5 minutos te hacen sentir que eres el webmaster de todas tus ficciones o vidas virtuales, constantemente conectado con todos tus amigos virtuales, y lo puedes hacer sin conocer la tecnología que estás utilizando, y esto significa un montón de cosas, una es «gente para la tecnología», o en otras palabras, los medios están preparando «gente a la que vender tecnología». Gamuza es sólo un software, pero creado con un concepto en mente: «Tecnología para la gente», no lo contrario.
Por eso GAmuza no oculta los conceptos o estructuras de programación, pues comprender las herramientas que usamos todos los días es el primer paso para no ser esclavo de la tecnología. GAmuza aporta interfaces gráficas para facilitar el aprendizaje, de manera que los estudiantes puedan idear antes los proyectos de aplicación, ampliando el tiempo dedicado al planteamiento artístico y reduciendo las necesidades de código complejo; pero tienen que aprender código, deben entender y saber generar estructuras lógicas de programación. Tienen que trasladar las cuestiones técnicas del proyecto a la forma de algoritmos, esbozar diagramas de flujo y luego traducirlo al lenguaje del código.
No hay simples códigos trabajando cuando las personas interactúan con las imágenes, entre ellos está su cultura, o su contexto. Esta es la razón por la que he insistido en la noción de visualización (con especial referencia a lo que hacen los seres humanos), tanto en la creación como en la respuesta, tanto en la generación como en el reconocimiento hay intersecciones entre conocimiento, información y pensamiento.
La apuesta de renovación de las facultades de Bellas Artes no puede contemplar el desarrollo del pensamiento siguiendo polaridades: pensamiento artístico-filosófico por un lado y científico por otro. No. La base del pensamiento visual y la percepción espacial se fundamentan en estructuras geométricas cuyo origen está vinculado a las ciencias ópticas y el estudio de la luz. También el sonido y la música tienen una base matemática. La hibridación y feedback del análisis de los lenguajes visuales, sonoros, lingüísticos e informáticos, permite generar otras formas sintácticas de expresión, que como el mundo actual, son más proteicas, cambiantes.
[…] mundos totalmente alternativos se han hecho computables a partir de los números. Estos mundos vivenciables (estéticos) le deben su posible fabricación al pensamiento formal matemático. Lo que tiene como consecuencia que, no solamente los teóricos científicos y los técnicos que aplican sus teorías tienen que aprender el código de este nuevo nivel de conciencia, sino en general todos los intelectuales (y sobre todo los artistas), si es que quieren tomar parte en la empresa cultural del futuro. (Flusser)
Los conocimientos, vivencias y valores que argumentaba Flusser pueden ahora llegar por la `pantalla hasta el espacio cotidiano, y entre las cosas, banales o extraordinarias, que esta información digital ofrece, debemos valorar positivamente el esfuerzo de muchos colectivos o comunidades, diluidas por la red, que desinteresadamente facilitan el aprendizaje de este lenguaje, aportando herramientas abiertas para que ese conocimiento se expanda y poder construir esa empresa cultural del futuro de una forma más consciente, activa y generosa que la que actualmente estamos viviendo.
Por eso, en las universidades debería priorizarse el software open source y las plataformas libres, si somos realmente conscientes y responsables de las habilidades que debemos transmitir a los estudiantes. Todos conocemos de forma más próxima o lejana el tráfico de software pirata en los centros, o la dificultad de los estudiantes para practicar lo aprendido suficientemente cuando las horas de trabajo independiente (ECTS) no pueden realizarse en los laboratorios de ordenadores por falta de recursos.
El uso de software de código abierto, en el contexto de una universidad que cuenta con investigadores informáticos, presenta además la oportunidad de adaptar las funcionalidades del software a las necesidades concretas que requiere la enseñanza de cada una de las materias vinculadas a las tecnologías de la imagen. Su uso eliminaría la presión que sienten los estudiantes para obtener las aplicaciones que requiere su aprendizaje, pero más importante aún es el hecho de transmitir como conocimiento, y experiencia, el sentido participativo de involucrarse en proyectos comunitarios en los que se desarrollan esas herramientas, y que consideramos totalmente afín a los cambios necesarios de posicionamiento, reflexión y reacción positiva que señalan las bases de este Congreso.
Puesta en práctica
Durante el curso 2012-13 se ha utilizado GAmuza (rel.0420) para la asignatura Medios interactivos y electrónicos 1 [9 ECTS], en el 3º curso del Grado en Bellas Artes en Valencia y, pese a que todavía cuenta con muchos menos ejemplos y tutoriales en internet que Processing, openFramewoks u otras aplicaciones que se dirigen más o menos al mismo ámbito, el nivel de conocimientos adquirido y su aplicación en prácticas y proyectos ha sido superior al esperado, y también al obtenido años anteriores con otros software para estudiantes de licenciatura o máster que estaban en cursos superiores.
El estudio de lenguajes de programación en el contexto de Bellas Artes conlleva un esfuerzo añadido por el tipo de habilidades y técnicas de estudio que desarrollan mayoritariamente estos estudios. Sin embargo hemos observado que en las asignaturas optativas de los primeros cursos, los estudiantes tienen menos rechazo y más energía para saltar el obstáculo de la técnica, del estudio del código necesario que les permita llegar a la realización de proyectos con interactividad, sonido, o comunicación con redes sociales, que generacionalmente les son muy afines. Esta afinidad propició un mayor feedback con lo que los estudiantes querían conseguir, verbalizando sus dificultades y empeños, llegando a modificar o ampliar algunas librerías del software para dar respuesta a esas necesidades.
Es importante transmitir a los estudiantes que en la técnica subyace la naturaleza de los elementos que propician esa interactividad, la generación de formas con el sonido, el movimiento de dispositivos por código…, y que aprender a programar les permite ver bien como está construida la casa del arte digital, la estructura de sus canales de entrada, las puertas de salida al exterior y el laberinto que se esconde en su interior. Desvelar la estructura de la técnica es comprender ese complejo plano constructivo, a partir del cual pueden empezar a esbozar los diagramas de flujo con lenguaje pseudohumano, y planificar las instrucciones que posibilitan distintos procesos, o comportamientos.
Programar implica así pensar instrucciones ordenadas en estructuras lógicas para generar determinados cambios, comportamientos, o procesos creativos. En el campo de las artes visuales, para expresar una idea estamos más acostumbrados a pensar en imágenes, o estructuras, que en algoritmos y lógica, por eso los software de código creativo están orientados a visualizar rápidamente en pantalla las formas o imágenes, utilizando un lenguaje de programación muy simplificado.
Pero todas estas facilidades pueden carecer de sentido si el estudiante no ve la relación de estos procesos con el mundo del arte interactivo, es decir, referencias de dónde y cómo se han aplicado procedimientos semejantes en resultados concretos. Por eso, junto con la técnica es necesario impartir una porción de historia del arte posmediático, e introducir nociones de estética y teoría de los media para que junto a su desarrollo técnico el estudiante adquiera también el sentido crítico y discursivo de las humanidades, fusionando el conocimiento propio del arte con el del lenguaje informático. De ahí que al inicio de esta comunicación señaláramos que «para reducir tensión a la mixtura» nuestra experiencia se ha vertido en el desarrollo del software GAmuza.
La idea fue pensar en un concepto «extremadamente ágil» [como el antílope] y realizar un software para hacer el estudio/comprensión/desarrollo del arte electrónico más ágil, saltando por encima de los típicos problemas técnicos.
Conclusiones
Dos conclusiones destacan en esta comunicación:
1 – Recordar la importancia de utilizar software open source en la universidad, y también desarrollarlo. Esto permitiría adaptarlo a las necesidades específicas de las materias a impartir, trasmitir a los estudiantes el nivel técnico que precisan y la filosofía que los envuelve, con la finalidad de formar gente que utiliza la tecnología y no lo contrario.
2 – Demostrar que es posible, mediante el caso del software GAmuza, que ha sido desarrollado en la facultad de Bellas Artes de Valencia. Tras observar y analizar el funcionamiento de Processing y openFrameworks en la enseñanza de arte digital de los centros de arte más reconocidos y también en proyectos de arte profesionales, GAmuza se configura como un entorno de programación para openFrameworks muy similar al de Processing, pues no precisa compilar y tiene una sintaxis simplificada (lenguaje Lua), es decir trabajar con la robustez de openFrameworks pero con la simplicidad de Processing, añadiendo otro nivel de facilidad a los estudiantes con los módulos gráficos que comunican directamente con dispositivos externos, como cámaras de video, sensor kinect, entrada/salida de audio, o dispositivos eléctricos vía Arduino. Todo ello sin ocultar las estructuras de programación.
GAmuza es open-source, se distribuye bajo licencia MIT y de momento está desarrollado para Linux Ubuntu x86 de 32 y 64 bits, y para Mac OSX 10.6 o superior.
Sirva de paso esta comunicación para animar a todo aquel apasionado en la programación open source a colaborar en el desarrollo de nuevas funcionalidades o versiones de GAmuza .
Fuentes referenciales
- Alonso, Marcos; Geiger, Günter y Jordà, Sergi: An Internet Browser Plug-in for Real-time Sound Synthesis using Pure Data, en International Computer Music Conference Proceedings, 2004, [texto on-line] <http://hdl.handle.net/2027/spo.bbp2372.2004.168 > [14.05.2013]
- Burnett, Ron: How images think, Massachusetts, The MIT Press, 2004 p. 203, [texto on-line] [06.08.2012] <http://www. learndev.org/dl/HowImagesThink.pdf>
- Flusser, Vilem: La sociedad alfanumérica en Revista Austral de Ciencias Sociales nº 9, 2005, p. 105.
- Levin, Golan: Essay for 4×4: Beyond Photoshop with Code, 2001 [artículo on-line] [12.05.2012] <http://www.flong.com/texts/essays/essay_4x4/ >
- Noble, Joshua: Programming Interactivity. A Designer’s Guide to Processing, Arduino, and openFrameworks, Sebastopol, CA, O’Reilly Media, 2009
- Ramsay, Stephen: Algorithms are Thoughts, Chainsaws are Tools. [04.09.2012] <https://vimeo.com/9790850>
- Reas, Casey y Fry, Ben: Processing. A programming handbook for visual designers and artists, Cambridge, Massachusetts, The MIT Press, 2007
- GAmuza, [página web] <http://gamuza.d3cod3.org/ > [12.05.2012]
- openFrameworks [página web] <http://www.openframeworks.cc/ > [15.05.2013]
- Processing, [página web] < http://www.processing.org/ > [03.06.2013]