🌀 Mandelbrot Explorer
Visualizzatore interattivo del frattale di Mandelbrot con zoom infinito
← Torna a Virtual Desktop Site
Descrizione
Mandelbrot Explorer è un’applicazione web interattiva per esplorare il celebre frattale di Mandelbrot, scoperto dal matematico Benoit Mandelbrot nel 1980. L’applicazione permette di navigare all’interno della struttura frattale con zoom infinito, rivelando la complessità autosimile del set.
Caratteristiche Tecniche
Rendering Multi-Threaded
- Web Workers: calcolo distribuito su più thread per prestazioni ottimali
- Progressive rendering: aggiornamento progressivo della visualizzazione durante il calcolo
- Tile-based computation: divisione del canvas in tile per parallelizzazione efficiente
Controlli Interattivi
- Zoom con mouse wheel: esplorazione fluida del frattale
- Click per centrare: riposizionamento rapido del punto di interesse
- Reset view: ritorno alla vista iniziale
- Controllo iterazioni: regolazione della profondità di calcolo (max iterations)
Palette di Colori
- Classic: scala di colori tradizionale blu-bianco
- Fire: gradiente rosso-arancio-giallo
- Ocean: tonalità azzurre e turchesi
- Psychedelic: colori vibranti e psichedelici
- Grayscale: scala di grigi monocromatica
Algoritmo
Il frattale di Mandelbrot è definito dalla sequenza iterativa:
z(n+1) = z(n)² + c
Dove:
zè un numero complesso che inizia da 0cè il punto corrente sul piano complesso- Il punto appartiene al set se la sequenza rimane limitata
Per ogni pixel del canvas:
- Si mappa la posizione (x, y) a coordinate complesse (Re, Im)
-
Si itera la funzione fino a max_iterations o fino a divergenza ( z > 2) - Si assegna un colore in base al numero di iterazioni prima della divergenza
Implementazione
File Principali
core/js/mandelbrot.js: logica principale e gestione UIcore/js/mandelbrot-worker.js: Web Worker per calcolo parallelocore/styles/mandelbrot.css: stili interfaccia
Tecnologie Utilizzate
- Canvas API: rendering grafica 2D
- Web Workers API: calcolo multi-thread
- JavaScript ES6+: moduli e arrow functions
- CSS Grid: layout responsive dell’interfaccia
Curiosità Matematiche
Autosimilarità
Il frattale di Mandelbrot mostra autosimilarità: ingrandendo una regione, si trovano strutture simili a quelle della vista completa, ma con variazioni infinite.
Dimensione Frattale
La frontiera del set ha dimensione frattale 2, risultato dimostrato matematicamente da Mitsuhiro Shishikura nel 1998.
Connessione
Il set di Mandelbrot è connesso (un unico pezzo senza “isole” separate), dimostrato da Adrien Douady e John H. Hubbard negli anni ‘80.
Performance
Ottimizzazioni
- Tile caching: memorizzazione risultati per zoom-out rapidi
- Adaptive max iterations: aumento automatico iterazioni allo zoom
- RequestAnimationFrame: rendering sincronizzato con il refresh del browser
Limiti
- Precisione numerica: JavaScript usa floating-point a 64 bit, limitando lo zoom a ~10^15
- Performance mobile: calcolo intensivo può essere lento su dispositivi mobili
- Memory consumption: cache delle tile può richiedere memoria significativa
Link Utili
- Set di Mandelbrot - Wikipedia
- Benoit Mandelbrot - The Father of Fractals
- Mandelbrot Set Explorer (interattivo online)
Prova Mandelbrot Explorer sul desktop virtuale aprendo l’icona 🌀 Mandelbrot dal gruppo Mini Apps.