Archive for the ‘General’ Category

J’ai des petits problèmes dans ma plantation…

Monday, August 14th, 2006

Après la trituration de mon programme générateur de plante, j’ai réussi à obtenir ça :

 plant ContextSensitive_B
{
    ignore + - F;
    begin F B F B F B;
    A < A > A : * -> B;
    A < A > B : * -> B[-F B F B];
    A < B > A : * -> B;
    A < B > B : * -> B;
    B < A > A : * -> A;
    B < A > B : * -> B F B;
    B < B > A : * -> B;
    B < B > B : * -> A;
    + : * -> -;
    - : * -> +;
} 
donne

C’est une représentation d’un L-systems crée par Hogeweg and Hesper. Pour plus d’informations sur ce genre de technique, je vous invite à lire The Algorithmic Beauty of Plants, un livre qu’il est intéressant de le lire.

Le principe de base du L-System est de partir d’une base (ici défini par la ligne begin), et d’appliquer un jeu de règles simples. Par exemple si un symbole A est précédé d’un autre symbole A et suivi d’un symbole B, alors ce symbole sera remplacé par : B[-F B F B] . Si un symbole + est rencontré il sera transformé en symbole -. Les symboles +,- et F ne sont exclus pour les tests de “contexts”. On fait tourner le système 30 fois et on interprète :

  • F : on affiche une ligne blanche
  • + : on tourne la tête d’écriture vers la gauche.
  • - : on tourne la tête d’écriture vers la droite.
  • [ : on commence une branche (qu'on arrête avec ']‘)
  • A, B : on ne fait rien

En changeant certains symboles on peut aussi faire des arbres en 3D, ici seul un rendu en 2 dimensions a été fait, pour débugguer.

A l’ouest

Friday, August 11th, 2006

Bon voilà, après un certain temps sans toucher à la tablette graphique, l’ennui aidant, jme suis intéressé à ça :

un simple fractal non coloré (c’est un test, faut pas déconner non plus). Y’a aussi un système de génération de truc ressemblant plus ou moin à des plantes, mais c’est plutôt moche donc pas d’images. Ce fractal a été crée en utilisant la suite suivante :

Zn+1=Z²n + C Z étant un point du plan complexe, et C un nombre complexe fixé. Pour chaque pixel de l’image, on calcule Z50 et on affiche à quelle itération la norme de Z dépasse 2.

Chacun de ces systèmes (fractal et bidule qui fait des plantes) génèrent énormément d’informations à partir de très peu de code, seul ombre au tableau, l’interpretation de ces données est fixé. Dans l’état actuel des choses, le fractal peut uniquement être vu, on peut pas le transformer de manière X ou Y ni, par exemple, essayer d’interpreter de manière sonore la simple formule.

Partant de ce constat, je vais essayer de trouver un moyen de pouvoir génerer n’importe comment pour pouvoir les modifier (n’importe comment) et de les interpreter (là aussi… n’importe comment). Ca serait chouette de pouvoir tester facilement ce que ça donne grace à un bon cadre de travail. Pour le moment chaque experimentation prend un temps monstre.

Ré-création

Thursday, July 27th, 2006

Voilà, une journée de travail pour ça :

Quand on clicke ça fait des ptis points blancs sur l’image. Ca fait flipper une journée pour faire… pas grand chose au final. Ca place juste des ptis points blancs sur un fond tout noir =)

Les gens on du mal à se rendre compte le temps que prend le dévelopement d’un logiciel (même pas super bien architecturé, comme dans mon cas). Le moindre bout de code doit être testé manuellement plusieurs fois, rien que pour vérifier le bon fonctionnement du nouvel algo. Puis ce nouvel algo doit être intégré dans un ensemble plus grand, appellé projet, s’il ne l’était pas déjà by design. Tout cela en alignant des petits caractères dans un langage barbare qui ne pardonne pas l’erreur, le moindre changement de caractère pouvant tout faire valdinguer. Alors oui ça bouffe énormément de temps.

Bon ok ça a pris beaucoup de temps car j’en ai profité pour creer des objets qui m’aideront gravement lors de l’élargissement du projet (là le but c’est de faire un prototype qui fonctionne). Ce qui fait que passé le prototype, rajouter des éléments/fonctionnalités sera plus facile. De plus j’ai réduit le temps de calcul du son, je sais pas trop comment mais maintenant ça bouffe quasiment plus de temps.