Pràctiques de "Coding Art"

Exploració de patrons generatius avançats a p5.js

1. El Clàssic "10 PRINT"

Concepte: Un dels algorismes generatius més antics. Divideix l'espai en una graella i, per a cada casella, llança una moneda (50% de probabilitat) per dibuixar una diagonal cap a l'esquerra o cap a la dreta, creant complexos laberints.

Tècniques p5.js: Condicionals if/else, iteració de graella, random().

2. Camp de Flux (Flow Field)

Concepte: Simula corrents invisibles (com el vent o l'aigua). Utilitza el soroll de Perlin per assignar un angle a cada punt de l'espai i deixa que les "partícules" dibuixin línies resseguint aquestes forces.

Tècniques p5.js: noise(), cos() i sin() per calcular trajectòries, canal alfa per a traços translúcids.

3. Arbre Recursiu (Fractals)

Concepte: La natura està plena de patrons recursius. Aquest algorisme dibuixa una branca, que al seu torn crida a la mateixa funció per dibuixar branques més petites, creant estructures orgàniques complexes i autoreplicants.

Tècniques p5.js: Recursivitat, push() i pop() per guardar estats de rotació i translació.

4. Corbes de Lissajous

Concepte: Visualització de moviments harmònics complexos. Es dibuixa determinant la posició X i Y basant-se en diferents freqüències d'ones sinusoidals i cosinusoidals que s'entrellacen.

Tècniques p5.js: beginShape(), matemàtiques oscil·lants amb variables de temps (t).

5. Empaquetatge de Cercles

Concepte: Un algoritme espacial que intenta col·locar cercles de diferents mides en un llenç aleatòriament, assegurant-se prèviament que cap cercle es superposi amb els que ja existeixen.

Tècniques p5.js: Arrays per guardar posicions/mides, col·lisions geomètriques amb dist(), bucles d'optimització (while o for).

6. Constel·lacions Connectades

Concepte: Crea un "eixam" de nodes aleatoris. L'algorisme comprova la distància entre cada node de la pantalla; si estan per sota d'un cert llindar, traça una línia. El resultat sembla una xarxa neuronal o constel·lació.

Tècniques p5.js: Geometria de distàncies, iteracions dobles, control de l'opacitat del color (alfa).

7. Anells de Soroll 2D

Concepte: En lloc de dibuixar cercles perfectes, es genera la vora mapejant una circumferència en un espai de Soroll (Perlin Noise), la qual cosa deforma l'estructura per semblar fusta, pedres o topografia.

Tècniques p5.js: Mapeig de coordenades polars a cartesianes (sin, cos) introduïdes a la funció noise().

8. Paisatge Generatiu

Concepte: Aplicació clàssica del soroll 1D per simular muntanyes o onades. Se superposen diverses capes d'onades translúcides amb petits desfasaments per donar il·lusió de profunditat.

Tècniques p5.js: Creació de formes poligonals irregulars tancades amb endShape(CLOSE), desplaçament d'offset (xoff).