Processing es un lenguaje informático utilizado por los artistas visuales para hacer arte generativo e interactivo. Además de crear gráficos en pantalla, el lenguaje se utiliza también para hacer todo tipo de esculturas interactivas y artes físicas. Al principio, es difícil entender para qué sirve, pero basta con decir que el mundo del arte ha adoptado Processing como su lenguaje de programación preferido.

En este artículo, vemos cómo el grupo The Sinatra Test creó una portada para su próximo álbum que crea una versión única para cada usuario a través de una aplicación para Mac distribuida con la música.

Generador de portadas de álbumes

Para su próximo álbum “ambientertainment”, The Sinatra Test quería tener un diseño de portada que reflejara la naturaleza generada de la música del álbum. Processing ofrecía un método sencillo y fácil de aprender para hacer precisamente eso.

El código para la portada del álbum aún no está terminado en el momento de escribir este artículo, pero están lo suficientemente satisfechos con el resultado como para permitirnos ver los resultados hasta ahora y publicar el código de esta primera versión para que la gente lo pruebe por sí misma.

El código es muy corto y simple, pero hace el trabajo. En esta versión actual en el Mac, la ejecución de la compilación de la aplicación crea una variación en el diseño y lo guarda en la misma ubicación que la aplicación.

procesamiento-mac-cover

Para instalar Processing, ve a la página de descargas del sitio y haz clic en el enlace correspondiente a tu plataforma. Cuando se haya descargado, descomprime el archivo ZIP y arrastra la aplicación a tu carpeta de aplicaciones.

Convertirlo en un PDF

El primer paso es cargar la biblioteca de creación de PDF:

importar processing.pdf.*;

Luego establecemos el tamaño de la salida en pantalla, en este caso 500 píxeles cuadrados:

size(500, 500);

Evidentemente, la salida es un gráfico vectorial en PDF, por lo que se puede escalar a cualquier tamaño sin que se degraden las líneas.

A continuación tenemos que definir un nombre de archivo para el PDF resultante y empezar a grabar los gráficos a medida que se van creando para almacenarlos en la imagen final:

beginRecord(PDF, “cover.pdf”);

A continuación se definen los colores de la imagen. El fondo es negro:

background(0);

En caso de duda, aleatorizar

Para crear los colores de los hilos se decidió que fueran mayoritariamente verdes pero con variaciones. La estrategia fue que el RGB de los colores fuera aleatorio pero que el elemento verde siempre pudiera ir más alto que el rojo o el azul. El verde puede llegar hasta 256, pero los otros dos canales están limitados a 100.

Así que definimos las variables flotantes rojo, verde y azul con los siguientes valores:

float rojo = random(100);float verde = random(255);float azul = random(100);

Esto crea un nuevo colorido cada vez, verde cada vez, pero con diferentes grados de rojo, verde y azul para ajustar la tonalidad. Siempre hay más verde que rojo o azul.

¿Pelo, hojas o cebollino? Quién sabe!

Ahora el código para dibujar las hebras. El peso de la línea de cada mechón es aleatorio, y la posición horizontal de la parte superior e inferior de los mechones también se varía aleatoriamente dentro de ciertos parámetros. Las hebras son 60% translúcidas, lo que resulta en un agradable efecto de hebras de cabello:

for(int i = 0; i <500; i++){ float r = random(10); strokeWeight(r); stroke(red, green, blue, 60); float offset = r *5.0; line(i-20, 500, i+offset, 0);}

Ahora algo de texto

A continuación hay que crear la fuente. Para su uso en Processing, las fuentes deben ser convertidas a un formato .vlw. Esto se hace desde una cara en el directorio de fuentes en el sistema anfitrión.

Nota: esta es un área en la que el grupo todavía está trabajando. Para las aplicaciones web, la fuente convertida puede ser almacenada en el servidor, nunca siendo instalada en el sistema del usuario.

PFont font;font = createFont(“CooperBlackMS”,24);textFont(font);

Una vez creada la fuente se escribe el texto en la imagen, el nombre de la banda arriba a la izquierda y el nombre del álbum abajo a la derecha:

text (“the sinatra test”, 10, 20);text (“ambientertainment”, 250, 490);

Por lo visto, hubo que hacer muchas pruebas y errores para colocar el texto correctamente, y las coordenadas aparentemente arbitrarias son las que mejor se veían en la pantalla.

Envolverlo

Entonces se termina la grabación del PDF, deteniendo efectivamente el programa y escribiendo la imagen terminada en el disco con el nombre de archivo definido anteriormente:

endRecord();

Finalmente el programa imprime un mensaje en la consola para indicar que ha terminado:

print(“¡Hecho! Nuevo álbum creado”);

Refinamientos

La versión final de la aplicación tendrá algunos refinamientos, como una fuente incrustada y una interfaz de usuario un poco más interactiva, quizás permitiendo al usuario preestablecer algunos parámetros.

Además, el programa Processing en el Mac escribe Java por defecto para hacer aplicaciones, que es para lo que se utilizó en este caso, pero se pueden incluir otros modos como Coffeescript, Javascript y Python si se desea. También se está investigando una versión del software codificada para Javascript que crea la portada del disco a través de una página web y la descarga en el ordenador del usuario.

La generación de arte mediante software es una tendencia creciente en el arte moderno. ¿Has tenido alguna experiencia con Processing o el arte generativo? Danos tu opinión en los comentarios.