2. Crear con código

2.2. Herramientas de programación creativa

2.2.5. vvvv

vvvv fue creado en 1998 por Max Wolf y Sebastian Oschatz como una herramienta para la creación de proyectos multimedia. Junto con Sebastian Gregor y Joreg, todos ellos miembros del estudio MESO, decidieron desarrollar su propio software al comprobar que las herramientas comerciales con las que contaban entonces (Opcode Max, Macromedia Director, Flash y otros) no les ofrecían suficiente libertad creativa. Tras un trabajo que se extendió durante cinco años desarrollaron el entorno de programación que se lanzó en 2002, logrando una gran aceptación entre pogramadores y diseñadores posteriormente. Como software gratuito (para uso no comercial), vvvv sigue desarrollándose en base a las aportaciones de una extensa comunidad de usuarios y el vvvv group, que forman los cuatro creadores originales.

Este planteamiento hace de vvvv una herramienta ideal para VJs que crean espectáculos en directo, así como para artistas que desarrollan instalaciones interactivas o diseñadores que buscan crear prototipos de producto de manera rápida y efectiva. Entre sus principales características están el permitir trabajar con código a la vez que se visualizan los resultados, pudiendo organizar los diferentes elementos que forman un programa y las relaciones entre sí por medio de una interfaz gráfica.

Como otros entornos de programación, vvvv cuenta con librerías y plugins desarrollados por los propios usuarios, que expanden sus posibilidades y facilitan el desarrollo de proyectos sin tener que empezar de cero. Los principales usos de vvvv son la animación 2D y 3D, instalaciones multipantalla (gracias a una técnica denominada boygrouping es posible controlar y sincronizar varios ordenadores desde un ordenador-servidor), motion graphics, vídeo mapping, visualización de datos (a partir de un archivo de base de datos o de datos obtenidos en la red), informática física (vvvv es compatible con Wii, Leap, Kinect, Oculus Rift, Arduino y otros dispositivos), sonido (si bien admite no llegar al nivel de PureData y MaxMSP) y visión artificial (incluyendo detección de movimiento, rostro, color, gesto, etc.). Las posibilidades de creación que facilita este entorno de programación son inmensas y han sido exploradas por numerosos artistas y diseñadores.

Una parte importante del desarrollo y la popularización de vvvv se da en el contexto de la organización NODE Forum for Digital Arts, fundada en 2010 en Frankfurt. Esta organización sin ánimo de lucro crea eventos tales como talleres de programación, exposiciones, performances y debates que tienen lugar en un festival bienal que, durante una semana, reúne a profesionales, estudiantes y artistas de todo el mundo. Entre las colaboraciones desarrolladas en NODE, cabe destacar la convocatoria abierta a artistas que ofrece la empresa FRM, creadora del marco de arte digital FRAMED*, un dispositivo compuesto por una pantalla de 24 pulgadas con un ordenador, cámara y sensores integrados pensado para colgarse en la pared como si se tratara de un cuadro y que puede mostrar una amplia variedad de obras digitales creadas con tecnologías como openFrameworks, Processing, vvvv, Cinder o HTML5, entre otras. FRM promueve, de esta manera, la creación de obras de arte con vvvv exclusivamente para un dispositivo diseñado para acogerlas.

El trabajo en vvvv se lleva a cabo en una ventana en la que no hay absolutamente nada; esta ventana se denomina patch (la programación en este entorno se conoce como patching) y es el espacio en el que se colocarán los nodos, que son los elementos con los que se construye un determinado programa. Cada nodo genera, procesa o envía información y lo hace por medio de una serie de entradas (inlets) y salidas (outlets). En estas entradas o salidas se crean enlaces con otros nodos para ir construyendo el programa. Un tipo de cajas particular son las IOBoxes, que permiten introducir valores que posteriormente se comunican con un nodo para que este procese o envíe la información recibida. Para visualizar los resultados del programa que se está creando con los diferentes nodos, es preciso introducir un nodo denominado Renderer, que lleva a cabo el renderizado en tiempo real del código que se está escribiendo al conectar las cajas.

Los datos circulan de un nodo a otro en función de si los enlaces se establecen en sus inlets o outlets y los resultados se hacen visibles por medio de un renderer. Al modificar los datos, es posible ver cómo los cambios afectan a la visualización en tiempo real. Como herramienta pensada para trabajar con datos en tiempo real, su interfaz presenta similitudes con la de Max/MSP y Pure Data, si bien presenta sus propias particularidades y puede resultar más compleja de usar.