Fractales et L-Systems
L'objectif du projet est de concevoir un logiciel qui permet de générer des fractales sur le modèle des L-Systems.
Introduction
Les « L-Systems », ou encore Systèmes de Lindenmayer, ont été inventés en 1968 par le biologiste hongrois Aristid Lindenmayer pour modéliser le processus de croissance d'être vivants comme des plantes ou des cellules.
Les L-Systems sont très étudiés à la fois pour leurs propriétés formelles (ce sont des objets mathématiques utilisés en informatique théorique) mais également pour l'interprétation graphique qui peut en être faite et qui permet notamment d'obtenir toutes sortes de fractales. En biologie, les L-Systems permettent d'étudier la morphologie des plantes à l'aide de programmes informatiques.
Informellement, un L-System consiste en :
- un ensemble d'éléments à partir desquels des objets peuvent être construits ;
- un état de départ pour l'objet a construire ;
- une ou plusieurs règles de réécriture qui décrivent comment l'objet évolue au cours du temps.
Ces éléments très simples permettent d'obtenir des objets graphiques complexes tels que la plante fractale ci-dessous.

Fonctionnalités minimum attendues
- Le logiciel doit permettre d'obtenir des représentations graphiques fractales sur la base de modèles de type L-Systems.
- L'utilisateur doit pouvoir visualiser l'évolution dans le temps de la fractale.
- Le logiciel doit proposer des réglages permettant de faire varier la représentation graphique obtenue (forme, couleurs, etc.).
Quelques pistes pour démarrer
Le projet peut être décomposé en deux modules principaux :
- le(s) L-System(s) et le moteur d'exécution qui permet de faire changer le L-System d'état ;
- l'interface graphique de visualisation des fractales et d'interaction avec l'utilisateur.
La modélisation choisie pour la notion de L-System devra être très soignée car elle conditionne le reste du projet. Il faudra garder à l'esprit qu'on peut voir un L-System comme un automate.
Concernant l'interface graphique :
- Dans un premier temps, les fonctionnalités de l'interface pourront être limitées à la visualisation des fractales. Pour cela, il est possible d'utiliser en première approche la classe Painter qui représente une grille de pixels qu'il est possible « d'allumer » ou « d'éteindre » pour créer des représentations graphiques à l'écran.
- Dans un deuxième temps, il pourra être envisagé de rajouter à l'interface les éléments nécessaires pour que l'utilisateur puisse définir le L-System qu'il souhaite exécuter. Pour cela, il sera utile de regarder Swing.
Documents
- La page L-Systems sur Wikipédia.
- La version en ligne du livre « The Algorithmic Beauty of Plants », par P. Prusinkiewicz et A. Lindenmayer (Springer-Verlag, New-York, 1990).
- Une introduction à l'interprétation graphique des L-Systems.
- Un générateur en ligne de fractales L-Systems
- Des documents et tutoriels d'aide sur Java