Page 4

27 mai 2018

Un modèle p5.js pour l’animation

12 mai 2018

Notes sur les automates génétiques

Pour un système en construction.

et article contient une série de notes un peu éparpillées prises alors que je me familiarise avec les algorithmes génétiques et, plus particulièrement, leurs applications dans les automates cellulaires. Je ne suis pas certain que ces notes puissent servir à quiconque à part moi, mais elles ont néanmoins leur place dans un journal de travail.

Si un système d’automates cellulaires a un « voisinage » de 9 cellules, et que chacune de ces cellules peut avoir un état de 0, 1 ou 2, un exemple de voisinage possible pourrait s’écrire : "101022010". Ça me limiterait cependant à 10 états possibles (de 0 à 9) pour un système. Une autre façon d’encoder un voisinage serait :

let neighborhood = [0, 1, 0, 11, 13, 2, 20, 1, 0];

Ici, je ne serais pas limité à 9 états possibles. Mais, dans tous les cas, comment ferais-je pour générer chacune des règles d’un système ?

5 mai 2018

Botanique évolutive

Croisements entre la botanique algorithmique et les algorithmes génétiques.

La botanique algorithmique est un très beau champ d’étude dans les sciences informatiques. Le botaniste hongrois Aristid Lindenmayer en est un des pionniers, et le livre The Algorithmic Beauty of Plants qu’il a co-signé avec l’informaticien Przemysław Prusinkiewicz est la plus riche et exhaustive référence le sujet. Le livre est disponible gratuitement, en entier, sur un site Web hébergé par l’Université de Calgary, où Prof. Prusinkiewicz enseigne. Il s’agit d’un site Web formidable qui contient une foule de documents intéressants concernant la botanique algorithmique.

J’ai fait plusieurs expériences pour apprendre appliquer différents aspects de la botanique algorithmique afin d’en faire des animations. La première animation que j’ai réalisée (et dont l’image ci-dessus est extraite) se trouve sur mon fil Twitter. J’ai rassemblé ci-dessous quelques notes de travail prises lors de la réalisation de cette animation et des autres qui suivront.

L’animation ci-dessus est inspirée des idées derrières Heroes and Cowards, un modèle à base d’agents créé par William Rand et Uri Wilensky, mais il s’agit d’une altération tout de même très distante de ce modèle. Le code écrit pour réaliser cette animation est contenu dans la branche second-version de l’arborescence Git du projet, qui se trouve sur GitHub.

Les principes de l’animation sont simples : chaque point noir représente une tortue qui peut recevoir des instructions et qui possède aussi un certain comportement. Lorsque l’animation démarre, chacune des tortues est associée à deux amies (deux autres points parmi le groupe). Ensuite, entre chaque nouvelle image de l’animation, chacune des tortues s’approche très légèrement du point équidistant entre ses deux amies.

Les tortues ont donc toutes un comportement individuel identique, mais puisque la position initiale de chacune d’elles est différente, il en résulte un comportement de groupe complexe : l’ensemble des tortues cherche à ne former qu’une seule boucle. Lorsqu’une nouvelle spirale est ajoutée, elle est « mise en contact » avec les autres tortues et se mêle rapidement au tracé général.

21 avril 2018

Méandres logistiques

Quelques explorations vagabondes autour de la suite logistique.

La semaine dernière, j’apprenais l’existence de la suite logistique et cherchais à en comprendre le fonctionnement. Depuis, j’ai visualisé le champ de cette fonction de diverses manières, afin de mieux voir ses propriétés et ses potentielles applications artistiques. Le code écrit pour réaliser le matériel ci-dessous peut-être lu et téléchargé sur GitHub.

Je lis présentement Complexity: A Guided Tour, un formidable ouvrage écrit par la scientifique américaine Melanie Mitchell. Je viens d’y apprendre l’existence de la suite logistique, grâce à laquelle j’ai réalisé l’animation ci-dessus. Il s’agit de la plus célèbre équation dans le champ de la théorie du chaos. La voici :

xt+1=Rxt(1xt)
7 avril 2018

Vers un cinéma algorithmique

Début d’un projet de recherche expérimentale sur le cinéma d’animation abstrait.

u cours des douze prochains mois, je serai occupé par un nouveau projet qui me rend très enthousiaste. Grâce au Conseil des Arts et des Lettres du Québec ainsi qu’au Plan culturel numérique du Québec, j’aurai l’opportunité de faire de la recherche portant sur l’art numérique — et plus spécifiquement, sur le cinéma algorithmique, c’est-à-dire un cinéma d’animation expérimental (et le plus souvent abstrait, mais parfois figuratif), réalisé par l’écriture de code informatique qui génère des images et du mouvement.

Comme ce cinéma est peu connu du grand public et pratiqué par un nombre d’artistes assez restreint, j’espère aider à le démystifier par un journal de travail que je tiendrai tout au long de mon projet. J’y partagerai de courtes animations expérimentales ainsi qu’une part du processus créatif ; on y trouvera ainsi un mélange de choses accessibles à tou·te·s et de choses plus pointues et techniques, tel que des morceaux de code informatique et des formules mathématiques. Nous verrons bien à quoi ressemblera ce joyeux agrégat.

3 février 2018

Modélisation de lignes crayonnées

Premières ébauches de méthodes algorithmiques pour imiter l’apparence du dessin.


L’an dernier, j’ai écrit un court programme pour modéliser des lignes dessinées au crayon. Le projet est encore embryonnaire et je veux continuer à le faire avancer sporadiquement. Je commence aujourd’hui par une relecture du code écrit l’an dernier et une synthèse des idées qu’il contient.

17 octobre 2017

Mouvements harmoniques récursifs

Deux animations réalisées lors d’une exploration de simples exemples de récursivité.

Ces animations ont été créées avec la bibliothèque p5.js et répondent à deux « défis de programmation » (coding challenges) lancés par Daniel Shiffman sur sa chaîne YouTube The Coding Train.