Les tortues de Perlin

Croisements divers entre les tortues géométriques de Papert et le bruit de Perlin.
20 août 2018

Dans ces expérimentations, je cherche différentes façons de créer des séquences d’instructions pour une tortue géométrique. Utiliser du bruit de Perlin (unidimensionnel ou bidimensionnel) me semble être une idée de départ intéressante.

Système de scènes

La gestion des différentes scènes doit se faire à l’aide d’un système dédié. Je dois pouvoir sauvegarder une scènes avec tous ses paramètres. Mais en quoi consiste une scène ? Ça pourrait être une tortue turtle, une seed de bruit de Perlin seed et une scalaire (ou niveau de zoom) pour ce bruit de Perlin zoom.

Pour l’instant, j’ai écrit ce simple système de scènes :

let Scene = function(obj) {
    this.gridScalar = obj.gridScalar;
    this.turtle = obj.turtle;
    this.noiseSeed = obj.noiseSeed;
    this.noiseScalar = obj.noiseScalar;
};

let firstScene = new Scene({
    gridScalar: 16,
    turtle: firstTurtle,
    noiseSeed: 95.74359133779816,
    noiseScalar: 0.025
});

let scene = firstScene;

Code source

Le code écrit pour réaliser ces expériences peut être consulté et téléchargé sur GitHub. Il est distribué librement sous une licence Gnu Gpl 3.0.

Notes éparses

Avec ces expériences, je cherche surtout à créer des tableaux avec une esthétique un peu organique — j’imagine des tableaux qui se dessineraient sur fond de musique ambiante. Il pourrait aussi y avoir des éléments dessinés à la main ; les tortues géométriques pourraient répondre aux tracés faits à la main. Les dessins pourraient aussi s’effacer en partie et être redessinés simultanément, créant un espace perpétuellement variant.

J’aimerais également utiliser les principes de la synthèse granulaire de Iannis Xenakis. Si je considère, par exemple, une série de points dessinés comme étant une séquence d’instructions pour une tortue, je pourrais ensuite considérer des sous-ensembles de ces instructions comme étant les grains d’une synthèse granulaire. En assemblant ces grains aléatoirement ou algorithmiquement un à la suite de l’autre, j’obtiendrais une longue séquence (possiblement infinie) d’instructions pour une tortue. Le tracé du parcours de la tortue pourrait ressembler au dessin original, ou plutôt, pourrait préserver certaines caractéristiques visuelles et géométriques de ce dessin, mais il deviendrait aussi une autre chose, une chose qui pourrait s’activer indéfiniment.

Contexte

Cette note de blog fait partie de mon projet de recherche Vers un cinéma algorithmique, démarré en avril 2018. Je vous invite à consulter la toute première note du projet pour en apprendre davantage.