Fajitas

Rendu de fractales en WebGL

Dans un monde à l'intersection des maths, de l'art, et du calcul sur carte graphique, on retrouve un explorateur de fractales.

Demo online - Repo Github

Formule de récurrence

Il existe toute une famille de fractales, dites à temps de divergence, qui peuvent se formuler très simplement. Chacun des points affichés a une coordonnée dans le plan complexe (partie réelle et imaginaire). On leur applique alors une formule récurrente: La valeur Zn+1 est déterminée en fonction de la valeur précédente Zn et éventuellement de la coordonnée du point C. La valeur initiale Z0 = C. Si cette série Zn+1 = S(Zn) diverge, la récurrence s'arrête, et on assigne une couleur au point en fonction du nombre d'itérations déjà effectuées.

Fajitas permet d'entrer une formule de récurrence mathématique, qui est ensuite compilée en shader WebGL. Des formules simples peuvent donner des résultats graphiques étonemment complexes, et dans lesquels il est possible de zoomer à l'infini avec à chaque fois de nouveaux détails (enfin, pour le moment la précision est limitée à celle d'un float 32 bits IEEE754).

Syntaxe

Voici les éléments de syntaxe reconnus dans la formule mathématique

  • x: une variable nommée x
  • 2: le nombre 2 (entier)
  • 3.14: le nombre 3.14 (réel)
  • 2i: 2 fois le nombre imaginaire
  • Les opérateurs traditionnels +, -, *, /
  • x^2 est la variable x au carré
  • |x| est la valeur absolue de x
  • x[2, 4, 6]3 est le polynôme en x où les nombres entre crochets sont les coefficients et le nombre en suffixe est le degré du plus petit terme (0 s'il est omis). L'exemple donne donc 2x^5 + 4x^4 + 6x^3.

Partager vos découvertes

L'URL de la page change automatiquement pour refléter la vue sur la fractale. Si vous tombez sur une forme intéressante, vous pouvez directement la partager, puisqu'elle contient la formule de récurrence et l'endroit et le zoom précis de la caméra.

Quelques formules qui donnent bien

  • Mandelbrot La plus connue des fractales: Zn^2 + C
  • Burning ship Une autre fractale connue, qui ressemble à un bateau de pirate (en feu ?) |Zn|^2 + C
  • "Masque africain" Une sorte de "masque africain" tourné sur la gauche, les yeux sont des spirales infinies: Zn[4, -2]/Zn[2, C]
Fini
Dernière modification : il y a 3 ans, 7 mois
Mainteneur : iTitou
Participant : Ubik
Je veux participer !



Tâches

  • Évaluer le coût du code généré, et pouvoir choisir le plus bas entre plusieurs versions
    Proposé il y a 7 ans, 10 mois (iTitou)
  • Gestion des touch events pour navigation sur mobile
    Proposé il y a 7 ans, 10 mois (iTitou)
  • Paramètrage des couleurs dans l'URL
    Fait il y a 7 ans, 3 mois (iTitou)

Commentaires