2. Crear con código

2.2. Herramientas de programación creativa

2.2.6. Cinder

Cinder, lanzada en 2010, es un librería de programación en C++ de código abierto creada por Andrew Bell con aportaciones de Hai Nguyen.

Se pueden crear gráficos en 3D, formas generadas con algoritmos, procesamiento de imágenes, trabajo con texto y tipos de letra personalizados y edición de audio y vídeo. Cinder es además multiplataforma, de manera que el mismo código funciona en MacOS, Windows, Linux, iOS y Windows UWP. Por sus características, se compara a menudo con openFrameworks y también se considera una alternativa para C++ de otros entornos como Processing (basado en Java), Microsoft Silverlight o Adobe Flash. Cinder se emplea a menudo en instalaciones interactivas y basadas en las visualización de datos o la simulación de propiedades físicas.

Los propios creadores afirman que es mejor empezar con ejemplos creados e ir aprendiendo a partir de los mismos, para lo cual es posible acceder a numerosos programas de muestra (alojados en GitHub) y también emplear las herramientas Tinderbox, pensada para facilitar la creación de nuevos proyectos y Cinderblocks, una colección de librerías y código que se combinan con Tinderbox para integrar rápidamente ciertas funciones en un proyecto.

Crear un proyecto en Cinder requiere estar familiarizado con el lenguaje C++ y el uso de OpenGL. Hay tres funciones principales que estructuran cualquier proyecto:

  • setup( ) inicializa las variables al empezar el programa.
  • update( ) modifica dichas variables.
  • draw( ) visualiza el resultado en la pantalla.

A estas funciones se suman dos más:

  • prepareSettings permite definir varios parámetros del programa antes de iniciarlo, tales como el tamaño de la ventana o los fotogramas por segundo.
  • shutdown se sitúa justo al salir de la aplicación, para liberar memoria o apagar dispositivos.

Cinder emplea el espacio de nombres (namespace) de C++ para distinguir las funciones, de manera que todos los elementos empleados en esta librería se encuentran dentro del espacio de nombres cinder:: (abreviado ci::). El uso de esta convención ejemplifica cómo el trabajo con Cinder se basa en un conocimiento previo de C++, y es que a diferencia de otros entornos aquí es preciso escribir código conociendo la sintaxis y los diferentes recursos de que dispone la librería. En el sitio web se facilita una lista de referencias por categorías que puede servir para encontrar una función concreta, pero (como suele ocurrir con otros lenguajes de programación) es mediante ejemplos ya realizados como se pueden descubrir mejor las posibilidades de Cinder.

En este sentido, el primer uso de Cinder pasa por crear un proyecto nuevo con Tinderbox y explorar alguno de los proyectos de muestra. En Tinderbox escogemos la localización y el nombre del proyecto, así como el tipo de proyecto a realizar y, finalmente, se escoge un compilador (XCode o Visual C++2010). El programa crea el proyecto y las referencias a la librería de Cinder, así como un código de muestra y un ejemplo con el que se puede empezar a trabajar. La guía Hello Cinder ofrece además un recorrido informal por las fases de la creación de un proyecto, desde la creación de la ventana en la que se mostrarán los resultados a la inserción y manipulación de imágenes, extracción de datos, control por medio del teclado y ratón, creación de un entorno en 3D y trabajo con partículas aplicando reglas, entre otros.