Relax matematico

Transcript

Relax matematico
Relaxmatematico
Gianandrea Ghirri aka LAV
Mettere le mani nei sistemi di numeri non è fare matematica nè fare arte. E però di tanto in tanto saltano fuori
risultati che danno soddisfazioni para-artistiche e stimoli
intellettuali.
In questo breve testo voglio presentare a volo d’uccello
alcune esperienze possibili nel mondo delle ricursioni, cioè
di quello spazio visivo in cui appaiono forme magiche dalla
ripetizione algoritmica di formule, più o meno semplici.
In questo mondo tutto è ricorsivo, iterato, ripetuto: ogni
immagine presentata salta fuori da un insieme di formule,
dalle più semplici sino alle più complesse, iterate un numero molto grande di volte.
Per i profani sarà utile sapere che tutto deriva dall’incontro tra la potenza computazionale dei processori moderni e alcune intuizioni sulla geometria non euclidea. In
particolare sulla geometria frattale e tutte le sue varianti
(quella geometria frazionale che descrive così bene i fenomeni e gli oggetti della natura, coste, foglie, nuvole, galassie e via così) ma anche sui sistemi di attrattori strani,
cioè sulla matematica che descrive il caos, la turbolenza e
l’evoluzione dei movimenti all’interno dei fluidi.
La formula madre di tutto è la seguente:
an+1 = an2+Po
e cioè, in un fluire di calcoli, il prossimo numero complesso a è uguale al precedente a elevato al quadrato e
sommato ad un altro numero complesso P
Facciamolo fare un milione di volte questo calcolo al
nostro computer, per ogni punto dello schermo, controlliamo quanto tempo ci mette questo punto a fuggire dall’ordine e finire nel caos, definiamo una scala di colore per
questa sua tendenza alla follia e coloriamo lo schermo con
tutti questi punti.
E poi rilassiamoci perchè è solo il primo passo.
Lightwave 9.x, Xenodream 1.5,
Photoshop CS2 e Apophysis 2.x
L’immagine presentata fa parte di un lavoro sulle illustrazioni dell’Inferno dantesco. All’interno della
enorme carrellata che andava dalle miniature dei codici manoscritti coevi a Dante sino alle opere di artisti contemporanei e viventi, volevo mettere almeno
un’immagine tutta concepita e realizzata in digitale.
Affrontando la lettura del Canto V subito mi è venuta l’idea di lavorare nello spazio frattale di Xenodream e di Apophysis. Sin da liceale ero stato colpito dal caos ordinato, dall’ordine caotico che Dante
aveva saputo descrivere nella sua opera. Il volo delle
anime come quello degli storni... un attrattore vivente.
Una dinamica frattale.
Io venni in loco d’ogne luce muto,
che mugghia come fa mar per tempesta,
se da contrari venti è combattuto.
La bufera infernal, che mai non resta,
mena li spirti con la sua rapina;
voltando e percotendo li molesta.
Quando giungon davanti a la ruina,
quivi le strida, il compianto, il lamento;
bestemmian quivi la virtù divina.
Intesi ch’a così fatto tormento
enno dannati i peccator carnali,
che la ragion sommettono al talento.
E come li stornei ne portan l’ali
nel freddo tempo, a schiera larga e piena,
così quel fiato li spiriti mali
di qua, di là, di giù, di sù li mena;
nulla speranza li conforta mai,
non che di posa, ma di minor pena.
(Inferno, V, 28-45)
Casualmente, lavorando attorno ad una semplice configurazione in Xenodream, ero riuscito, un po’
di tempo prima, a isolare la mesh che è illustrata in
questa pagina. M’era piaciuta subito e immediatamente avevo identificato in essa uno spazio di rotta
ruina. L’avevo salvata in formato obj, l’avevo convertita e semplificata in Modeler e messa a stagionare
sull’HD.
Appena giunto il momento l’avevo presa e inserita
nella scena di cui voglio parlare.
La mesh è costituita da un numero piuttosto alto
di poligoni (748027) ma ha bisogno solo di essere
texturizzata. Per farlo ho utilizzato una delle mie superfici di pietra salvate nei presets, a cui ho dovuto
solo tarare un po’ la specularità e i bump. Cercando
di dar corpo ad una pietra che Dante ci presenta in
un altro luogo della Commedia:
Là ne venimmo; e lo scaglion primaio
bianco marmo era sì pulito e terso,
ch’io mi specchiai in esso qual io paio.
Era il secondo tinto più che perso,
d’una petrina ruvida e arsiccia,
crepata per lo lungo e per traverso.
Lo terzo, che di sopra s’ammassiccia,
porfido mi parea, sì fiammeggiante,
come sangue che fuor di vena spiccia.
(Purgatorio, IX, 94-102)
La scena, in realtà, è composta da uno spazio
ben più grande della mesh originaria (azzurra nell’immagine a destra).
Volevo riprodurre un set utilizzabile anche per
future riprese, magari animate, e quindi ho disegnato parte dell’imbuto infernale, semplicemente
con un cono rovesciato molto suddiviso. Nel cerchio più alto, quello corrispondente al girone dei
lussuriosi, ho applicato il plugin greeble-nurnies,
per fare delle semplici geometrie che rappresentassero le rocche o eventuali fortezze diaboliche.
Non sono presenti nel testo originale, ma io e
Dante ormai siamo abbastanza amici e suppongo
non se ne avrà a male.
E’ pur vero che quelle geometrie, con l’illuminazione e il compositing fatto in Lightwave, sono
quasi completamente invisibili. Ma sono lì, in effetti, e possono sempre servire.
L’illuminazione è composta da molte lights di
tipo point, sempre con il falloff attivato, a simulare
ipotetici fuochi nei gironi inferiori.
In effetti questo girone è d’ogne luce muto.
Cioè privo di ogni luce.
Ma inevitabilmente Dante doveva vederci.
Possiamo anche pensare a una licenza poetica, ma io preferisco interpretare letteralmente:
ogni elemento nella scena dantesca si esprime
attraverso il rumore, il suono e il movimento, attraverso una sinfonia cacofonica di movimenti. La
luce, in questo spartito, probabilmente scandiva
le pause, il silenzio.
E dunque la luce sarà provenuta dal basso. Le
anime stesse saranno state in qualche modo luminose, a stagliarsi nell’aere perso.
Una volta risolto il problema dell’illuminazione
dal basso, ho posizionato una luce distant abbastanza debole quasi in verticale, per schiarire un
po’ il tutto.
Inizialmente avevo disegnato un vortice di punti in
modeler e lo avevo usato come matrice di clonazione
per un semplice oggetto anima. Avevo così ottenuto
diverse centinaia di anime (un box subpatched abbastanza complesso). Ma avevo sovraccaricato la scena senza ottenere quello che volevo: le anime erano
troppo evidenti e ... realistiche.
Avevo poi provato con un oggetto emitter usando
FXlinker. Ma non cambiava il risultato.
Allora mi sono ricordato di un’immagine ottenuta
con Apophysis dal mio amico Exper. Un’immagine di
cui aveva messo a disposizione, nel circuito del public domain, la formula, e che vedete qui sopra.
Ho provato ad inserirla come sfondo in texture
environment ma non avevo abbastanza possibilità di
posizionarla e di ruotarla. Dunque ho usato semplicemente un poligono di sfondo. Che potevo spostare, piegare, stirare in lungo e in largo. Modificandone
pure l’apparenza giocando sui valori di luminosità e di
fusione del layer con il colore di sfondo.
In questo modo ho potuto utilizzare la folla delle
anime disegnate in Apophysis, che, per me, sono
straordinarie con quel movimento a spirale, e posizionarle in modo che Dante e Virgilio fossero il centro
illusorio dell’attrattore.
In ultimo ho disegnato in Photoshop le figure dei
due viandanti. Se vi sforzate un po’ le vedete sul bastione in alto a destra. Due tradizionalissmi Dante e
Virgilio.
In Photoshop ho anche applicato un paio di livelli
con mascheratura sulla luminosità e sulla saturazione.
Qui a fianco una immagine allo stadio precedente, un po’ meno astratta. Si vedono sullo sfondo le
strutture delle pareti
infernali illuminate
da un paio di luci
volumetriche, le anime immerse dentro
una leggera nebbia,
anch’essa volumetrica.
L’immagine risultava un po’ troppo
confusa e illuminata, a mio giudizio.
Le varie fasi di affinamento della
mesh in Xenodream. Dall’alto al basso, dalla manifestazione iniziale (del
mistero) al raffinamento finale. Dove
il sospetto avuto all’inizio, di essere di
fronte ad un baratro fatto di gradoni,
si realizza quasi del tutto.
Riconosco di essere stato anche
ispirato da una immagine di Moebius
(da Missione su Centauri) degli anni
‘70 che vedete sotto a sinistra. Con
degli splendidi diavoli, appollaiati sui
bastioni rocciosi, che attendono il povero spazionauta scagliato fuori dal
continuum spaziotemporale.
Molto semplice questo: un’immagine prodotta in Apophysis e utilizzata come mappa di trasparenza su un piano in
Lightwave. Semplice, ma a me piace un sacco. Modo economico per suscitare fantasmini.
Attrattori in Lightwave
Un altro modo abbastanza eccitante di creare paesaggi senza modellare, in modo tradizionale, nemmeno un
poligono è usare il mondo degli attrattori strani, inserito
nell’universo Lightwave dal plugin codificato da Tim Dunn,
Aurora per i frequentatori dei forum dedicati a Lightwave.
to veloce, Surfaces e Volume. Secondo i desideri.
Ho già scritto un tutorial introduttivo per l’uso del plugin.
Lo potete scaricare qui: www.dartrender.too.it, nella sezione tutorial.
La scena che contiene un oggetto di questo genere è
però piuttosto complessa da gestire. Essendo un attrattore, la nuvola dei suoi punti ha coordinate assolute e non
modificabili. Cioè, in maniera inopinata, non si può ruotare o spostare l’oggetto. O meglio: si può. Ma non accade
nulla.
Qui darò delle indicazioni molto sommarie, indicando il
mio modo di operare.
Innanzitutto, nella scena vuota, aggiungo un oggetto null
e gli applico il plugin Aurora_Attractor attraverso il pannello
ObjectProperties>Geometry>Add Custom Object.
Il secondo passo è quello di attribuire la natura Hvoxels
al null, rendendo visibili le particelle e attivando Viper per
controllarle in tempo reale.
All’oggetto si possono applicare la modalità Sprites, mol-
Lavorando sulle textures dei voxels si possono ottenere
i risultati più vari ed eccitanti, visto che in LW9.x la velocità
di render degli Hvoxels è molto aumentata.
A questo si pone rimedio piuttosto semplicemente: si costruisce la scena dopo aver scelto la pasizione ottimale
della camera. Si collega la camera ad un oggetto target e
la si imparenta ad un oggetto master. Allo stesso oggetto
master si imparentano tutti gli altri oggetti della scena, le
luci e eventuali altre telecamere.
In questo modo è abbastanza immediato cambiare la
posizione della scena, la
sua grandezza relativa
all’attrattore, il punto di vista e quant’altro, solo ruotando, ridimensionando o
muovendo il master.
La nuvola dei punti dell’attrattore si comporterà come un oggetto, con
ombre e riflessioni, spazi
e volumi. Interagirà con
altre entità volumetriche
(la nebbia ad es.) e potrà anche fornire riparo
al subacqueo che possa
imbattersi in uno squalo
tigre in caccia.
Apophysis (e Photoshop)
Apophysis è un programma di pubblico dominio, codificato sia per Windows che per Mac e Linux. L’algoritmo
implementa un particolare tipo di frattali, le cosmic flames
ideate da Scott Draves.
Davvero queste fiamme hanno un aspetto affascinante,
ma soprattutto sono abbastanza facilmente gestibili, nei
loro risultati grafici, attraverso molti modificatori, tra cui il
colore, che ne variano di poco o completamente l’aspetto.
Addirittura queste configurazioni del caos sono animabili
e anzi, dato che renderizzare un’animazione abbastanza
lunga e a media risoluzione comporta tempi di calcolo
davvero onerosi, sul WEB è nata una rete di server dedi-
cati al rendering condiviso delle sheeps (così si chiamano
le formule escogitate dagli utenti/ricercatori/artisti).
Io non ho mai provato la strada delle animazioni, anche
se ammetto che deve per forza essere affascinante. Per
il momento mi accontento di renderizzare immagini statiche che lascio così come sono, integro nei progetti 3d o
rielaboro in un programma 2d, come Photoshop o Gimp.
Qui sopra la finestra principale di Apophysis 208 beta2,
dove sono elencate (a sinistra) le formule renderizzate in
preview, a destra.
La finestra più importante, però, è la seguente, con la
quale si possono modificare le trasformazioni che si applicano alla formula. Ogni triangolo può contenere tutte
le trasformzioni possibili (ricordate che il tempo di render,
però, è direttamente proporzionale al numero di trasformazioni...) le quali, a loro volta, sono singolarmente gestite da parametri aggiuntivi, come la posizione, il peso
ed altro ancora.
10
Qui non voglio affrontare tutti gli aspetti di questo programma che, anche se di pubblico dominio, è di complessità notevole. E quindi passo subito a parlare della sezione di scripting che soddisfa in me antiche voglie di coder.
Apophysis è dotato di un interprete di script con un linguaggio semplice e completo, con la struttura di base molto delphy like e con funzioni proprie molto ben gestibili
e assolutamente intuitive (cioè, intuitive... si fa per dire...
diciamo che si fanno usare).
Ma ancora più eccitante è che lo scripting, con la velocità
dei moderni processori, è soddisfacentemente interattivo,
con risultati immediati.
Per certi aspetti sembra essere tornati al tempo del LISTEDIT-RUN del vecchio glorioso basic di 8k in una ROM di
64.
Lavorando da apprendista con una serie di script batch
(che generano, cioè, un numero predefinito di disegni con
piccole variazioni l’uno dall’altro) e partendo da una formula che avevo trovato del tutto casualmente, ho scoperto
una famiglia di sheeps molto affascinanti (per me). Quasi
dei biomorfi galleggianti in gocce microscopiche.
Se si riesce a trovare una formula interessante e a modificarla con variazioni minime, si può indagare qualcosa
che assomiglia ad uno spazio reale ma alieno, dove, come
in questo caso, vivono creature evidentemente imparentate tra di loro.
Gli amanti di questo programma, infatti, le chiamano evoluzioni, intese proprio in senso darwiniano. Alcuni incrociano diverse specie di formule, diversi genomi (li chiamano
proprio così) per produrre mutazioni costanti.
Molti amano il programma per l’assoluta astrazione che
produce.
Io cerco sempre di produrre disegni con delle caratteristiche visual, cioè vado alla ricerca di cose che possano
essere riconoscibili come entità del nostro mondo, oggetti
o creature che uniscano il reale con il fantastico, il saputo
con l’imprevedibile.
Probabilmente è una mia caratteristica da nato sotto il
segno del Toro con ascendente Gemelli. Sapete... Quelli
coi piedi per terra, con la testa tra le nuvole ed un certo
dolorino alla colonna vertebrale per la trazione continua.
Famiglia di abitanti delle acque stagnanti attorno
alle foreste di Zigonia, nella quinta dimensione a
destra del bar là in fondo.
Non ci credete, vero?
Nemmeno io :D
11
Quaternioni
Un terzo modo di far danzare al 3d la danza del caos, o
dell’ordine matematico, è quella di usare uno dei numerosissimi programmi di generazione di frattali esistenti in
rete, generalmente free.
La cosa difficile, un tempo, era trovare un programma che
permettesse l’esportazione del disegno-volume-oggetto in
formato riconoscibile dai programmi 3d.
Oggi questo limite è superato e in una semplice ricerca
con Google si arriva a mettere le mani su uno di questi
programmi.
Da diversi anni ero abbastanza interessato a alcuni oggetti attraenti che vengono chiamati quaternioni, come
quello illustrato qui a destra e renderizzato dal programma
JuliaShapes1.1
Dovevo trovare un programma che ne permettesse
l’esportazione.
La suite scaricabile sul sito www.mysticfractal.com permette in versione free l’esportazione degli oggetti in formato obj (con o senza semplificazione della geometria) e
quindi utilizzabili come mesh normale.
L’immagine mostrata qui sopra deriva proprio da un quaternione (la vernice che sta schizzando dal pennello) molto
modificato in modeler con l’uso di stretch e twist e altri modificatori elementari usando falloff particolarmente attenti.
Poi tutto il lavoro è stato assolutamente normale in Lightwave.
L’idea era quella di mostrare un dipinto di Pollock visto da
un’angolatura particolare.
Allora le cose sono state abbastanza semplici. Modellato
il pennello e le setole, posizionati gli elementi al posto giu-
12
sto, è bastato mappare un dipinto in media risoluzione di
Pollock sul piano di vetro, utilizzare la trasparenza alpha
dell’immagine, aggiungere un po’ di dispersione e di bump
alla superficie e renderizzare con appena un po’ di motion
blur e di DOF.
Ah! l’ambiente è una sfera mappata con un’immagine
probe HDRI. Infatti ho utilizzato un pizzico di Global Illumination. Che, infatti, quasi neanche si vede.
Chaoscope e Lightwave
La terza dimensione appartiene di natura a molti attrattori
che, in origine, erano stati concepiti in un sistema XY, e
perciò piatto. E’ bastata aggiungere la dimensione Z, come
poi basterà aggiungere la dimensione T (o i, se parliamo
con i termini cari ai programmatori), cioè le iterazioni che
servono per raggiungere una determinata configurazione,
per affiancare il tempo allo spazio.
Ma l’immagine era sempre proiettata su un piano e, senza ombre e trasparenze, della terza dimensione non c’era
nemmeno l’apparenza.
Ecco dunque intervenire Lightwave, con la sua illusione
realistica della terza dimensione.
da Exper, bellissimo render fatto con Chaoscope, e pubblicata su www.3drecursion.com. L’immagine, quella serie
di ossa poste trasversalmente alla figura, è stata utilizzata in scala di grigio come mappa di scostamento, una displacement map, mettendo sul canale di colore l’immagine
originale a 24 bit. Così si è creata la vera rugosità. Si è
dato corpo a una configurazione che prima poteva essere
visualizzata solo schiacciata sul piano.
L’immagine qui sotto, invece, è un semplice attrattore di
Henon ottenuto tutto in Lightwave con il plugin di Tim Dunn
Aurora.
La terza dimensione qui è reale e navigabile con una teL’immagine in alto deriva da un’altra immagine elaborata lecamera usata a mo’ di navicella di Verne.
13
TopologiE
Le ricerche sulle forme pure. Cioè i volumi e le superfici che appaiono partendo da forme supersemplici come quelle
dei solidi platonici.
Due sistemi soprattutto: l’applicazione manuale di modificatori semplici (estrusione e collegamenti di tipo ‘ponte’ tra
due facce) e la generazione algoritmica con iterazioni semplici.
Il primo caso è permesso da uno straordinario piccolo programma, noto come TopMod, reperibile in rete nel circuito
dell’opensource. Con questo programma ho modellato il cubo del black ICE, un sistema di programmi di difesa delle
banche dati delle corporations dall’intrusione degli hackers anarchici, in Neuromancer di Gibson (nelle due immagini in
alto). Il surfacing, l’illuminazione ed il rendering sono fatti in Lightwave, come sempre.
Sempre con TopMod ho realizzato la gabbia nella pagina a fronte. Non c’è nulla di automatico nella modellazione. Il
procedimento è tutto manuale anche se, ovviamente, con l’uso degli strumenti che il programma offre.
Nelle due immagini acquatiche nella pagina affianco invece ho usato il motore LSystem.
L-System è l’acronimo di Lindenmayer-Systems, dal nome di Aristide Lindenmayer (1925-1989), un biologo olandese
che per primo sviluppò la tecnica usata per generare questi frattali. Lo scopo di Lindenmayer era di riprodurre in modo
virtuale la crescita di svariati tipi di organismi.
L-System è un metodo che permette di ritrovare i frattali, anche i più noti, come Koch, Sierpinski, alberi etc., che si
possono costruire per altra via, purché lineare.
Nel mio caso, ho trovato uno strano crostaceo acquatico (Surfacing, lightning e render in Lightwave. Postproduction
in Photoshop).
Infine nelle due immagini grandi delle pagine 14-15 la modellazione topologica fatta attraverso TopMod ha fatto scoprire due reperti improbabili della prima età del ferro. Utensili nella loro versione maschile e femminile: armi da lancio?
Idoli? Strumenti comuni come grattarole per la schiena o pettini per capelli? O difese contro approcci troppo insistenti?
14
15
16
17
Due parole su quello che mi spinge a fare questo genere di ricerche.
Intanto sono un modellatore poco più che mediocre. Magari un giorno scoprirò il piacere del modellare, ma per ora
sono ancora abbastanza lontano da questo traguardo.
Molto più comodo investigare lo spazio delle configurazioni degli oggetti matematici. Che, ho scoperto leggendo
qua e là, rappresentano un aspetto delle infinite possibilità
con le quali si ordina il reale.
E’ un aspetto in qualche modo filosofico e metafisico in
cui si dibatte la fisica e la cosmologia: c’è il sospetto che
la realtà, prevalentemente non osservabile, si configuri in
tutti i modi possibili che vengono permessi dalle leggi di
quello spazio-tempo in cui appare. E di questa realtà noi
possiamo osservare solo UNA configurazione.
La topologia è un aspetto fondamentale, che sta sotto a
teorie astruse e quasi mistiche, come quella delle brane o
delle stringhe, che postulano, tra le altre cose, l’esistenza del reale come sfumatura di infiniti universi
paralleli, e che si sforzano
di dare una forma all’inimmaginabile.
Io, che di topologia non
so nulla, mi diverto a giocare con strumenti che
uso solo per la loro valenza artistica.
Un altro aspetto affascinante del modo di lavorare
con questi strumenti è proprio il percorso che ti permettono di fare.
In genere, se uso un
pennello, una matita, un mouse, ho in testa un abbozzo di
progetto prima ancora di sedermi di fronte allo strumento.
Che so... Voglio disegnare un paesaggio, voglio animare un robottone, voglio renderizzare una stanza arredata.
Che ho già in testa prima. E così tutto lo sforzo è di realizzare l’idea che già esiste. Uno sforzo a volte frustrante, a
volte molto gratificante, ma sempre molto faticoso!
Con questi oggetti si lavora in modo del tutto diverso:
si passeggia, liberamente, tra le molte configurazioni che,
casualmente, ti si presentano davanti. Si genera l’immagine, in un primo momento, in modo del tutto random, lasciando che quello che può uscire venga
davvero fuori.
E’ una fase abbastanza noiosa del percorso,
questa, soprattutto se ci sei già abituato.
Ma a un certo punto incontri una configurazione che risulta interessante, che dice qualcosa.
La salvi e passi a modificarla leggermente operando sulle numerosissime variabili che la compongono. Non occorre sapere nulla di matematica o fisica per fare queste cose. E’ un po’ come
lavorare con la creta o con i pennelli. I processori
moderni sono abbastanza veloci da permettere
un feedback quasi immediato (per me che ho iniziato a esplorare l’insieme di Mandelbrot con un
programma in basic su Commodore 64... potete immaginare come siano veloci!).
Insomma, si fa del tweaking e si ottengono configura-
18
zioni che si avvicinano all’idea che ti era stata suscitata (e
che magari avevi già in testa senza rendertene conto).
Viene utile, con Apophysis, un po’ di conoscenza della
programmazione, perchè in questo programma si possono comporre degli scripts per automatizzare l’esplorazione e renderla algoritmica. Ma, in genere, è proprio un
lavoro manuale.
Alla fine si ha la mesh pronta per diventare l’oggetto
centrale della scena.
E non è raro accorgersi che quell’oggetto, possibile ma
alla fine casuale, soddisfa esattamente l’idea precisa che
è saltata fuori, che non sapevi di avere in testa, ma che
di certo c’era, da qualche parte, e che aspettava solo di
uscire.
In effetti la cosa è simile all’attività onirica o comunque
ad un processo che libera per pochi momenti lo spazio
all’inconscio.
Attività per quei momenti in cui uno non ha proprio un
accidenti da fare ;)