Carolina Antoniazzi – Generative Landscape

/* OBIETTIVO VISIVO:
Un paesaggio urbano notturno interattivo. L’obiettivo è rappresentare una città che cambia atmosfera in base alla posizione del mouse: dal giorno al tramonto fino alla notte. Il cielo è dinamico, le stelle appaiono gradualmente e gli
edifici hanno finestre che si accendono e si spengono in modo realistico.

SCOMPOSIZIONE LOGICA:

  1. Background: Ho creato la funzione “drawSky()” che disegna un gradiente verticale riga per riga. Il colore cambia in base alla posizione del mouseY, utilizzando map() e lerpColor() per passare da giorno > tramonto > notte.
  2. Stelle: Nel setup genero le stelle salvando le loro coordinate in un array. Nel draw vengono disegnate con opacità variabile: appaiono solo di notte (valore del mouse alto) + ho aggiunto una leggera variazione random per simulare un effetto di “scintillio”.
  3. Luna: La funzione “drawMoon()” disegna la luna con un alone. La sua posizione verticale dipende dal mouseY. Uso push() e pop() per isolare le trasformazioni.
  4. Città: Gli edifici sono generati con la funzione
    “creaEdifici()”, che chiama una funzione modulare “creaEdificio()”. Ogni edificio contiene un array di finestre con proprietà (posizione, stato, luminosità).
  5. Finestre: Ogni finestra ha un timer e un target di luminosità. La funzione “aggiornaFinestre()” gestisce il cambio graduale di stato tramite
    lerp(), mentre “disegnaFinestre()” le disegna con colori diversi.

USO AI:
Ho utilizzato l’AI principalmente come supporto nella costruzione degli edifici, in particolare per capire come gestire la profondità visiva. Ho chiesto come variare luminosità e colori in base a un parametro di “depth”, sia per gli edifici che per le finestre, in modo da rendere quelli più lontani più scuri e meno luminosi. Questo mi ha aiutato anche a strutturare meglio il codice e a gestire le finestre come elementi indipendenti con comportamenti dinamici.
*/

Commenti

Lascia un commento