Archivio | Generative Art RSS feed for this section

Progetto Drean!

7 Feb

Il manifesto mi sa’ di deja-vù: “Prima o poi doveva qualcosa succedere, mi dicevo, ed alla fine è successo”.

Siamo quelli nati in Italia più di vent’anni fa e meno di trenta. Una generazione priva di valori e di ideali, che considera il problema della globalizzazione fuori moda e la politica roba da cinquantenni.

Siamo annoiati, scontenti, nel migliore dei casi riusciamo a lamentarci, ma da parte nostra non abbiamo mai avuto intenzione di fare niente, aspettiamo, che qualcun’ altro cambi le cose per noi.

Aspettiamo, e intanto non vogliamo essere disturbati, non leggiamo libri, non leggiamo quotidiani, quello che c’è aldilà del nostro metroquadrato di spazio vitale non ci interessa, ci interessa la stabilità, la normalità, il quieto vivere e il benessere materiale. Lo dicono le statistiche, se dovesse mancarci il denaro saremmo disposti a vendere un organo, a prostituirci, a tradire il paese, gli amici.

Aspettiamo e intanto ci giustifichiamo, continuamente, prima di tutto con noi stessi, continuiamo a ripeterci che non è colpa nostra, che è colpa della società, cercando di rassicurarci. E il più delle volte ci riusciamo. Come se poi quella società non fossimo noi a farla. Come se non ci riguardasse. Come se non fossimo noi a dover costruire il futuro nel quale vivremo.

Siamo apatici, menefreghisti, non crediamo più in niente, ce ne stiamo immobili senza fare niente ad aspettare che il tempo ci passi addosso cercando di farci meno male possibile.

Non abbiamo più voglia.

Non abbiamo più sogni.

Forse è tempo di cominciare a farci qualche domanda.

Sono assolutamente tentato di partecipare… sicuramente lo metto in lista tra le cose da fare a Marzo.

Promesso! preparerò il mio 50×70.

Annunci

Riassunto del Blog 2007

3 Gen

 

Nel 2007 ho (stra)parlato di…

E’ successo che…

  • è nato bl0x, e non è durato neanche un’anno…
  • ho iniziato a sperimentare con l’arte generativa
  • ho scoperto i King Cimson
  • ho arrangiato un videoclip che è andato in onda su tele Lombardia; si trattava di un concorso. Il suddetto viedoclip è stato battuto da un piccione, sicuramente è meglio così.
  • la chiesa ha avuto qualche problema con i suoi dipendenti.
  • due guru dell’informatica “leggermente scopiazzoni” si sono confrontati;
  • Ho fatto la maturità e mi sono diplomato;
  • avvenimenti dopo il diploma e occupazione assillante;
  • ho sviluppato una fobia verso i nuovi baby-consumatori;
  • son stato in un paese folle ed al contempo fantastico;
  • girare per il mondo non ti ripaga di certe cose;
  • ho cercato in modo goffo di scrivere un (breve) pezzo pirandelliano ma alla fine ho preferito sperimentare amplificando i sensi;
  • mi sono iscritto all’università.
  • ho deciso che se facessi il giornalista sarei un giornalista musicale e mi piacerebbe farlo perché potrei scrivere cose tipo questa: zero sforzo/massimo cazzeggio;
  • ho trovato il mio guru;
Poi è arrivato il 2008.

Esperimenti Visivi/2 – Casuale ma organizzato

5 Feb
Siamo partiti con una composizione abbastanza complessa, ma se volessimo fare qualcosa di più semplice? Vogliamo tanti cerchi, tanti cerchi a caso ed una scritta (questa non casuale). Questa volta l’immagine deve essere ferma.

(Cliccate sull’immagine per vedere, 1640×620 pixel, 422.1 KB)

L’immagine ha una risoluzione di 150dpi (molto comoda in editoria) ma il programma eseguibile ha una risoluzione di 75dpi (risoluzione dei monitor normali); durante l’esportazione da Pdf a Jpeg le dimensioni dell’originale sono raddoppiate, da 820×310 a 1640×620 pixel. Per scaricare il file Pdf originale cliccate pure qui (68KB).
Ed ecco il codice:

size(820,310)
colormode(CMYK)
fill(0,0,0,0)
rect(0,0,WIDTH,HEIGHT)
nofill()

for i in range(800):
stroke(random(),0,0,0,1)
s = random(10)
strokewidth(random(100))
oval(random(-100,(WIDTH)), random(HEIGHT), s, s)

for i in range(20):
stroke(0,0,0,0,random(.7,1))
s = random(40)
strokewidth(random(100))
oval(random(600,500), random(100,200), s, s)

fill(1,0,0,0,1)
font(‘Helvetica’)
text(‘Halftone’, random(520,580), random(150,180))
text(‘_Generative’, random(480,580), random(120,180))

Nel primo blocco viene definita la dimensione dell’output [size(820,310) ossia size(WIDTH,HEIGHT)] , Il sistema di colori, la forma ed il colore di riempimento (bianco);
Nel secondo blocco viene definito un insieme di 800 contorni (stroke) con uno spessore random [strokewidth(random(100))] e posizione casuale [stroke(random(),0,0,0,1)] diventerano un numero equivalente di oggetti ovali parametrici (cerchi) [oval(random(-100,(WIDTH)), random(HEIGHT), s, s)]; il parametro s è un valore casuale che varia entro in un intervallo da 0 a 10, numeri interi.
Il secondo blocco è quello che farà da sfondo alla scritta, è simile al precedente come concezione, salvo la definizione del colore dei cerchi e del relativo canale alpha [stroke(0,0,0,0,random(.7,1))], avremo così dei 20 cerchi bianchi semitrasparenti (la loro trasparenza faria tra 0.7 e 1).
L’ultimo blocco genera la scritta con una posizione casuale.
La dimensione dei cerchi colorati è correlata alla dimensione della finestra [size(820,310) ossia size(WIDTH,HEIGHT)].

Nel secondo blocco è stata sostituita la definizione oval con rect.

(Cliccate sull’immagine per vedere, 1640×620 pixel, 108.6 KB)

Per scaricare la composizione in Pdf cliccate qui (31KB).

Esperimenti Visivi/1 – Casuale ma organizzato

29 Gen

1) La casualità è una cosa che mi affascina terribilmente.

2) L’animazione è una delle forme espressive che preferisco, mi piace il concetto di movimento (di qualunque tipo).
3) Voglio organizzare la casualità.

Come posso fare?
Io non so disegnare se non tramite un righello ed una squadra.
Disegnare con righello e squadra vuol dire prendere le misure, prendere le misure vuol dire numeri. Qual’è quello strumento che utilizza numeri e calcola a velocità impressionante?
Il computer.
Ok.. i primi tentativi consistevano nel tirare linee a caso e fare forme geometriche a caso.
Scarsi risultati, io voglio un modo per generare casualità in modo “logico ed ordinato”.
E’ un controsenso? NO! La matematica moderna ci insegna che se una variabile è numero casuale otteniamo un numero infinito di soluzioni. L’importante è saperla scrivere l’equazione. Io e la matematica facciamo a pugni. E se scrivessi questa mia idea?
Del resto la matematica è un linguaggio.
Dopo varie ricerche ho trovato tre programmi, tre sistemi basati su linguaggi diversi per esprimermi.

Processing che usa come linguaggio Java, è multipiattaforma ed è estensibile.
Nodebox che usa come linguaggio Python, il programma esiste solo per mac.
QuartzComposer, è un sistema di librerie, non un vero linguaggio di programmazione ed è il responsabile dell’interfaccia grafica del mac, ed esiste solo per mac.
Il risultato della programmazione è un programma, appunto, che è un insieme di righe di testo scritto che dicono poco o niente. Eseguendo il programma si ottiene il risultato vero e proprio, un po come un concerto: la composizione è nello spartito, chi non sa leggerlo non ci capirà niente; il maestro e l’esecutore (che tecnicamente sono l’interprete e il computer) lo eseguono in modo da rendere accessibile uno spartito anche a 2000 persone alla volta, al pubblico in generale.
Una volta eseguito il codice è possibile salvarlo in due modi: se è un’animazione lo si salva come filmato; se è una rappresentazione fissa un immagine. L’audio merita un discorso a parte.

Ok, dopo questo sproloquio sui tre programmi, torniamo all’idea principale:
Formare un immagine, se possibile una serie di immagini in movimento che sia casuale ed ordinata allo stesso tempo.

Vai col Nodebox: Questo è l’inizio, sono partito incollando il codice di un esempio sul sito di nodebox, e poi l’ho modificato.

size(300, 300) #[dimensioni dell’immagine o dell’animazione finale]

def point(x=WIDTH, y=HEIGHT):

return (random(x),random(y)) #[viene creato un punto di cordinate random x,y]

def abstract(): #[viene data una definizione di astratto, o meglio, ivalori casuali per il punto sono casuali e vanno da 1 a 20, l’insieme oscilla in questo intervallo, quindi i numeri di questo insieme saranno casuali ma andranno dall’ 1 al 20.]

x, y = point()
beginpath(x,y)
for i in range(1,random(20)):
x, y = point(0,HEIGHT/i)
lineto(x,y)
endpath()

if random(100) > 80:
w = random(20,80)
oval(x-w*0.5,y-w*0.5,w,w) #[i cerchi hanno un centro posizionato nel punto 20,80 ed oscillano, si spostano casualmente prendendo come riferimento le cordinate iniziali.]

fill(1,1,1) #[colore dell’ovale]
rect(0,50,WIDTH,HEIGHT)
#[viene creato un rettangolo in posizione 0,50 di dimensioni casuali date dalla definizione data nella seconda riga]

stroke(0,-1.5,random(1.5,0.75),0.3)
#[viene definita una linea, di spessore 1 e il colore varia per intensità in un intervallo da 1 a 40 ma viene smorzata dalle costanti 0.15; 0,75; 0.04 e il fattore correttivo (scelto per tentativi) 24.7). Il colore si distribuisce in modo casuale tra il blu e il viola]
strokewidth(1)

for i in range(40):
fill(i-30,0,random(0.15*i,0.75*i),i-24.7 * 0.04*i)
abstract()

nofill() #[il bordo dell’immagine è una linea nera ed il colore è grigio scuro]
stroke(0.2,0.2,0.2)
strokewidth(1)
rect(0,0,WIDTH,HEIGHT)


fill(1,1,1,0.6)
#[la scritta, posizione ruotata di 90°, il font, le dimensioni, il testo.]
rotate(-90)
font(“Arial Bold”, 20)
text(“HALFTONE”, -10, 80)

Per capirlo mi sono aiutato leggendo una guida liberamente scaricabile dal sito di phyton, in italiano; le variazioni imposte da nodebox le ho controllate guardando il riferimento sul linguaggio nel sito di nodebox stesso. Il resto è stato fatto improvvisando, per tentativi.

Il risultato:

Il codice è lo stesso che ho scritto sopra. Il video è stato fatto eseguendo 300 volte lo script. Sono 15 immagini al secondo per 20 secondi. Molto veloce, forse troppo per vederli tutti… ma io conto sulla ppercezione subliminale. [ .mov 3.0 Mb ]


La versione verde, sono 10 secondi, 3 frame al secondo, quindi il rogramma è stato eseguito 30 volte. E’ più lenta e le trasparenze si vedono meno. Nel programma la definizione coi fattori di correzione per i colori è differente. [ .mov 937 kb ]

Per visualizzare correttamente i video dovete scaricare Quicktime®.
Mi scuso per il tecnicismo, ma penso sia importante spiegare bene le cose, in particolar mod
o se si tratta di processi astratti complicati come programmare con un linguaggio diverso da quello parlato. Spero di non avervi annoiato troppo
In seguito pubblicherò gli altri miei esperimenti, parlerò di processing e del mio preferito: Quartz!