Couche 3 : mandat de variété algorithmique. À l'inverse des deux premières, cette couche n'est pas une liste de ce qu'il faut faire mais une obligation de diverger. Le règlement liste explicitement plus de vingt familles algorithmiques (flow fields, attracteurs étranges, réaction-diffusion, metaballs, automates cellulaires, L-systems, Voronoi, interférences d'ondes, Delaunay, croissance différentielle de lignes, physarum, boids, 10-print, Truchet, harmonographes, déformation de polyèdres en 3D, etc.) et impose de varier d'une pièce à l'autre. Le règlement précise même les axes de variation à activer : famille algorithmique, composition (plein cadre, radial centré, focal décentré, grille, asymétrique sparse), langage de mouvement (dérive continue, pulsation, sauts discrets, accumulation lente, orbital, chaotique).
Ce qui est intéressant, c'est que cette troisième couche ne marche que parce que les deux premières existent. Sans le verrouillage strict de la palette et du traitement, demander à un agent de varier algorithmiquement produirait une bouillie sans identité. Avec, la variété devient un atout : chaque nouvelle pièce confirme la grammaire en l'étirant dans une direction inattendue. La palette et le cadre forment l'invariant qui rend la variation lisible.
Les 6 éléments de traitement obligatoires :
Repères de coupe aux quatre coins, longueur 8 px
Cadre fin #999999 1 px, inset 30 px
Titre majuscules monospace en haut à gauche
Métadonnée live #999 10 px en bas à droite
imageSmoothingEnabled = false
Grain par jitter aléatoire de 0,8 px