Apuntes de Arte Generativo
- Processing
- py5 un port de Processing para Python
- py5 source
- Install py5
- Generative Design Landing Page Un libro de arte generativo con muchos ejemplos de Processing
- The Nature of Code Un libro de Daniel Shiffman que se puede leer on-line. Simulaciones de procesos físicos con Processing
- Portando todos los ejemplos de Processing a py5 por Alexandre Villares
- Structure Synth
- Design for Complexity with Structure Synth
- Scripting in Structure Synth
- Context Free Art
- Generative Design The book on Github
- Generative Arts Links
py5, un port de Processing a Python
Requisitos
Para que todo funcione correctamente necesitamos:
- Python 3.8
- Java 17
- La biblioteca de gráficos Cairo (esta es opcional, y yo ya la tenía instalada con
apt install libcairo2-dev
)
Instalación
- Instalamos la última versión de Python 3.8 (por precaución no instalo en la última versión de Python pero puedes probar)
|
|
- Creamos un entorno virtual
|
|
- Activamos el entorno e instalamos py5
|
|
- Instalamos java mediante python (asegúrate de que sigues en el mismo virtualenv)
|
|
Con esto ya tenemos todo instalado. Podemos probar py5
con un programa sencillo:
|
|
Java 17
Yo uso Openjdk en mi linux:
|
|
El Java 17 que hemos instalado se queda en ~/.jdk
.
py5
no necesita configuración adicional para usar el Java 17, sabe donde tiene que buscarlo. Si por alguna razón quieres usar esa versión de Java para otras historias puedes añadir un alias, como el siguiente, al fichero de alias (~/.zalias.zsh
)
|
|
Con ese alias podremos activar el Java 17 en nuestra sesión de terminal sin más que ejecutar java17
Modos de funcionamiento de py5
Modo module
Este se parece bastante al modo clásico de Processing. En este modo podemos crear las funciones settings
, setup
y draw
. Ninguna es obligatoria pero en la práctica es raro que no necesites setup
y si quieres algo dinámico te hará falta draw
.
Un ejemplo típico de programa en modo module:
|
|
En setup
podemos invocar funciones de settings
y ahorrarnos escribir esa función, pero todo lo que pertenezca a settings
tiene que ir al principio de la función setup
.
from py5 import *
tendrás problemas con varias cosas. py5 no está programado para soportar este tipo de import que, en todo caso, siempre es poco aconsejable.Modo Class
Nos permite crear Clases que heredan del objeto “Sketch” de py5.
Modo Imported
Imita el funcionamiento de Processing, sin imports ni prefijos en las funciones de py5. Sólo podemos usar este modo desde Jupyter tras instalar el kernel de py5
Modo Static
Para crear imágenes estáticas
openFrameworks
Nos bajamos los fuentes para linux 64bits desde la página web del proyecto, y las descomprimimos en un directorio para proceder a compilarlas.
No hay más que seguir las instrucciones de instalación para linux.
La instalación no es demasiado intrusiva si tienes Ubuntu 18 o mayor y una versión reciente del gcc.
Al instalar las dependencias añadimos los siguientes paquetes a nuestro sistema:
|
|
No te olvides de compilar también el Project Generator.
Structure Synth
Instalamos con sudo apt install structure-synth sunflow