2.2. Herramientas de programación creativa
2.2.2. Processing
Processing es un lenguaje y entorno de programación creado por los artistas y programadores Ben Fry y Casey Reas en 2001 cuando eran estudiantes del Aesthetics and Computation Group del MIT Media Lab, en clases impartidas por el diseñador John Maeda. En su programa Design by Numbers (DBN), Maeda tiene por objetivo enseñar a artistas y diseñadores a crear con código, lo cual constituye la base del proyecto que dará lugar a Processing.
Según afirman Reas y Fry:
La misión original de Processing era crear software que hiciese que aprender a programar fuese accesible para creadores visuales (diseñadores, artistas, arquitectos) y ayudar a los usuarios más técnicos a trabajar con gráficos de manera fluida. Aspirábamos a facilitar a la gente a estar instruida en software, a aprender a leer y escribir software.
C. Reas, B. Fry (2018, mayo). «A Modern Prometheus. The History of Processing by Casey Reas and Ben Fry». Medium [en línea]. <https://medium.com/processing-foundation/a-modern-prometheus-59aed94abe85>
Los creadores de Processing no solo tienen por objetivo hacer que artistas y diseñadores puedan programar, sino también plantear una aproximación diferente a la programación.
Como indica su propio nombre, este software se centra en el proceso más que en el producto final y, por tanto, facilita una concepción más dinámica del propio acto de escribir código.
El entorno de programación permite ir viendo qué resultados genera el código en una interfaz visual y, por tanto, ir descubriendo de forma intuitiva qué se puede hacer y cómo lograrlo. Reas y Fry lo denominan esbozar (sketching) con código. Esta expresión alude claramente a la práctica de bosquejar con un lápiz una idea o un dibujo preparatorio, algo habitual tanto en las artes como en el diseño y también un modo efectivo de ir dando forma a un proyecto por medio de un proceso rápido e intuitivo. Al crear con código, esbozar las ideas en un cuaderno puede ser menos efectivo, puesto que lo que se expresa con texto o dibujos debe traducirse posteriormente a un lenguaje de programación. Por ello, Processing se concibe como un «cuaderno de bocetos» de software, en el que el esbozo se realiza escribiendo código y examinando los resultados en el mismo medio en el que se crea el producto final.
Processing se estructura en tres partes principales:
- Lenguaje de programación. Creado a partir de Java, está pensado para ser fácilmente comprensible y permitir un trabajo intuitivo. Un programa escrito en Processing se denomina esbozo (sketch), para enfatizar la posibilidad de programar de forma abierta a la experimentación y el método de ensayo y error.
- Entorno de programación. Es un programa que ofrece al usuario una interfaz gráfica, el Processing Development Environment (PDE), que permite escribir código y ver los resultados a medida que se trabaja, además de ser el espacio en el que se almacenan los «esbozos» para su uso posterior.
- Comunidad. La comunidad de usuarios de Processing es un aspecto esencial de este proyecto puesto que los creadores comparten el código que han escrito en numerosas librerías que facilitan a otros usuarios desarrollar sus propios proyectos.
Processing ha logrado una gran popularidad entre artistas y diseñadores, y cuenta con una amplia comunidad de usuarios que han hecho de este software uno de los más usados en programación creativa, a la vez que han expandido sus intenciones iniciales.
Más allá de la creación de gráficos y el aprendizaje intuitivo con código de programación, Processing se ha aplicado en innumerables proyectos, incluyendo instalaciones interactivas, visualización de datos, arte sonoro, piezas robóticas y un largo etcétera.
Su éxito se debe no solo a que facilita en gran medida el acceso a la programación a artistas y diseñadores, sino también a que se trata de software de código abierto, gratuito y disponible en los sistemas operativos Windows, Linux y MacOS, siendo los proyectos generados con Processing compatibles con todos ellos.
Explora Processing
En la web www.processing.org puedes descargar el software gratuito (disponible para Windows, Linux y MacOS), ver numerosos proyectos realizados con este entorno de programación y acceder a tutoriales y recursos, además de enlaces a libros que profundizan en el uso de Processing.
El uso de Processing es bastante sencillo. El software presenta al usuario una sencilla interfaz compuesta por una ventana en la que se escribe el código de programación y otra en la que se visualizan los resultados (figura 2). Tras escribir unas líneas de código, basta con hacer clic en el botón «Play» para ejecutar el programa, de manera que resulta fácil comparar el código con el resultado que este produce. En la parte inferior de la pantalla, la pestaña «Errores» informa de cualquier fallo en la sintaxis del código, algo que puede ocurrir frecuentemente puesto que la posición de cada paréntesis, coma o punto y coma (así como los nombres de las variables, etc.) afecta a la correcta ejecución del programa.
PENDIENTE FIGURA 2
Una instrucción sencilla, propuesta en el tutorial escrito por Reas y Fry que se puede consultar en la web de Processing, es la siguiente:
ellipse(50, 50, 80, 80);
Esta línea de código indica al programa que debe dibujar una elipse cuyo centro se sitúe a 50 píxeles del borde izquierdo y 50 píxeles del borde superior del área de visualización, con un ancho y alto de 80 píxeles. De la misma manera, se pueden dibujar otras formas geométricas (arco, línea, punto, cuadrado, rectángulo, triángulo) y composiciones más complejas. Pero lo más interesante es la posibilidad de generar composiciones de forma automática o introducir la interacción con el usuario, por ejemplo por medio de la posición del ratón y la opción de hacer clic. El segundo ejemplo que encontramos en el tutorial es el siguiente:
void setup() { size(480, 120); } void draw() { if (mousePressed) { fill(0); } else { fill(255); } ellipse(mouseX, mouseY, 80, 80); }
Con este código se introducen nuevas funciones, como la de definir el tamaño del espacio de visualización (void setup
), dibujar una determinada forma siguiendo la posición del ratón (ellipse(mouse X, mouseY, 80, 80);
) e introducir cambios cuando el usuario aprieta el botón del ratón (mousePressed
). Estas líneas de código sencillas nos muestran las posibilidades del software, que incluyen tanto la creación de objetos como la asignación de comportamientos y la interacción con otros elementos, que pueden ser tanto el clic de un ratón como los inputs generados por un sensor o un flujo de datos.
Processing facilita la creación de una gran variedad de proyectos de muy diversa complejidad, partiendo de las instrucciones más básicas y añadiendo posteriormente elementos importados de librerías y la interacción con todo tipo de dispositivos. Los numerosos ejemplos que se presentan en la web del proyecto, así como la gran cantidad de tutoriales y recursos disponibles, facilitan dar los primeros pasos con Processing e inspirarse para desarrollar proyectos más elaborados.
Processing para web
Processing.js/ permite trasladar los proyectos creados en Processing a la web sin necesidad de modificar el código ni añadir plugins. El software permite ejecutar el código directamente en un navegador web compatible con HTML5 y cuenta también con una amplia comunidad de desarrolladores.