# Buddhabrot

Il buddhabrot è un rendering speciale dell'insieme di Mandelbrot che, quando viene ruotato di 90 gradi (in senso orario), assomiglia per alcuni aspetti all'immagine di Buddha. Invece quando viene visto ruotato di 90 gradi (in senso antiorario), assomiglia vagamente a una faccia con degli occhiali larghi e triangolari.

## La scoperta

La tecnica del rendering del Buddhabrot è stata scoperta e descritta nel 1993 in un messaggio su Usenet sci.fractals da Melinda Green, che scrisse:
    If I were a religious person I would certainly take this as some sort of sign. (se fossi una persona religiosa di sicuro prenderei questo come una sorta di segno.)
Precedenti ricerche erano arrivate molto vicino a scoprire la tecnica del Buddhabrot. Nel 1988 Linas Vepstas ha spedito immagini del Buddhabrot a Cliff Pickover per fargliele includere nel libro che stava scrivendo: Computers, Pattern, Chaos, and Beauty. Questo portò direttamente alla scoperta dei Pickover stalks. I ricercatori filtravano le traiettorie per riprodurre una immagine simile ad un fantasma tipica dell'arte Hindu. Green all'inizio la chiamò Ganesh, perché un suo aiutante indiano lo ha riconosciuto come il dio 'Ganesh', che è un dio con la testa di elefante. Il nome Buddhabrot è stato adottato più tardi da Lori Gardi.

## Metodi per il rendering

Matematicamente, l'insieme di Mandelbrot consiste in un insieme di punti c nel piano dei numeri complessi per i quali la seguente iterazione
    $z_{n+1}={z_{n}}^{2}+c$
con z$_0$ = 0 non tende all'infinito.
Tuttavia, il Buddhabrot è un render che si ottiene da un contatore su un array bi-dimensionale, un contatore per ogni pixel (l'array bidimensionale è usato per tenere traccia dei due assi). Per iniziare si prendono dei numeri casuali (o, alternativamente, uno spazio uniformemente distribuito) di punti c che vengono iterati attraverso la funzione di Mandelbrot, e, per tutti i punti che escono entro un certo numero di iterazioni, i contatori di ogni pixel dove il valore di z è passato vengono incrementati (un aumento per ogni passaggio). Dopo che un grande numero di valori di c è stato utilizzato, i colori dell'immagine vengono scelti in base ai valori registrati all'interno dell'array (si usano colori diversi o gradienti o scale di saturazione/luminosità).

## Varianti

Il numero di iterazione scelto ha un grosso effetto sull'immagine ottenuta, valori più grandi danno un aspetto più nitido, poiché un numero minore di punti passano da un grande numero di pixel prima di uscire dal set, il render visualizzerà il loro percorso in maniera più chiara.
È possibile generare un'immagine che mostri solo i percorsi dei punti c che impiegano molto prima di uscire, non renderizzando invece quelli che escono velocemente. Questo rimuove l'effetto noise e fornisce un'immagine molto più dettagliata.
È possibile creare una immagine composta da tre rendering con differenti numeri di iterazioni e differenti colori; per esempio, combinando una immagine in rosso di 2.000 iterazioni, una verde di 200, e una blu di 20. Alcuni hanno chiamato questa tecnica Nebulabrot poiché l'immagine finale è simile a quella di una nebulosa.
Un'altra tecnica di rendering consiste nel disegnare i percorsi dei punti c che si trovano nel Insieme di Mandelbrot (che quindi non escono); una sorta di Anti-Buddhabrot.