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!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: