Le zellige n'est pas une décoration
Le zellige marocain est souvent présenté comme un art décoratif. C'est une réduction. C'est avant tout un système géométrique : un ensemble de règles de construction qui permettent de couvrir un plan sans lacune ni chevauchement, en produisant des symétries d'une complexité remarquable.
Ces règles, les maîtres zellij les ont transmises de génération en génération. Ce qui est frappant, c'est qu'elles ressemblent à du code.
La logique de construction
Un zellige complexe repose sur quelques principes :
1. La cellule de base : un polygone (étoile, losange, hexagone, triangle) défini par un nombre fixe de côtés et d'angles. Cette cellule est la brique élémentaire du motif.
2. La règle de réplication : comment la cellule se répète dans le plan — par translation, rotation, réflexion. La classification mathématique des pavages (17 groupes de symétrie du plan) décrit exactement les combinaisons possibles.
3. La hiérarchie des motifs : certaines cellules forment des super-cellules, qui se répètent à leur tour. C'est une structure récursive, analogue à la récursion en programmation.
4. La contrainte de frontière : aux bords de la surface, les motifs sont complétés par des demi-cellules ou des adaptations. C'est le traitement des conditions aux limites — exactement ce qu'un algorithme de tessellation doit gérer.
Traduire en code p5.js
La fonction etoile(cx, cy, rOut, rIn, P, rot) de l'œuvre ZELLIGE KHATIM du corpus Creative Coding Morocco traduit directement cette logique :
function etoile(cx, cy, rOut, rIn, P, rot, col) {
beginShape();
for (let i = 0; i < 2 * P; i++) {
const a = rot + i * PI / P;
const r = (i % 2 === 0) ? rOut : rIn;
vertex(cx + cos(a) * r, cy + sin(a) * r);
}
endShape(CLOSE);
}
Deux paramètres (rOut, rIn) définissent l'étoile. Le nombre de branches (P) est un paramètre. La rotation est un paramètre. L'artiste conçoit les règles ; le système génère toutes les instances.
Ce que ça révèle
Le zellige n'est pas une inspiration pour le code — c'est déjà du code, exprimé dans un autre langage. La conversion de l'un à l'autre n'est pas une traduction approximative : c'est une correspondance exacte.
C'est ce que le creative coding permet de révéler : la logique computationnelle qui existe depuis des siècles dans le patrimoine, avant que l'ordinateur existe.
Voir l'œuvre ZELLIGE KHATIM → · Explorer les tutos → · Le livre Creative Coding Morocco →
Un projet en tête ?
Réserver 15 min →