Il y avait un Mac chez mon père. Il y avait MacPaint dessus. Et il y avait l’interdiction d’y toucher.
Quarante ans plus tard, j’ai écrit un logiciel de traitement d’image en noir et blanc pur, avec quarante-deux filtres, dont un qui s’appelle Atkinson.
Bill Atkinson est l’homme qui a écrit MacPaint.
Ce que fait une trame
Un écran 1-bit ne connaît que deux valeurs : allumé, éteint. Pas de gris. Aucun.
Sauf que MacPaint affichait des gris. Des dizaines. Il mentait.
Le truc s’appelle la trame, ou le tramage. On ne peut pas faire du gris, alors on éparpille des points noirs sur du blanc, et on laisse l’œil faire la moyenne. Le gris n’est pas dans l’image. Il est dans celui qui regarde.
C’est la même idée que la synthèse vocale de la même époque : ne pas stocker la chose, fournir de quoi la reconstruire. La contrainte produit la méthode, et la méthode devient un style.
Bill Atkinson a écrit son propre algorithme de diffusion d’erreur pour ça. Il propage moins d’erreur que le Floyd-Steinberg classique — ça brûle les hautes lumières, ça creuse les noirs, ça crache un grain sec et contrasté. Techniquement, c’est une perte. Visuellement, c’est la signature Macintosh. Tout le monde reconnaît cette image sans savoir pourquoi.
Le moiré
Il y a mieux qu’une trame : deux.
Superposez deux trames régulières, décalez-les d’un rien, et une troisième image apparaît — de grandes ondes lentes qui traversent l’ensemble. Le moiré. Il n’est dans aucune des deux trames. Il naît de leur interférence, et il n’existe donc que dans l’œil qui les regarde ensemble.
C’est ma vraie obsession, et elle est plus ancienne que tout le reste. Une trame est un mensonge que le regard complète. Un moiré est une image que personne n’a dessinée : ni la première grille, ni la seconde, ni celui qui les a posées l’une sur l’autre. Elle émerge, c’est tout.
Toute l’industrie de l’imprimerie passe son temps à la combattre. En offset quadrichromie, on tourne chaque trame d’une trentaine de degrés par rapport aux autres, précisément pour empêcher l’interférence de devenir visible. Ce qui subsiste malgré tout, ce petit motif en fleur qu’on voit à la loupe sur n’importe quelle affiche, s’appelle une rosette : c’est un moiré apprivoisé. On ne l’élimine jamais. On négocie avec lui.
Mon logiciel d’image a un écran rosette. J’ai donc construit l’outil qui dompte exactement ce que j’aime — c’est peut-être la définition d’un métier.
L’Amiga du frangin
Interdit de Mac, je suis passé par l’Amiga 500 de mon frère. Deluxe Paint.
La revanche était bien meilleure que la chose interdite. Là où le Mac était monacal — deux couleurs, une discipline — l’Amiga proposait une palette, des cycles de couleurs, un pinceau qui faisait n’importe quoi. Mais le tramage était toujours là, partout, parce que la mémoire manquait toujours. On trichait sur les dégradés exactement comme MacPaint trichait sur le gris.
J’ai appris les trames par la porte de service. Ça reste la meilleure façon d’apprendre quoi que ce soit.
Fantavision, ou l’interpolation avant tout le monde
Il y avait aussi Fantavision. Scott Anderson, Broderbund, 1985 sur Apple II — et 1988 sur Amiga.
On dessinait deux images. Le logiciel fabriquait celles du milieu.
Tweening. Interpolation. Des formes vectorielles qui se transforment l’une en l’autre pendant qu’on regarde, calculées en temps réel sur une machine qui avait moins de mémoire qu’une icône d’aujourd’hui. À l’époque ça relevait de la magie ; c’est aujourd’hui la fonction la plus banale de n’importe quel outil d’animation, et personne ne sait d’où elle vient.
Encore la même idée, tiens : ne pas stocker les images, stocker de quoi les deviner.
Et Blender, oui, Blender
Puisqu’on y est.
Ton Roosendaal a fondé un studio d’animation en 1989. Il y a écrit un raytracer pour Amiga, appelé Traces, entre 1987 et 1991. Quand il a démarré un outil interne d’animation 3D en 1994, il en a repris les choix de conception.
Cet outil s’appelait Blender.
Le logiciel 3D que la moitié de la planète utilise aujourd’hui descend en droite ligne d’un programme Amiga. On en reparlera — il mérite son propre texte.
MONO°
MONO° est un atelier d’image 1-bit. On y dépose une photo, on empile des filtres, on ressort du noir et blanc franc. Pour les fanzines, la risographie, l’offset. Aucune couleur, par principe.
Il contient les huit diffusions d’erreur classiques — Floyd-Steinberg, Atkinson, Jarvis, Stucki, Burkes, Sierra, Stevenson-Arce. Il contient l’Ostromoukhov, une diffusion à coefficients variables publiée à SIGGRAPH en 2001, qui approche le bruit bleu sans artefact. Il contient le Riemersma, qui diffuse le long d’une courbe de Hilbert pour qu’aucune ligne de balayage ne se voie. Il contient les trames ordonnées de Bayer — le look « programme de dessin » que tout le monde a dans l’œil sans le nommer. Il contient la mezzotinte, le bruit bleu par void-and-cluster, les tuiles de remplissage 8×8 façon MacPaint, et des trames d’offset tournées qu’on exporte en vectoriel.
Zéro dépendance. Vingt kilo-octets. Il marche hors ligne.
Ce n’est pas de la nostalgie. Les algorithmes de tramage n’ont pas été inventés pour faire joli : ils ont été inventés pour survivre à une contrainte. La contrainte a disparu, la beauté est restée. C’est assez rare pour qu’on s’y arrête.
La boucle
Je n’avais pas le droit de toucher à MacPaint. Aujourd’hui, l’algorithme de l’homme qui l’a écrit tourne dans un logiciel que j’ai fait, et qu’on peut ouvrir dans un navigateur, gratuitement, hors ligne, sans permission de personne.
Je n’avais pas prévu ça comme une revanche. Mais je ne vais pas prétendre que ça n’en est pas une.
Le principe
Le noir et blanc n’est pas une limite. C’est une méthode qui a survécu à la raison qui l’a fait naître.
Et si vous voulez la version courte de tout ce que je fabrique : une trame laisse l’œil finir le travail, un moiré lui en confie la totalité. Le reste — les voix synthétiques, les cartes qui se dessinent seules, les animateurs qui devinent leurs phrases — n’est que la même idée, appliquée à autre chose que des points noirs.
MONO° — essayer en ligne · le code · MacPaint (1984) · Deluxe Paint (1985) · Fantavision (1985) · Traces (1987)