❌

Vue normale

Reçu — 11 septembre 2026 ⏭ Actualités libres

PyConFR 2026, planning et inscriptions

L'édition 2026 de la PyConFR aura lieu à Biarritz 🌊 le week-end de la Toussaint (du jeudi 29 octobre au dimanche 1er novembre) !

PyConFR 2026

La PyConFR est la conférence annuelle francophone dédiée au langage de programmation Python 🐍 et à sa communauté, entièrement gratuite car organisée par les bénévoles de l'AFPy (Association Francophone Python) avec le soutien de sponsors (voir plus bas).

Présentation de l'événement

L'événement se déroule donc sur 4 jours en se divisant en deux parties :

  • 💻 Les sprints ont lieu le jeudi (29/10) et le vendredi (30/10) : il s'agit de sessions participatives de code pour travailler en groupe sur des projets open-source.
  • 🎤 Les conférences et ateliers ont lieu le samedi (31/10) et le dimanche (01/11) : ce sont des présentations sur divers sujets autour de la programmation en Python ou d'horizons plus larges et des ateliers de codage participatifs.

Vous trouverez plus d'informations sur la PyConFR sur le site de l'événement.

Inscriptions

La conférence est gratuite mais l'inscription reste obligatoire, afin de nous aider à prévoir le nombre de participant·e·s et d'adapter l'événement en fonction.

Lors de votre inscription, vous pourrez aussi choisir de commander un t-shirt de l'événement (15€) et une place pour la soirée du samedi qui aura lieu à la brasserie SPOT à proximité du lieu de conférence (30€).

Inscriptions à la PyConFR 2026

Programme de l'événement

Le programme des différents sprints, conférences et ateliers qui auront lieu pendant l'événement a été publié : https://www.pycon.fr/2026/fr/schedule.html.

Vous pourrez y retrouver les descriptions complètes des interventions ainsi que les biographies des orateurs et oratrices.

Les sujets sont majoritairement en français (l'association s'adresse principalement à la communauté francophone) mais une salle de conférence est réservée aux sujets en anglais pour notre public non-francophone.

Conférences plénières

L'association, dans le but d'augmenter la diversité de l'événement, fait tenir par des femmes les trois conférences plénières proposées pendant la PyConFR.

Les conférences plénières annoncées cette année sont :

  • « Typographie et code : expérimentations pour la broderie et le tricot » par Amélie Dumont, designer graphique typographe.
  • « Le mot esquive, l'instrument tranche : autonomie stratégique, souveraineté numérique et l'épreuve de la cyber » par Rayna Stamboliyska, fondatrice et CEO de RS Strategy.
  • « Sustaining Open Source for the Future » par Georgi Ker, vice-présidente de la Python Software Foundation.

Embracing Weird Code, d’Ivana Kellyer
Le rêve de tout enfant - devenir DBA ?, de Karen Jex
Être un·e allié·e du numérique pour tou·te·s en environnement hostile, de Morgane Rozenn Hauguel

Sponsoring

L'événement existe grâce aux dons des sponsors qui permettent chaque année de couvrir les différentes dépenses liées à l'organisation (locaux, assurance, captation vidéo, boissons, bourses, etc.).

Si vous, votre entreprise ou l'un de vos contact souhaite participer au financement de cet événement, vous pouvez contacter le trésorier de l'AFPy (tresorier@afpy.org) pour discuter des modalités.

Les différents niveaux de sponsoring et les contreparties associées sont détaillées sur cette page.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Reçu — 8 septembre 2026 ⏭ Actualités libres

Acteurs du Libre - 10 ans déjà

L'édition 2026 du concours des Acteurs du Libre est ouverte !

Cette année nous célébrons une date particulière puisque, depuis 10 ans, nous mettons en lumière les acteurs majeurs de l’open source en France et en Europe. Et déjà 50 vainqueurs récompensés. Célébrons une décennie centrée sur le partage et la souveraineté. Rejoignez-nous pour la cérémonie anniversaire du 9 décembre à Open Source Experience.

Affiche Acteurs du libre : 10 ans

Professionnels de l’open source ou responsables d’entreprises utilisatrices de solutions ouvertes : tentez votre chance de mettre votre projet sous les projecteurs à Open Source Experience 2026 !

La date limite pour postuler et envoyer le dossier de participation complété est le 02 octobre 2026. La cérémonie de remise de prix aura lieu à l’occasion d’Open Source Experience le 9 décembre à Paris. Pour participer, merci de vous pré-inscrire en ligne et le dossier vous sera envoyé par email.

Les candidats peuvent soumettre dans l’une des six catégories :

  • Prix du meilleur projet Open Source
  • Prix de la meilleure stratégie Open Source, en collaboration avec le TOSIT
  • Prix de l’entreprise pour un numérique ouvert et éthique
  • Prix de la meilleure collaboration public-privé
  • Prix du développement commercial
  • Prix européen, en collaboration avec l’APELL

Quelques règles à noter :

  • Le concours est ouvert, les organisations non membres du CNLL peuvent candidater.
  • La thématique du concours porte sur le logiciel, le matériel n’est pas concerné.
  • Les organisations domiciliées hors France et en Europe sont autorisées à candidater dans la catégorie “Europe/APELL”.
  • La catégorie “Meilleure collaboration” concerne les administrations centrales et déconcentrées uniquement, les collectivités territoriales doivent candidater au concours des Territoires Numériques du Libre. Candidature en partenariat avec un éditeur.
  • Un seul dossier par candidat, dans une seule catégorie.
  • Les gagnants des sessions précédentes ne sont pas autorisés à candidater à nouveau (cinq ans de délai).

À noter : l’inscription à Open Source Expérience est nécessaire pour participer à la cérémonie.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Reçu — 27 août 2026 ⏭ Actualités libres

Haiku Release 1 Beta 6

Environ une semaine après le 25ème anniversaire de Haiku, c'est le moment de publier la sixième version beta de Haiku R1. Nous avons parcouru beaucoup de chemin depuis le lancement du projet en 2001, il y a un quart de siècle. Merci à toutes les personnes qui nous ont soutenus et encouragés dans cette aventure, et souhaitons plein de belles choses pour les 25 prochaines années de Haiku !

Haiku est développé par une petite équipe principalement bénévole, et sans utilisation d'"intelligence artificielle" dans les composants développés au sein du projet. Si notre mission, le développement d'un système d'exploitation pour les ordinateurs personnels, vous attire, n'hésitez pas à nous rejoindre !

Cette version est le résultat de plus de deux ans de travail de l'équipe de développeurs de Haiku pour améliorer la stabilité, ajouter de nouvelles fonctionnalités, et rendre possible le portage de nombreux logiciels. Plus de 530 rapports de bugs et demandes d'améliorations ont été traitées.

Haiku reste en version beta, ce qui signifie que toutes les fonctionnalités prévues pour la version R1 sont disponibles, mais qu'il reste des bugs (connus et inconnus). Nous sommes de plus en plus confiant en ce qui concerne la stabilité du système, mais il n'y a aucune garantie par exemple contre les pertes de données.

Durant ce cycle de publicaction, waddlesplash a été embauché et rémunéré pour travailler sur Haiku. Ce contrat se poursuit, grâce aux donations généreuses d'utilisateurs et autres soutiens de Haiku à l'association Haiku, inc. (association à but non lucratif sous le statut États-Unien 501(c)3).

Sommaire

Configuration matérielle

Cette version est disponible pour les machines utilisant un processeur compatible x86, 32 ou 64-bit.

Seule la version 32-bit permet de lancer les exécutables compilés pour BeOS R5.

MINIMUM (32-bit)

  • Processeur : Intel Pentium II; AMD Athlon
  • Mémoire : 256Mio
  • Écran : 800x600
  • Espace disque : 2Gio

RECOMMANDÉE (64-bit)

  • Processeur : Intel Core i3; AMD Phenom II
  • Mémoire : 2Gio
  • Écran : 1366x768
  • Espace disque : 16Gio

Le jeu d'instructions SSE2 est nécessaire pour lancer le navigateur web WebPositive. Sur les machines où SSE2 n'est pas disponible, le navigateur NetSurf peut être utilisé à la place.

Nouvelles fonctionnalités

Mozilla Firefox

Firefox pour Haiku

Quelques mois après la publication de la version R1 beta5, les premiers navigateurs basés sur Mozilla Firefox ont fait leur apparition dans les dépôts logiciels de Haikuports. Ils étaient assez instables et n'utilisaient pas les marques officielles de Mozilla. Au cours des deux années suivantes, la stabilité s'est beaucoup améliorée, avec du travail aussi bien du côté de Haiku que du côté du portage. La dernière étape a été d'obtenir la permission de Mozilla pour utiliser le nom et le logo "Firefox". Donc, si quelqu'un vous demande "Mais est-ce que Firefox fonctionne sur Haiku?", maintenant vous pouvez répondre : "Oui, bien sûr !"

Un large choix de logiciels basés sur le code de Firefox est également disponible dans HaikuDepot, comprenant LibreWolf, Waterfox, Floorp, Icedove (une version de Thunderbird dégriffée) et quelques autres.

(Notez que Firefox est disponible uniquement pour les systèmes x86_64 pour l'instant. Et, puisque Haiku est toujours en version beta, si vous rencontrez des fonctionnalités manquantes ou incomplètes par rapport aux versions de Firefox pour d'autres systèmes, c'est probablement de notre faute et pas celle de Mozilla. Merci de remonter ces problèmes dans l'outil de suivi de bugs de HaikuPorts).

Virtualisation matérielle pour QEMU (sur x86_64)

QEMU avec accélération NVMM

Haiku permet maintenant d'utiliser "NVMM", le NetBSD Virtual Machine Monitor (qui a été développé pour NetBSD, mais a déjà été porté également vers DragonflyBSD avant Haiku). Cela permet d'utiliser l'accélération matérielle de la virtualisation dans QEMU, sur les systèmes x86_64 qui disposent des instructions Intel VT-x ou AMD-V. Les machines virtualisées peuvent être en 32 ou 64 bits, avec SMP, et le large choix de périphériques matériels émulés par QEMU, le tout pour un large choix de systèmes invités. Ajoutez simplement -accel nvmm aux arguments en ligne de commande de QEMU.

(L'accélération NVMM est encore en phase expérimentale. Merci de remonter tous les problèmes rencontrés sur le bug tracker de Haiku.)

Logiciels portés

Florilège de logiciels portés

Le projet HaikuPorts continue de maintenir une large sélection de logiciels pour Haiku. Il y en a beaucoup trop pour tout lister ici, y compris de nombreuses applications KDE et GTK. Mais voici l'un des plus remarquables :

Go

Le compilateur et l'environnement d'exécution pour le langage Go sont disponibles dans les dépôts de paquets. C'est une version un peu ancienne (1.26.1) et le code n'a pas encore été soumis aux développeurs de Go; mais de nombreux paquets fonctionnent bien sous Haiku, avec éventuellement quelques ajustements. Par exemple, il est possible d'utiliser Hugo, l'outil de génération de sites statique qui permet d'éditer le site de Haiku.

Modifications & corrections de bugs

Des centaines de bugs, corrections mineures et demandes d'améliorations ont été traitées depuis la version précédente. Il y en a beaucoup trop pour tout énumérer, les rapports d'activité trimestriels sur Linuxfr (ou mensuels en version originale) vous permettront d'avoir une vision plus détaillée de ces changements.

Presque toutes les parties du système ont bénéficié d'au moins un peu d'attention, et le résultat est que cette version beta 6 et la plus stable et la mieux finie jusqu'à présent. Il reste cependant encore quelques points de friction à certains endroits, ce qui explique que cela reste une version beta.

Optimisation des performances du système

Cette version comprend un grand nombre de changements et de refactorisations pour améliorer les performances générales. Voici une liste (assez technique) des principaux points:

  • Refonte de la gestion des tampons mémoire du renifleur de types MIME (la détection des types de fichiers est au moins 5 à 10 fois plus rapide)
  • Fonctions de hachage de chaîne de caractères plus rapides (et avec de meilleures propriétés)
  • granularité des verrous dans plusieurs composants du noyau : le gestionnaire de mémoire (réservations et dé-réservations de mémoire), le VFS (recherche de descripteurs de fichiers, changement d'état des vnode inutilisés, recherhce de la racine des contexte E/S), timers utilisateur, et encore d'autres.
  • évitement d'un verrou exclusif dans les FIFO (pipe()), ce qui permet de traiter des données à plusieurs Gio/s au lieu de quelques centaines de Mio/s auparavant
  • utilisation d'allocateurs "arena" pour les allocations de mémoire de travail (par exemple dans les FIFOs, et dans packagef`), ce qui permet d'esquiver tout un tas de changements et d'invalidation de la table des pages dans le noyau
  • omission de certaines tâches réalisées par une opération fork traditionelle lors de l'utilisation de vfork (il ne s'agit pas d'un vrai vfork, mais d'une approximation compatible avec les utilisations raisonnables)
  • remplacement ou réécriture de fonctions de bases de la bibliothèque C par des versions optimisées : memmove, strlen, strcmp, memcmp, et bien d'autres
  • recalibration des classes de taille de l'allocateur malloc du noyau (les valeurs utilisées avaient été sélectionnées en 2007 et pas vérifiées depuis)
  • ajout d'heuristiques pour pré-mapper les gros fichiers (ce qui bénéficie aux grosses applications qui sont lancées à mainte reprises, par exemple gcc)
  • utilisation de verrous non-exclusif et d'opérations atomiques lorsque c'est possible dans les primitives du noyau pour l'envoi de messages entre cœurs de processeur
  • Le cache d'entrées de répertoire n'a plus besoin d'un verrou en écriture pour insérer des éléments. De plus, il stocke la valeur de hash des chaînes pour éviter des comparaisons de chaînes inutiles
  • Utilisation de verrous en lecture-écriture dans le cache de blocs disque (utiliser pour mettre en cache les inodes et métadonnées des systèmes de fichiers).

Les deux derniers points en particulier ont un effet spectaculaire sur les opérations qui accèdent à beaucoup de fichiers d'affilée, comme git status. Lors d'un test de ces modifications, la durée d'exécution de git status sur un dépôt comportant plus de 160000 fichiers est passé de 33 à 20 secondes sans préchargement du cache disque, et de 15 à 2.5 secondes une fois le cache préchargé !

L'effet cumulé de toutes ces optimisations (et aussi des changements sur la gestion de la mémoire, détaillés plus bas) sur le temps de compilation est assez significatif. Les travaux de compilation assez simples ne sont qu'un peu plus rapide qu'avant (on partait d'assez loin, avec environ 40% de performance en moins par rapport à Linux), mais pour des tâches plus complexes, cela change tout. La compilation de HaikuWebKit (même version, même compilateur, même machine, ensemble de dépendances très proche) durait 4h53 avec la version beta 5, mais seulement 2h33 avec la version beta 6, soit une réduction presque de moitié !

Amélioration de l'interface utilisateur

Tracker: Mise à jour en direct des menus lors de l'utilisation de modificateurs clavier

Mise à jour en direct

Dans Tracker - le navigateur de fichiers de Haiku -, certains opérations modifient leur comportement lorsqu'elles (ou leur raccourci clavier) sont invoquées avec la touche Shift enfoncée. Maintenant, si vous enfoncez ou relachez cette touche alors qu'un menu est ouvert, les éléments du menu se mettent à jour pour montrer ce qu'il va effectivement se passer si vous cliquez dessus.

Tracker : Filtrage par dossier des résultats de requêtes

Filtrage des requêtes par dossier

Haiku a hérité certaines fonctionnalités uniques de BeOS. L'une d'entre elles est un système de fichiers qui se comporte également comme une base de données, permettant l'indexation des attributs étendus des fichiers et permettant d'exécuter des requêtes sur l'ensemble d'un système de fichier pour trouver rapidement les fichiers correspondant à certains critères.

Ces requêtes fonctionnent nécessairement sur l'ensemble du système de fichiers (car l'indexation ne stocke pas d'informations sur le chemin du fichier). Cependant, il est parfois utile de restreindre les résultats à une hiérarchie de dossiers spécifique. Cela est maintenant possible via la fenêtre de recherche du Tracker, qui effectuera un filtrage des résultats de requêtes aux dossiers sélectionnés.

(L'outil en ligne de commande query permet maintenant également de filtrer les résultats par dossier.)

Nettoyage disque dans SoftwareUpdater & pkgman

Les paquets logiciels pour Haiku sont des images de système de fichier compressées par blocs. Elles sont montée au démarrage dans une "union" permettant de construire le système de fichier du dossier système. Cela signifie que l'installation et la désinstallation de logiciels sont des opérations peu coûteuses, il s'agit s'implement d'ajouter ou d'enlever des paquets du point de montage en union. De plus, le système peut conserver les anciens paquets et l'état précédent du système. Cela permet de revenir facilement à une ancienne version d'un logiciel, ou même de rembobiner l'état complet du système, via le menu de démarrage.

Jusqu'à présent, ces points de restauration n'étaient jamais supprimés automatiquement (à moins d'utiliser un outil tiers pour s'en charger), et ils pouvaient donc s'accumuler indéfiniment, remplissant petit à petit tout l'espace disque disponible. Maintenant, SoftwareUpdater nettoie automatiquement les états les plus anciens (ce comportement est désactivable dans la fenêtre de réglages), et l'outil en ligne de commande pkgman affiche un message lorsqu'il y a beaucoup d'états sauvegardés, recommandant de lancer la commande pkgman cleanup pour faire du ménage.

# pkgman install/uninstall/full-sync...
[system] Changes applied. Old activation state backed up in "state_2026-08-22_22:38:28"
[system] Cleaning up ...
[system] Done.
[system] 3 old state(s) can be cleaned up. Use "pkgman cleanup" to remove them.

$ pkgman cleanup
Clean up 3 old states (166.27 MiB)? [yes/no] (yes) :

Screenshot : sélection de zone à capturer

Capture d'une zone de l'écran

L'outil de capture d'écran (déclanché par la touche Impr Écr de votre clavier) peut maintenant vous laisser sélectionner une zone rectangulaire de l'écran à capturer. Cela se rajoute aux possibilités existantes : capture de tout l'écran ou d'une seule fenêtre.

Team monitor : regroupement des équipes de processus

Groupement de processus

"Team monitor", l'outil de gestion des processus qui apparaît lorque vous appuyez sur Ctrl+Alt+Suppr, groupe maintenant les processus en tâche de fond lancés par une application graphique dans une liste en-dessous de cette application. Cela rend plus confortable l'utilisation de cette fenêtre lorsqu'un terminal est ouvert avec de très nombreux onglets, ou encore un navigateur web multiprocessus.

DriveSetup : menu "Images disque"

DriveSetup, l'outil de configuration des partitions, sait maintenant utiliser des images de disques. Le nouveau menu ajouté à cet effet permet de créer une image disque à partir d'une partition, d'écrire une image disque sur une partition, et aussi d'"enregistrer" une image disque dans le noyau pour y accéder directement comme à un disque réel (montage, démontage, création de partitions, etc).

app_server : récupération des applications au redémarrage

app_server, le serveur d'applications de Haiku (qui est aussi le serveur d'affichage, gestionnaire de fenêtres et responsable du tracé du contenu des fenêtres), est un composant central de Haiku. En cas de crash ou de redémarrage intentionnel, il peut maintenant se reconnecter aux applications en cours d'exécution et remettre en place leurs fenêtres comme si de rien n'était. Il n'est donc plus nécessaire de redémarrer le système ou la session utilisateur en cas de plantage. Dans la plupart des cas, les applications pourront reprendre leur fonctionnement normal après seulement une poignée de secondes.

PowerStatus : Meilleure gestion des machines avec plusieurs batteries

PowerStatus, l'application qui affiche l'information sur les batteries et l'icône de batterie dans la Deskbar, fonctionne mieux sur les machines avec plusieurs batteries, en particulier si certaines batteries sont enlevées alors que la machine est en fonctionnement, ou si une batterie se chage pendant qu'une autre se décharge.

Amélioration du "mode sombre" et de l'affichage HiDPI dans de nombreuses applications

Il y a eu un grand nombre de corrections et d'améliorations dans les applications inclues dans Haiku pour l'affichage en mode sombre et sur les écrans à haute densité : certaines couleurs étaient codées en dur, des dégradés n'étaient pas cohérents, des tailles d'éléments en nombre de pixels fixes, et ainsi de suite.

launch_roster : résumé du statut

L'outil en ligne de commande launch_roster permet d'interagir avec le gestionnaire de services de Haiku (launch_daemon). Il a reçu une grosse mise à jour, pour afficher une table réacapitulant l'état de tous les jobs et services :

$ launch_roster
                           Name  Type     State    Enabled
----------------------------------------------------------
     check-daylight-saving-time  job      stopped  yes
                    first-login  job      stopped  yes
                    update-time  job      stopped  yes
                  x-vnd.be-trak  service  running  yes
                  x-vnd.be-tskb  service  running  yes
         x-vnd.haiku-app_server  service  running  yes
          x-vnd.haiku-autologin  job      stopped  yes
       x-vnd.haiku-debug_server  service  running  yes
       x-vnd.haiku-media_server  service  running  yes
       x-vnd.haiku-mount_server  service  running  yes
         x-vnd.haiku-net_server  service  running  yes
x-vnd.haiku-notification_server  service  stopped  yes
     x-vnd.haiku-package_daemon  service  running  yes
       x-vnd.haiku-power_daemon  service  running  yes
          x-vnd.haiku-registrar  service  running  yes

Amélioration de la gestion de la mémoire

En plus des autres optimisations de performances déjà mentionnées, il y a eu un gros travail sur plusieurs aspects liés à la gestion de la mémoire, dont certains pour rendre les choses plus rapides, et d'autres simplement pour simplifier le code ou pour réduire la consommation de mémoire. Voici quelques-uns des plus intéressants :

  • optimisation des structures de données de packagefs, réduisant l'occupation mémoire d'environ 20% (la quantité exacte dépend du nombre de paquets installés, par exemple environ 15Mio sur une installation représentative utilisée pour tester ces changements)
  • gestion plus rapide et plus correcte des attributs de la mémoire (sur x86 et x86_64)
  • correction de la gestion du copy-on-write pour les zones protégées par mprotect. Le nouveau code est plus rapide et moins buggé.
  • plusieurs améliorations pour pouvoir démarrer Haiku sur des machines avec beaucoup de RAM (plus de 128Gio)
  • Tracker ne surveille plus les fichiers un par un via le node monitor, il surveille plutôt des dossiers entiers, ce qui économise de la mémoire du côté du noyau
  • unification du système de réservation de zones mémoires pour la mémoire RAM et la swap
  • correction d'allocations faites avec le mauvais allocateur dans le bootloader, des allocations qui devaient être temporaires n'étaient pas libérées avant le démarrage du noyau et restaient réservées pour toute la vie du système (jusqu'à 100Mio de mémoire perdus et rendus inutilisables par le noyau dans certains cas)

L'accumulation de tous ces changements fait qu'il est maintenant possible de démarrer la version 32-bit de Haiku avec seulement 128Mio de mémoire (et même encore moins si on utilise un système dégraissé), et arriver à lancer quelques applications. Bien sûr, difficile de lancer un navigateur web moderne dans ces conditions !

Mais ce n'est pas fini, certains changements encore plus importants méritent leurs propres paragraphes d'explications:

Nouvelle implémentation de malloc pour l'espace utilisateur

Haiku utilisait depuis très longtemps une version modifiée de l'allocateur hoard2 pour implémenter la famille de fonctions malloc dans la bibliothèque C standard. Cet allocateur est d'une conception assez ancienne, et ne tient plus la comparaison avec les derniers développements dans le domaine (y compris les versions plus récentes de hoard). Le remplacement de cet allocateur était donc un sujet de discussion parmi les développeurs depuis quelques années déjà.

Aprés l'évaluation et l'expérimentation de plusieurs alternatives, le choix s'est finalement porté sur la réutilisation de code écrit par OpenBSD, avec des perfectionnements supplémentaires pour l'adapter à notre usage (par exemple, un cache global limitant la nécessité d'appels système). Ce nouvel allocateur est légèrement plus rapide dans la plupart des cas, et beaucoup plus rapide dans certains cas particuliers qui mettaient en évidence les problèmes de l'architecture de hoard2. Surtout, cet allocateur est bien meilleur que ses concurrents pour remettre rapidement la mémoire inutilisée par une application à la disposition du reste du système, ce qui est particulièrement utile pour des applications qui restent lancées longtemps, et sur du matériel où la quantité de mémoire disponible est limitée. Il est également économe en termes d'utilisation de l'espace d'adressage, ce qui est important pour les systèmes 32 bits qui sont laissés de côté par d'autres allocateurs récents.

Améliorations sur le découpage de zones mémoire (areas)

Lorsqu'une application demande un gros morceau de mémoire (par exemple avec la fonction mmap), puis libère un petit morceau situé au milieu de cette zone (avec munmap), le noyau doit réorganiser ses structures de données et remplacer la gestion d'une zone unique et contigüe par deux zones séparées. Cette opération n'est pas simple à implémenter, surtout si la zone mémoire concernée est partagée avec d'autres processus, a des restrictons d'accès par pages (mprotect), ou d'autres cas particuliers.

L'implémentation de cette opération de découpage dans Haiku était incomplète, mais l'implémentation précédente de Haiku n'en faisait pas usage. Les problèmes éventuels ne concernaient donc que les applications implémentant leur propre gestion de la mémoire: ramasse-miettes, ou utilisation d'une implémentation alternative de malloc par exemple. Ces cas sont relativement rares, donc les problèmes n'avaient pas forcément été détectés. Le nouvel allocateur, ainsi que plusieurs navigateurs web récemment portés sur Haiku, quant à eux, font un usage beaucoup plus important de cette possibilité. Le code a donc du être repris pour pouvoir réagir correctement dans toutes les situations.

Amélioration du comportement lorsque la mémoire est presque pleine

Haiku n'implémente pas d'overcommit de la mémoire par défaut (et ne dispose donc pas d'un "OOM killer"). Les applications qui ont besoin de zones allouées avec overcommitting doivent le demander explicitement, avec un contrôle par area ou par region, et le manque de mémoire lors de l'accès effectif à ces zones n'impacte que les applications concernées (qui peuvent alors intercepter le problème et réagir en libérant des ressources si possible). Dans tous les autres cas, la mémoire est réservée (mais pas allouée) dès que l'application en fait la demande, et s'il n'y a pas de mémoire disponible, la fonction d'allocation retourne une erreur (par exemple ENOMEM).

Cependant, il ne suffit pas de retourner une erreur, encore faut-il que tous les composants du système sachent comment y réagir. Puisque toutes les allocations qui ne sont pas faites avec de la mémoire réservée à l'avance peuvent échouer, le noyau et tous les pilotes de périphériques doivent traiter le cas ou une fonction comme malloc retourne une erreur ENOMEM. Certains autres systèmes garantissent que l'implémentation de malloc dans le noyau n'échoue jamais (quitte à tuer des applications pour faire de la place).

Une mauvaise gestion de ces erreurs - ou de leurs conséquences qui peuvent mettre le système dans un état inhabituel - peuvent déclencher des comportements inattendus, dans le pire des cas, des crash ou des softlock (le système devient tellement lent qu'il est inutilisable). Un certain nombre de problème de ce type ont été corrigés, et il y a de bonnes chances que le système finisse par retourner dans un état stable une fois la mémoire libérée.

Améliorations de guarded_heap

En plus des implémentations par défaut de malloc dans l'espace utilisateur et dans le noyau, qui sont conçues pour une utilisation généraliste "en production", Haiku offre un choix d'implémentations de malloc pour l'aide au débuggage. L'une d'entre elles s'appelle guarded_heap, et place chaque allocation à la fin d'une page de mémoire et juste avant une autre page qui n'est pas mappée. Ceci gaspille énormément de place, mais permet de détecter immédiatement 100% des débordements de tampons. Cet allocateur permet même de désactiver la réutilisation de la mémoire libérée, dans ce cas il détecte en plus l'accès à de la mémoire libérée. Tout ceci se fait sans avoir besoin d'instrumenter le code, et donc, sans avoir besoin de recompiler l'application ou les bibliothèques concernées (contrairement par exemple aux options -fsanitize de gcc et llvm).

L'implémentation de guarded_heap pour le noyau a été complètement réécrite, pour y ajouter toutes les fonctionnalités disponibles dans la version pour l'espace utilisateur. Elle peut maintenant être activée sans recompiler le noyau (via une option du bootloader). Ceci n'est cependant possible que dans les versions "nightly builds" de Haiku, les versions stables désactivant cette option pour améliorer les performances.

Améliorations sur les systèmes de fichiers

Les systèmes de fichiers ont bien avancés dans cette version de Haiku. Les changements principaux sont :

  • FAT : gestion des disques de plus de 2Tio, gestion des secteurs disque de 4 Kio, préchargement des blocs pour accélérer le montage
  • NFSv4 : nettoyage et corrections de bugs, meilleure gestion des opérations E/S asynchrones
  • BFS : optimisation de la recherche de blocs libres, meilleure sélection d'index pour accélérer les requêtes, évitement des enchaînements de get/put inutiles pour des blocs de cache identiques
  • RAMFS (utilisé pour /var/shared_memory & shm_open) : nombreuses corrections, nettoyage, améliorations, dont une grande partie suite à l'utilisation intensive de mémoire partagée par Gecko/Firefox

En dehors des systèmes de fichiers eux-mêmes, des changements concernent de façon plus générale la mise en cache du contenu des fichiers. En particulier, la file d'attente des données à écrire a été découpée pour avoir une file par disque au lieu d'une seule file globale. Ces files peuvent estimer la vitesse d'écriture du disque associé, et le cache disque utilise cette information pour éviter d'accumuler trop d'écritures en attente (par exemple, lors de la copie de fichiers d'un disque rapide vers un autre plus lent).

Cela corrige le problème, également constaté sur certains systèmes Linux, où l'écriture vers un disque semble incroyablement rapide, mais le démontage ou l'exécution de sync est très lent, puisque l'écriture sur disque n'a réellement lieu qu'à ce moment là. À présent, le cache disque va détecter cette situation et bloquer les écritures sur le disque concerné le temps que les écritures en attente puissent être traitées. La progression de la copie de fichiers est donc représentative de l'écriture effective sur disque, et l'exécution de sync ne devrait jamais nécessiter plus de quelques secondes.

Compatibilité matérielle

Cette version de Haiku met à jour de nombreux pilotes, en particulier pour les machines fabriquées ces 5 dernières années. Si vous n'aviez pas réussi à installer une version précédente de Haiku, c'est l'occasion de refaire un essai et de voir si les choses se sont améliorées.

Cartes son

Des problèmes de son distordu ou complètement silencieux ont été corrigés, en particulier pour les machines les moins puissantes. Dans ce cadre, l'initialisation de la carte son est désormais faite à la demande, lorsqu'une application a effectivement besoin d'émettre un son. Cela économise de l'énergie et du temps de calcul pour le CPU.

Modifications volatile du BIOS VESA

Lorsqu'il n'existe pas de pilote speçifique pour une carte graphique, Haiku doit utiliser une solution de secours: un framebuffer minimal pour EFI, et VESA pour les systèmes BIOS. VESA permet de changer de mode vidéo pendant l'exécution du système, mais ne permet que de choisir parmi une liste de modes prédéfinis par le fabricant de la carte graphique. Cette liste est souvent assez limitée et n'inclus parfois même pas la résolution native du matériel.

La solution idéale est bien sûr le développement d'un pilote graphique pouvant programmer directement la carte graphique. Cependant, cette solution peut être assez complexe à mettre en oeuvre, surtout si le fabricant du chipset graphique ne fournit pas de documentation. Une solution plus simple est de modifier le BIOS VESA, pour y injecter de nouveaux modes vidéo à la demande. Haiku est maintenant capable de faire cette modification (de façon volatile, dans une copie en RAM du BIOS original) sur certains modèles de cartes graphiques où les modifications à faire ont pu être identifiées.

Pilotes pour toujours plus d'interfaces USB ethernet & WiFi

Haiku dispose d'une couche de compatibilité permettant de réutiliser les pilotes réseau de FreeBSD et OpenBSD, quasiment sans les modifier. Cette couche de compatibilité était limitée aux pilotes PCI, mais elle permet maintenant d'utiliser également des adaptateurs USB. De plus, les pilotes ont été synchronisés avec les dernières versions développées par FreeBSD et OpenBSD, ce qui augmente encore la compatibilité matérielle.

Compatibilité POSIX améliorée

Haiku essaie de suivre autant que possible le standard POSIX, afin de faciliter l'interopérabilité et le portage de logiciels existants. La spécification POSIX a été mise à jour quelques mois avant la version beta 5, et donc les nouveautés correspondantes arrivent seulement maintenant dans Haiku. Ici encore, il est impossible de lister l'immense nombre de changements liés à ce travail, mais voici quelques exemples :

  • O_CLOFORK
  • MSG_CMSG_CLOEXEC, MSG_CMSG_CLOFORK pour les sockets
  • SOCK_SEQPACKET, MSG_TRUNC, MSG_PEEK pour les sockets de la famille AF_UNIX
  • WCOREDUMP
  • getresuid, setresuid, getresgid, setresgid
  • pipe3, dup2, mkostemp
  • reallocarray, memmem, qsort_r
  • posix_devctl
  • pthread_getcpuclockid
  • posix_spawn_file_actions_add[f]chdir

En plus de la spécification POSIX, Haiku implémente également des fonctions supplémentaires disponibles dans les systèmes GNU, BSD ou même Solaris lorsqu'elles sont nécessaires ou pertinentes. Dans cette catégorie on trouve les nouveautés suivantes :

  • RTLD_NOLOAD, RTLD_GROUP
  • getloadavg
  • closefrom, closerange
  • EV_RECEIPT et l'utilisation d'objets spécifiques à Haiku (ports, sémaphores) avec kqueue
  • utilisation de baudrates arbitraires pour les ports série (via cfsetspeed)
  • meilleure compatibilité avec l'API FUSE

Ces extensions sont maintenant activées par défaut dans les en-tête C et C++, sauf dans le cas où l'environnement de compilation a demandé l'application d'un standard spécifique. Par exemple, la définition de __STRICT_ANSI__ ou _POSIX_C_SOURCE désactive ces extensions. Ces macros sont activées automatiquement par l'utilisation d'options comme -std=c++11, pour bénéficier des extensions on peut par exemple utiliser -std=gnu++11.

Stabilisation du système

De façon générale, un effort conséquent a été porté sur la stabilisation du système, en corrigeant des crash du noyau et des pilotes, des gels du système, des corruptions, l'échec du démarrage sur certaines machines. Ces problèmes ont été investigués, identifiés et corrigés pour fournir une version plus stable que toutes les précédentes.

Les scènes coupées

Malheureusement, une partie du travail en cours ces deux dernières années n'a pas pu être terminé à temps pour être intégré dans cette version. Certaines choses sont encore en chantier, d'autres sont trop expérimentales et désactivées par défaut. Cela donne peut-être une idée de ce à quoi s'attendre dans la prochaine version !

ARM64

Suite au travail de plusieurs personnes, la version ARM64 de Haiku démarre jusqu'au bureau sur les systèmes virtualisés ! Il existe même une branche de développement, en cours d'intégration, qui permet de démarrer Haiku sur les machines Apple M1. Ce travail est loin d'être terminé, mais les progrès sont remarquables par rapport à l'état des choses lors de la publication de la version beta 5.

WebKit multiprocessus

Le navigateur WebPositive fourni avec Haiku utilise encore une version de WebKit s'exécutant intégralement dans un seul processus. Le travail sur la version multiprocessus est bien avancé, cela fonctionne pour l'affichage de site simples, mais ce n'est pas encore prêt pour convertir WebPositive à ce nouveau mode de fonctionnement.

Nouveau contributeurs

Depuis la publication de la version précédente, un nouveau contributeur de Haiku a obtenu les permissions de commit : il s'agit de Zardshard, qui a travaillé par exemple sur Icon-O-Matic et sur d'autres applications natives. Bienvenue à lui !

On peut également mentionner le retour de Philippe Houdoin, qui avait laissé de côté le projet pendant quelques temps pour se consacrer à d'autres choses, mais a récemment recommencé à participer.

Le nombre de contributeurs est relativement stable depuis plusieurs années, entre 50 et 65 personnes participent à Haiku chaque année avec au moins un patch. Du côté de HaikuPorts, l'activité a tendance à augmenter, avec un record de 82 participants en 2024 et une deuxième position pour l'année 2025 avec 75 personnes. L'amélioration continue du système permet de plus en plus aux développeurs de se consacrer au développement et au portage de logiciels, sans tomber dans des bugs critiques nécessitant de mettre les mains dans les couches plus bas niveau du système.

Code source

Le code source est téléchargeable via un mirroir sur Github (si le site n'est pas cassé) ou alors depuis le serveur Git auto-hébergé de Haiku. Les patchs et contributions sont les bienvenus via Gerrit.

Remonter des problèmes

La sortie d'une nouvelle version de Haiku déclenche habituellement un déluge de nouveaux rapports de bugs. Il y a actuellement plus de 3900 tickets ouverts (et plus de 16000 déjà fermés) dans l'outil de suivi. Si vous pensez avoir identifié un problème, vous pouvez faire une recherche dans l'outil pour voir si le problème a déjà été remonté (ou même déjà corrigé), et dans le cas contraire, créer un ticket sur l'outil de suivi de bugs.

En cas de gros problèmes identifiés avec cette version, ils seront ajoutés sur la page notes de versions additionnelles.

Si vous avez besoin d'aide, commencez par la 'Visite Rapide' puis consultez le manuel d'utilisation, ils sont tous les deux accessibles via des raccourcis sur le bureau de toute nouvelle installation de Haiku. WebPositive s'ouvre par défaut sur notre page de bienvenue qui offre des informations utiles et de nombreux liens, de même que le site web du projet.

Si vous ne trouvez toujours pas de réponse à vos questions ou si vous souhaitez rencontrer d'autres utilisateurs et développeurs de Haiku, vous pouvez rejoindre les forums de discussion, l'un des canaux IRC (accessibles aussi par Matrix ou XMPP), ou envoyer un message sur l'une de nos listes de diffusion où une communauté sympathique pourra vous aider.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Reçu — 16 août 2026 ⏭ Actualités libres

Aux origines du premier GPU, une bande de copains de l'ENS

Les travaux d'étudiants de la promotion 1973 de l’École Normale Supérieure (Normale Sup) sont à l'origine de la production, dès 1977, d'une famille de circuits intégrés (CI) dédiés à l'affichage sur écran (à l'époque, cathodique ).

Cette dépêche est consacrée à l'un d'entre eux, l'EF9365 (ou le "365" pour les intimes), qui est stricto sensu le premier GPU (excusez-du peu !) et nous verrons pourquoi.

l'EF9365

Le circuit intégré Thomson-Efcis EF9365
Contrôleur de visualisation graphique,1980

Les rédacteurs de cette dépêche collaborative remercient :

  • Philippe Matherat, le concepteur de ce composant ! Il a eu la gentillesse de se prêter au jeu en répondant à nos questions et en apportant de nombreuses précisions et anecdotes –les citations dans la dépêche sont intégralement de sa main– ;
  • PulkoMandy, pour son journal d’archéologie informatique sur la thèse de Jean Gastinel. Sans ce journal, cette dépêche n'aurait jamais vu le jour ;
  • Jean-François DEL NERO, développeur de l’émulation du 365 dans Mame, pour les échanges et les apports techniques ;
  • l'équipe de rédaction du magazine Sciences et Avenir, pour l'autorisation de publier des extraits de l'article "le Silicon labo de la rue d'Ulm", n° 455 (Janvier 1985).

Sommaire

Généalogie des puces EFxxxx

Un GPU est un composant informatique (une puce dédiée dans les cartes graphiques des PC ou intégrée au processeur central (CPU) de votre téléphone (soc)) initialement dédiée à l'affichage d'images.

D'abord limité à l'affichage 2D, il a rapidement pris le relais du CPU pour gérer les calculs parallèles de la 3D. Aujourd'hui, cette puissance brute sert autant au traitement vidéo qu'à des domaines bien éloignés des pixels, comme le minage de cryptomonnaies ou l'IA.

Cette bascule technologique a récemment propulsé nVidia, le principal acteur du marché, au sommet de l'économie mondiale.

Pourtant, bien avant cette folie financière et les géants américains ou asiatiques, c'est en France qu'est née cette architecture moderne.

Cette dépêche vous propose de découvrir l'histoire du 365, le premier GPU sur puce unique.

La génèse

Extraits de l'article

Extraits de l'article "le Silicon labo de la rue d'Ulm" de Dominique COMMIOT
© Sciences et Avenir n° 455 (Janvier 1985)
À gauche, Jean GASTINEL devant le bâtiment historique de l'ENS.
À droite, Philippe MATHERAT et un extrait de l'article.

Philippe Matherat avait résumé ainsi le contexte de cette épopée dans l'article de PulkoMandy :

Nous étions une bande de copains, élèves de l’Ecole Normale Supérieure, de la promotion 1973.

L’informatique était balbutiante, les ordinateurs étaient gigantesques (un bâtiment), très rares et très chers. Personne n’envisageait qu’ils puissent être répandus et bon marché.
Les seuls écrans connus étaient ceux de la télévision. Les terminaux informatiques étaient des machines à écrire mécaniques actionnées par des relais électromécaniques. Ces terminaux étaient reliés à des gros ordinateurs distants, par une ligne téléphonique dédiée.
La fréquence d'horloge des ordinateurs les plus puissants était 12 MHz.

Jean Gastinel était le seul de notre promotion qui connaissait un peu ce qui se passait aux Etats-Unis, grâce à son père : Noël Gastinel, qui était professeur à Grenoble et qui avait fait des voyages dans les universités américaines et chez IBM. Il avait fait équiper l’université de Grenoble d’un ordinateur IBM 360/68.
Jean Gastinel, avec Jean-Marc Frailong et Jean-Luc Richier, ont réalisé un ordinateur 12 bits, à base de circuits MSI de Texas-Instruments, dans les années 1973-1975.

Puis Jean-Gastinel s’est lancé dans la conception du circuit d’affichage alpha-numérique, qui a été commercialisé sous le nom de SFF364 puis EF9364 (le changement de nom correspond au changement de nom de la société Sescosem en EFCIS). Cette conception a fait l’objet de sa thèse de 3è cycle.

Depuis cet article, P. Matherat a détaillé :

Quand je suis entré à l’ENS en 1973, il n’y avait pas de labo d’informatique, ni d’électronique. Les disciplines (en sciences) étaient les disciplines classiques de l’université : mathématique, physique, chimie, biologie, etc. Les chercheurs et les élèves avaient accès à un "Centre de calcul", dirigé par Maurice Vallino, qui consistait en un terminal (lecteur de cartes perforée et imprimante) connecté à un ordinateur Univac de l’université d’Orsay par une ligne à 1.200 bits/s, puis plus tard équipé d’un mini-ordinateur CII Mitra 15. Nous avons eu des cours de programmation Fortran par Jacques Arsac. Nous avions aussi accès à une formation en électronique (analogique), dans un local du labo de physique, fait par F. Lenouvel.

Quand Jean Gastinel a souhaité réaliser un ordinateur, associé à J-M Frailong et J-L Richier, ils sont allés à Jussieu, à l’institut de programmation, où il y avait une équipe qui réalisait des montages électroniques, dirigée par Gérard Noguez. Puis, ils ont souhaité continuer à l’ENS, et M. Vallino leur a cédé une petite pièce annexe du Centre de calcul, ainsi qu’un petit budget annuel de 10.000 F. C’est dans cette pièce que Jean a réalisé la maquette du 364, puis j’ai continué là avec la maquette du 365.

Ce que nous appelions "maquette" était le câblage d'une émulation de la future puce à l'aide de circuits MSI existants (des centaines), afin de pouvoir tester en temps réel la conception logique. Il n'existait aucun outil de CAO. Tout était câblé à la main, sans simulation préalable, et notre principal outil était l'oscilloscope pour vérifier les signaux. Avec des fréquences de l'ordre de quelques MHz, il nous fallait un oscilloscope haut de gamme.

Une question de mémoire

Sans la capacité d'Intel à produire en masse des puces DRAM de plus en plus denses, le 365 n'aurait jamais pu exister :

À la suite du 364, j’ai pensé qu’on pouvait faire du graphique : j'ai commencé cette étude en 1976, à l'occasion de mon DEA d'informatique. Il faut bien voir que ceci n’est devenu possible que grâce aux nouvelles mémoires de 4 Kbits, car un affichage 512 x 512 à 1 bit/pixel nécessite 64 boîtiers mémoires de 4 Kbits. En fait cela ne devient raisonnable qu’avec 16 boîtiers de 16 Kbits (soit 32 K octets). Il n’était donc pas possible de faire un GPU avant ces années-là. Mon mérite a été d’avoir le flair de voir qu’une période nouvelle pouvait s’ouvrir, et que les écrans graphiques pouvaient se démocratiser.

Mais utiliser 32 K octets rien que pour l'écran paraissait délirant, à une époque où la mémoire "centrale" utilisée par le CPU pour son programme et ses données ne dépassait pas 4 ou 8 K octets. Quand à vouloir faire de la couleur avec 3 bits par pixel, là j'étais vraiment pris pour un fou. Songez qu'un adressage sur 16 bits (cas des microprocesseurs de l'époque) ne permet pas de dépasser 64 K (= 216 ).

Dates de sortie des DRAM Intel

Le marché aux puces des seventies
Naissance et évolution des composants DRAM

Notez bien que, à l'époque, la capacité de ces mémoires s'exprime en bits (non pas en octets), et par un simple « K » : ce k majuscule vaut 1 024 bits (le kibibit actuel) et non 1 000. Pour résumer et par exemple, il faut traduire 16K par 2 kio.

Pourquoi cette augmentation de la capacité de la RAM à cette époque ?

Les circuits de RAM nécessitent un très grand nombre de transistors, mais sont très répétitifs : ils coûtent donc relativement peu cher à concevoir, mais demandent une chaîne de production de semi-conducteurs de très bonne qualité. Les fabricants de semi-conducteurs Japonais sont ceux qui vont le mieux maîtriser ce type de produit, fournissant des composants de plus en plus grande capacité à des prix écrasant la concurrence américaine. Intel ne s'en remettra qu'avec de grosses difficultés. Un autre fondeur de RAM américain, Mostek, n'y survivra pas et sera revendu à Thomson-CSF, qui rentabilisera largement son investissement en exploitant les brevets ainsi rachetés.

Le plastique, c'est fantastique

En creusant le sujet de ces premières mémoires vives, on comprend qu'il y a eu une autre évolution importante : le choix du matériau pour le boîtier.

Les boîtiers des premiers CI (dont la référence est préfixée par "C" ou "D") étaient en céramique : c'était coûteux mais dans les début des années 70 seul ce matériau répondait aux besoins de dissipation thermique et d'étanchéité.
Au départ, les fabricants avaient du mal à stabiliser le plastique, car l'humidité finissait par s'infiltrer par capillarité le long des pattes en métal, provoquant la corrosion de la puce.
Pour protéger la puce, il lui a été ajouté une couche (au nitrure de silicium), dite "de passivation", qui permet le contact avec le plastique.
Plus tard dans la décennie (à partir des puces 16K soit vers 1977), la transition vers le plastique s'opère massivement, leur référence est alors préfixée par "P".
Le moulage plastique a permis de produire des puces à la chaîne à un prix dérisoire par rapport au processus artisanal du boîtier céramique multicouche.

La production

L'histoire industrielle du fondeur

  • 1969 : Création de Sescosem (Société Européenne de Semiconducteurs et de Microélectronique), filiale de Thomson-CSF.  
    Selon Wikipedia : Thomson-CSF est le résultat de la fusion réalisée en 1968, du groupe électronique Thomson (filiale de Thomson-Brandt) et de la Compagnie générale de télégraphie sans fil (CSF). Leurs filiales dédiées aux circuits intégrés, respectivement SESCO et COSEM, sont donc fusionnées pour devenir SESCOSEM.
  • 1976 : Sescosem devient EFCIS (Étude et Fabrication de Circuits Intégrés Spéciaux). C'est à ce moment précis que la référence change : le SFF364 devient l'EF9364.
  • 1983 : Thomson-CSF réorganise ses activités. EFCIS est intégrée au sein de la branche Thomson Semiconducteurs. C'est l'époque de la grande offensive sur le marché grand public avec le Minitel et les ordinateurs (Alice, VG5000) utilisant les dérivés comme l'EF9345.
  • 1987 : Thomson Semiconducteurs fusionne avec la branche composants de l'italien SGS (Société Générale Semiconduttori). Naissance de SGS-Thomson Microelectronics.
  • 1998 : SGS-Thomson est renommé STMicroelectronics (ST), le nom que nous connaissons aujourd'hui : une multinationale franco-italienne de droit néerlandais.

Fabrication de transistors à la COSEM

Fabrication de circuits à la COSEM
source https://aconit.inria.fr/omeka/items/show/681 E. Gillet, Les transistors, ces magiciens.
Gamma Presse, 1964. Crédits photo : René Bouillot.

Dates de production

Chronologiquement, Sescosem ou EFCIS ne faisaient pas de tels chips pour écrans avant que les élèves de l’ENS lui en apportent :

  • En premier, Jean Gastinel a conçu le circuit alphanumérique EF9364, de 16 lignes de 64 caractères, qui est sorti vers 1977.
  • Ensuite, j’ai conçu le premier chip graphique EF9365, de 512x512 pixels, qui est sorti vers 1980, avec sa variante EF9366 (balayage non-entrelacé).
  • Le circuit 9367 est une variante du 9365, avec des performances augmentées.
  • Les circuits du genre 9345 sont postérieurs au 9365, ils utilisent les éléments de base des circuits précédents, et ont été demandés par les concepteurs du minitel, qui sont donc des copies, variantes, des circuits conçus par les élèves de l’ENS.

Généalogie des puces EFxxxx

Chronologie de mise sur le marché
des puces EF9xxx et quelques consœurs

La petite famille

L'EF9364, le précurseur

L'année dernière, PulkoMandy a exhumé la thèse de Jean Gastinel "Conception et intégration d'un terminal alphanumérique", qui pose avant l'heure les bases du Minitel et qui est aussi à l'origine de l'aîné de la famille : l'EF9364 est un contrôleur vidéo purement alphanumérique (affichage de 16 lignes de 64 caractères).

Cette thèse est une véritable pépite pour les férus d’archéologie informatique, on y trouve notamment tous les détails sur la réalisation du CI :

Ajout d'un masque

fig 1.10 - Dessin final des cinq masques superposés - Chapitre 1 fig 4.2 Montage des "puces", Chapitre III "Intégration du circuit "VISU" de la thèse

Ce composant est prévu pour réaliser un terminal passif, sans microcontrôleur. Avant son arrivée, toute la logique vidéo des terminaux était implémentée par de la logique discrète: une centaine de puces électroniques étaient nécessaires. Les autres composants d'un terminal, comme le modem et le contrôleur de clavier, bénéficiaient déjà de solutions intégrées. Ce composant rend donc possible la construction d'un terminal à très bas coût avec quelques dizaines de composants.

Il implémente tout de même des fonctionnalités de défilement de l'affichage, de déplacement du curseur, et d'effacement partiel (tout l'écran visible, la ligne courante, depuis le curseur jusqu'à la fin de la ligne). Ces fonctionnalités sont similaires à ce qui se fait sur les terminaux de l'époque (VT52 chez DEC, ADM-3A, …). Cependant, les générations suivantes de terminaux à partir du VT100 choisiront plutôt d'utiliser un microprocesseur.

La génération des caractères proprement dit est effectuée par un composant séparé appelé générateur de caractères. Il s'agit dans le cas le plus simple d'une ROM programmée avec une police bitmap de taille fixe.

Pour les nostalgiques du rendu d'affichage alphanumérique (le seul proposé par cette puce) sur un écran de l'époque, vous pouvez essayer cool-retro-term (lien qui devrait être sponsorisé par le SNOF)

capture cool-retro-term

Simulation d'affichage sur tube cathodique
        par cool retro term, à la EF9364
(alphanumérique, 64 colonnes x 16 lignes)

L'EF9365

Second de la famille, c'est l'objet de notre dépêche : voir la section suivante qui lui est dédiée.
Nous passons souvent sous silence le EF9366, qui est très proche du 365, mais les 2 sorties sont vraiment concomitantes.

En fait, les 9365 et 9366 sont sortis en même temps, c’est moi qui avais fait la modification qui supprime l’entrelacement (pour le 9366), car le premier client (Secapa), qui avait travaillé sur la maquette de simulation du 365, ne supportait pas le clignotement de l’affichage 512x512. Pour moi, l’intérêt était d’avoir une résolution élevée, et je conseillais d’utiliser un CRT avec des phosphores plus rémanents. Mais les CRT les moins chers (TV) avaient des phosphores rapides.

Nous passons aussi sous silence le EF9367, sorti plus tard, proche du 365 mais supportant des résolutions supérieures.

Le NEC µPD7220 : le cousin Japonais

Ce composant n'est pas compatible avec la série EF9365. Cependant, il a un fonctionnement assez similaire. Commercialisé en décembre 1981, il a été développé à partir de 1979, et probablement inspiré par la présentation du travail sur le 365 au SIGGRAPH en 1978.

En plus des lignes, rectanges et textes, il peut tracer des cercles, arc de cercles et autres courbes. Il est également prévu pour s'interfacer avec un contrôleur DMA, ce qui facilite l'échange de données avec le CPU de contrôle.

Le design de NEC a également été produit par Intel, qui continuera à faire évoluer cette famille de composants. C'est donc un ancêtre des GPU Intel toujours en production aujourd'hui.

L'EF9340 et 9341

Ces deux composants sont au cœur des premiers modèles de Minitel, il s'agit d'une adaptation "low cost" et d'un retour au mode alphanumérique. Ils sont conçus en 1980-1981.

Les premiers prototypes du Minitel utilisent des circuits de chez TI (que l'on retrouvera également dans l'ordinateur Exelvision EXL100). Mais les modèles de production se tournent vers une solution "made in France". Thomson EFCIS se charge de la conception de ces circuits qui sont fournis à Alcatel pour la fabrication du Minitel.

Réponse à appel d'offre du Minitel mentionnant les circuits VIN et GEN : la visualisation est confiée à deux circuits spécialisés VIN et GEN, chargés des signaux de base de temps et de la synthèse des caractères.

Ils sont associés à un microprocesseur, faisant du Minitel un terminal "intelligent" capable de réaliser certaines fonctions en autonomie, sans avoir besoin de communiquer chaque appui de touche du clavier au serveur central.

Ils ajoutent également un mode "semi-graphique" : il ne permet pas d'afficher des pixels, mais propose des 'briques', de 2x3 éléments, pré-dessinées dans la ROM du processeur.
On économise ainsi drastiquement la RAM qui coûtait, déjà, cher…
Le prix unitaire d'une RAM Intel 2107 (de 4K, soit 512 octets) était, à sa sortie en 1974, de 50 $ => avec l'inflation cumulée et la conversion, cela représente environ 295€ de 2026.

Exemple de [caractères semi-graphiques](https://en.wikipedia.org/wiki/Thomson_EF9345)

Exemple de caractères semi-graphiques
              autorisés par L'EF9345
       Page 84 du Databook Thomson.

En plus du Minitel, ces composants seront également utilisés par Philips dans les consoles Videopac Plus, ce qui sera la première étape dans la conception du VG5000 dont on reparle au chapitre suivant.

L'EF9345, la cheap chip

Le composant EF9345 regroupe dans une seule puce les fonctionnalités du générateur de caractères et du contrôleur de timing vidéo (GEN et VIN, qui étaient auparavant deux composants séparés).
Cette photo zoomable du cœur de silicium du composant (die shot) montre bien cet assemblage.
Cela a permis de réduire le coût de production du Minitel et a également été utilisé dans quelques micro-ordinateurs personnels : l’Alice chez Matra ou le VG5000 chez Philips.

Captures de US Rallye

Captures de US Rallye, le Gran Turismo de 1984

Ici, la puce ne sait pas ce qu'est un pixel : elle manipule une grille de caractères (25 lignes de 40 ou 80 colonnes).

Pour afficher une lettre ou un bloc de couleur (le fameux mode mosaïque), le processeur principal envoie juste un code d'un octet en RAM. C'est une ROM interne à la puce d'affichage qui se charge ensuite de traduire cet octet en points lumineux à l'écran.

C’était une astuce pour économiser la mémoire, mais impossible de tracer une ligne fine ou de faire bouger un élément au pixel près : on est condamnés à déplacer des blocs rigides sur une grille fixe. Au mieux, certains caractères peuvent être redéfinis, pour afficher un logo ou une image simple.

La suite pour ST

Pour ST Microelectronics, l'histoire des composants graphiques continue encore quelques années après la commercialisation de la série EF936x. Bien que les composants graphiques n'ont pas eu le volume de production de la version alphanumérique (surtout portée par le Minitel), ils ont trouvé une utilisation dans l'informatique scientifique et les appareils de mesure nécessitant la visualisation de données : spectromètres, analyseurs de spectre, ainsi que des réalisations spécifiques (cartes graphiques en kit Elektor pour machines CP/M à bus S-100).

L'offre sera complétée par l'EF9369, un circuit permettant de gérer une palette de 16 couleurs parmi 4096. Ce circuit est conçu au départ pour le micro-ordinateur Thomson TO9, mais finit par rejoindre le catalogue public de EFCIS puis de SGS-Thomson.

En parallèle, SESCOSEM avait signé un contrat avec Motorola lui permettant de produire en France des composants conçus par Motorola (permettant de rassurer les acheteurs qu'il s'agissait de productions locales). SGS-Thomson se retrouve donc à produire à la fois la famille 93xx mais aussi le EF6845, le contrôleur d'écran de la famille 68xx de Motorola. Ce contrat devait comprendre toutes les futures puces de la famille 68xx conçues par Motorola, mais cela finira mal, puisque Motorola refusera de fournir les masques nécessaires à la production du processeur 68020.

En fonction des demandes de clients, de nouveaux composants sont réalisés avec des adaptations simples (changement de timings vidéo pour afficher plus de pixels) ou plus poussés. C'est le cas de la famille TS68483 (surnommé AGAC, Advanced Graphic and Alphanumeric Controller) disponible en 1987.

Il s'agit d'une version améliorée du 9365 avec:

  • une interface 16 bits avec le processeur, adapté à l'utilisation avec un 68000 par exemple.
  • Des fonctions supplémentaires : tracé de courbes, cercles, remplissage de zones…
  • Meilleure intégration : il n'y a plus besoin d'un séquenceur et de registres à décalage externes.
  • Configuration logicielle de la résolution d'écran vidéo

Ce composant trouve également une utilisation dans des systèmes militaires, pour lesquels il existe une version "durcie", plus résistante (gamme de températures acceptables par exemple).

Plus tard (en 1995-1997), c'est également ST qui fabrique les premières puces conçues par nVidia: NV1 STG2000 puis RIVA 128. Pour la première, le principe est similaire à ce qui avait été fait pour le EF9365 : ST assure la production et la commercialisation en son nom propre (on trouve donc des datasheets ne mentionnant pas du tout nVidia). Pour la seconde génération, ST ne se charge que de la fabrication, les datasheets (et les puces elle-mêmes) font apparaître les logos des deux entreprises. Malheureusement pour ST, ce partenariat n'ira pas plus loin, et les puces nVidia des générations suivantes seront produites exclusivement par TSMC.

ST la suite

STG2000 (ST) RIVA 128 (ST) RIVA TNT (TSMC)
logo de ST seul deux logos côte à côte logo nVidia seul

Le génie de l'EF9365

Un vrai framebuffer

Ce composant ne se limite plus à une RAM de stockage des caractères, il dispose d'une RAM de pixels dédiée (le framebuffer) qu'il gère de manière autonome.

De ce point de vue c’est vraiment le premier chip qu’on peut qualifier de "graphique", car les autres étaient appelés "alphanumériques" ou "alpha-mosaïques".

La grosse différence entre les deux est que "graphique" suppose de pouvoir accéder à un pixel particulier, alors que les autres n’accèdent qu’à un "caractère", les pixels d’un caractère étant définis secondairement par une ROM.

Autrement dit, la RAM d’un chip graphique est une RAM de pixels (beaucoup plus grosse, par exemple 512x512), alors que dans le cas alpha-xxx c’est une RAM de caractères (16x80 par exemple).

Il faut bien voir que cette chronologie est liée à la sortie des puces mémoires de Intel : Les puces de 4 K bits ne sont apparues que vers 1974. Avant, il était impossible de faire du vrai "graphique". Il aurait été trop compliqué de stocker chaque point de l’image individuellement : en télévision, le signal vidéo était analogique, et les magnétoscopes à bande magnétique enregistraient le signal video analogique.

L'idée de stocker une image matricielle (point par point) dans une mémoire vive pour l'afficher à l'écran n'était pas nouvelle (par exemple: Evans & Sutherland Shaded Picture System qui faisait déjà du rendu 3D en 1973, premiers "frame buffers" dès 1969 chez Bell Labs, mais ce sont des solutions complexes et coûteuses). On peut également mentionner le CDP1861 de chez RCA: il s'agit d'un framebuffer mais avec une résolution de seulement 64x128 pixels (et encore, il est parfois exploité en 32x64 pixels pour économiser de la mémoire). L'EF9365 marque une rupture historique : c'est le premier processeur graphique commercialisé de manière monolithique (sur une seule puce) conçu pour piloter un framebuffer géométrique de manière autonome. Il gère non seulement le framebuffer et l'affichage à l'écran, mais aussi des fonctions de tracé de lignes et de caractères. C'est donc le premier processeur graphique à proposer une forme d'accélération matérielle sur un système à framebuffer.

L'actualisation de l'image à l'écran utilise seulement 57 % du temps (64 cycles sur 112 cycles de l'horloge externe continue).
Le temps restant est libre pour l'écriture et la mise à jour de l'image : il est possible d'écrire un point par cycle libre, ce qui donne un temps moyen de 1,3 µs par point. Dans les cas où il y a beaucoup d'informations à afficher d'un coup, il est également possible de désactiver l'affichage pendant la préparation de l'image puis de le réactiver ensuite. Malheureusement, cela ne se prête pas trop à la réalisation d'animations complexes.

La décharge du CPU pour certaines tâches

C'est ce qui définit ce composant comme le premier GPU de l'histoire : son auteur lui a câblé des registres pour prendre en charge des fonctionnalités qui déchargent le CPU (processeur central) sur des opérations graphiques !

Exemples de programmes en langage MPL qui montrent la simplicité d'utilisation

Le tracé de lignes

Le CPU peut par exemple demander à l'EF9365 de dessiner un trait d'un point A à un point B et revenir aussitôt à sa tâche. L'EF9365 prend alors le relais de manière totalement autonome. Il calcule les coordonnées intermédiaires en interne et écrit directement les pixels en RAM, à une vitesse folle pour l’époque : jusqu'à un million et demi de points par seconde, traçant une diagonale complète en moins de 700 microsecondes.

Tracer une ligne

L’algorithme de tracé de segment de Bresenham
Présentation SIGGRAPH'78, page 5

Traitements hardware sur les caractères

Redimensionnement matériel (jusqu'à 16x)

Auparavant, pour doubler la taille d'une police ou d'un motif, on demandait au processeur principal de recalculer tous les points. L'EF9365, lui, gère cela en toute autonomie via deux registres internes dédiés aux facteurs d'échelle : CZX (Zoom en X) et CZY (Zoom en Y).

Le processeur graphique possède un compteur de pas pour dessiner le caractère pixel par pixel à partir de sa ROM interne.
Quand le zoom est activé (par exemple à 4×), au lieu d'incrémenter l'adresse de destination dans le framebuffer à chaque pixel lu, l'EF9365 va répéter la même valeur de pixel sur la ligne 4 fois de suite en horizontal avant de passer au pixel suivant. Pour la verticale, il va répéter la même ligne complète du caractère 4 fois de suite dans la mémoire d'écran.

L'avantage : comme les zooms X et Y sont indépendants, on peut appliquer un zoom 2× en largeur et 4× en hauteur. Cela permettait de faire instantanément des effets de texte étiré, condensé ou géant sans aucun calcul pour le CPU.

L'effet Italique

L'inclinaison n'est pas stockée dans une ROM ; elle est calculée « à la volée » lors de l'écriture dans la RAM de pixels.
Pour incliner un bloc de pixels, il faut appliquer un décalage horizontal progressif à mesure que l'on monte en hauteur.
À chaque fois que le générateur passe à la ligne supérieure (Y+1) pour dessiner le caractère, il ajoute automatiquement un offset fixe (un décalage d'un pixel) sur l'axe horizontal (X).

Le caractère est littéralement « cisaillé » géométriquement pendant qu'il est écrit dans le framebuffer. On obtient un effet italique parfait et fluide, directement câblé dans le silicium.

La seule inclinaison possible est 45 degrés (voir la notice page 21).
C’est beaucoup plus simple ainsi à réaliser en hardware. Je m’étais posé la question de faire tous les angles, mais j’avais abandonné.

Autres fonctionnalités

L'EF9365 marque d'autres évolutions technologiques novatrices…

Il intègre notamment un mécanisme de masquage d'écriture par plan.
En verrouillant certains plans de la RAM, il pouvait dessiner ou effacer des éléments au pixel près sans jamais altérer le fond de l'image, jetant les bases de la gestion matérielle des calques.

Il propose un module de pointillés gérés au pixel individuel (une aubaine pour la CAO industrielle).

Son interface de bus universelle est capable de dialoguer nativement aussi bien avec un Z80 qu'un Motorola 6809.

et… concrètement ?

Jean-François Del Nero a produit une démonstration des capacités de rendu du 365 sur le Squale, un micro-ordinateur de 1984 qui exploitait ce composant.
Ci-après quelques extraits, très saccadés (export gif oblige), presque fidèles (cherchez l'intrus !) :

[Une démo du 365 ](https://i.imgur.com/7RXP1ze.gif)

En plus de son travail de conservation du Squale, avec l'association MO5.com (qui tient un musée permanent du jeu vidéo à Arcueil), Jean-François Del Nero a aussi contribué à son émulation dans le projet Mame, et a notamment écrit le driver du 365.
Nous avons pu reprendre le code source de sa démo, la modifier, la recompiler, et simuler le rendu du 365 grâce à Mame. Avis aux développeurs fullstack en manque d'exotisme: ici, pas de conteneurs Docker ni de dépendances npm !

Est-ce vraiment le premier GPU ?

Nous avons retenu les quatre critères suivants pour distinguer le 365 des premiers contrôleurs d'affichage sur une seule puce, comme le Motorola 6845 ou l'Atari Antic, qui gèrent la synchronisation du flux vidéo et le rafraîchissement de l'écran, sans intervenir dans le dessin des formes.
Le processeur 365 :

  1. est une puce unique (LSI/VLSI) : ce n'est pas une carte remplie de circuits TTL discrets comme sur les gros systèmes vectoriels des années 70 (Evans & Sutherland, Imlac) ;
  2. déleste le CPU de tâches coûteuses en ressources : le CPU n'écrit pas les pixels un par un en VRAM. Il envoie une commande de haut niveau au 365 telle que : « trace une ligne de (X1,Y1) à (X2,Y2) », et repasse à autre chose ;
  3. dispose d'un moteur d'exécution algorithmique dédié, hardware (en silicium) : il embarque en dur l'algorithme de tracé/moteur de rendu (rasterizer) ;
  4. gère en toute indépendance la mémoire vidéo (Framebuffer/VRAM) : le 365 contrôle l'accès, le rafraîchissement et la modification de la VRAM de façon indépendante.

Et le libre dans tout ça ?

Quittons la technique pour nous intéresser à un autre aspect des travaux de l'équipe : la diffusion de ses travaux.

Vous pourriez être étonnés qu’un circuit produit par un industriel puisse être public, dans ses moindres détails. Je dois vous raconter une anecdote :

Notre petit groupe d’élèves de l’Ecole Normale Supérieure considérait que ses productions, financées par les pouvoirs publics, devaient profiter à tout le monde. Mais cela posait un problème à l’industriel (Thomson-CSF qui avait pour filiale la société Thomson-EFCIS), qui voulait protéger son produit par des brevets. Il a été convenu que Thomson-CSF déposerait des brevets au plus tard la veille de ma soutenance de thèse. Ainsi, les brevets pouvaient être valides car ne portaient pas sur un design public.

Ma thèse a été soutenue le 19 mai 1978, et les brevets avaient été déposés le 18 mai (US4286264, US4297694, US4311998, US4266253).
Ils décrivent aussi en détails le fonctionnement du circuit, mais dans le langage juridique spécifique des brevets.

En août de la même année, l'architecture du 365 est présentée lors de la conférence SIGGRAPH 78. La liste d'articles soumis à cette conférence permet de se faire une idée des évolutions en cours dans le monde des graphismes générés par ordinateur à l'époque. On y trouve la description d'autres systèmes matériels et logiciels, des algorithmes en 2D ("How to color in a coloring book", un algorithme de remplissage de zones délimitées par des traits) et en 3D, des discussions sur les choix d'espaces de couleurs, ainsi que des exemples de mises en application (par exemple pour les simulateurs de vol de la navette spatiale américaine).

Ensuite, EFCIS a beaucoup utilisé le dessin des masques du 365 pour sa communication car c’était le seul design qui était public.
Nous n’étions pas dans l’état d’esprit de créer une start-up autour de nos designs, dans le but de gagner de l'argent. Nous nous imaginions qu’il était possible de concevoir des circuits dans un contexte académique, en étant juste payés par nos salaires, puis de les céder à un industriel pour la suite. C’était une erreur car ça ne pouvait pas fonctionner, principalement parce que l’industriel a besoin de définir sa stratégie de ligne de produits avec ses arguments marketing.
Le contrat passé entre EFCIS et l’Ecole Normale Supérieure a servi à rémunérer l’ENS, qui s’en est servi pour créer le premier labo d’Informatique de l’ENS (le LIE), et je n’ai rien reçu personnellement. Je considérais que j’avais été payé par mon salaire d’élève de l’ENS.

Dans les années 1970, nous avions l’idée naïve que les innovations techniques entraînaient des innovations sociales au sens d’une amélioration des conditions de vie pour tous, à l’image de la bagnole qui s’était démocratisée et qui était synonyme de libération. Nous ne faisions pas de grande différence entre acteurs publics et acteurs privés, et nous avions l’impression que tout était publié, ne serait-ce que par les brevets, qui ne faisaient que protéger ceux qui avaient davantage investi. En revanche, nous étions sensibles à la question de la propriété industrielle, et nous pensions que ce qui avait été développé par des fonctionnaires était la propriété de l’état (ce qui d’ailleurs est la loi), et que les universitaires ne pouvaient que publier sans restrictions. (En tant qu'élèves de l’ENS, nous étions fonctionnaires et universitaires.)…

Le 365 a-t-il fait un flop ?

Clairement non, car l'EF9365 ne mesure pas ses performances en FLOPS (Floating-point Operations Per Second) : il ne manipule aucune virgule flottante (ni même de calculs en nombres réels).
Blague d'informaticien mise à part, le 365 a certes ouvert la voie à une longue lignée de composants, qui domine aujourd'hui l'actualité de la tech, mais il n'a pas eu le succès commercial de ses descendants, et l'expérience de la rue d'Ulm a tourné court.

En France et à l'époque, il était difficile de faire dialoguer recherche, industrie et financement public.

…Mais nous n’avions pas compris les particularités de ce secteur. D’une part, les usines qui fabriquent des circuits intégrés coûtent extrêmement cher. D’autre part ce secteur était appelé à un développement exponentiel, non anticipé : la plupart des hauts responsables de l’époque pensaient que les ordinateurs seraient achetés par 100 entreprises, voire 1000, mais ne concerneraient pas le grand public. Ensuite, le coût des développements logiciels devenait lui aussi très élevé. À l’époque les plus gros logiciels n’étaient pas très complexes. Et on n’avait pas compris la relation étroite entre les logiciels et les architectures matérielles. On n’avait pas compris non plus que de prendre un monopole sur un OS était un enjeu stratégique.

Toutes ces contraintes (et d’autres que j’oublie), que nous n’avions pas comprises, faisaient que nous pensions naïvement que nous pouvions faire un développement dans notre coin, sans nous occuper du marché, mais uniquement de la performance technique, et le publier, puis dans un second temps le proposer à un industriel qui aurait les moyens de le commercialiser. L’idée sous-jacente étant que si le design était performant alors il y aurait forcément un industriel pour le vendre. C’était une grande ignorance des contraintes industrielles et des questions de marketing.

Le cœur du problème ne résidait pas dans un manque de compétences (le génie des étudiants de l'ENS en est la preuve) mais dans l'incapacité des grands capitaines d'industrie français (notamment chez Thomson) à anticiper la révolution de l'ordinateur personnel et du logiciel. Confortés dans leur monopole, ils ont ignoré le virage que les États-Unis et le Japon prenaient à pleine vitesse :

Je pense maintenant que dans le contexte des années 1970-80 en France, il n’y avait pas vraiment de possibilité pour aller plus loin. Les deux milieux, universitaires et industriels, ne se parlaient vraiment pas. Personne en France, ni chez les gouvernants, ni chez les universitaires, ni chez les industriels, ne voyaient ce qui se préparait. Nous, à 20-25 ans, nous comprenions le retard technologique de la France, ne serait-ce qu'en lisant les docs des puces que nous achetions, mais il était nié par les plus hauts responsables. Les dirigeants de Thomson disaient : "Quand il y aura vraiment un marché pour ça, nous serons en mesure de produire".

En 1984, lors d'un voyage aux États-Unis et d'une visite au mythique Xerox PARC, le chercheur français découvre un autre monde. Un monde où l'innovation de rupture n'est pas confinée aux laboratoires, mais propulsée par le capital-risque, les pépinières d'entreprises et une compréhension systémique du couple matériel/logiciel :

À un moment, au début des années 80, nous parlions avec Gastinel de monter notre boîte. Mais nous étions incompétents pour ça, nous n’avions aucune conscience des difficultés, il n’y avait pas du tout l’esprit "start-up", le capital-risque n’existait pas, les pépinières d’entreprises n’existaient pas, nous n’avions aucune connaissance de la façon dont les boîtes pouvaient se créer et croître aux USAs, nous n’avons appris ce contexte que beaucoup plus tard.

Je suis allé aux USAs en 1984 pour la conférence Siggraph (à Minneapolis) et à cette occasion après je suis passé à Xerox-Parc où j’avais un ami français (Louis Monier, plus tard créateur de Altavista chez DEC). J’y ai découvert un monde insoupçonné chez nous, avec toutes leurs innovations depuis 20 ans, et j’ai rapporté leurs publications. Pourtant cela était connu (mais pas par nous), c’était à la base du Lisa et du Macintosh de Apple, sorti cette année-là. À Parc, j’y ai rencontré Franck Crow, un anglais, un grand nom du graphique (connu en particulier pour l’anti-aliasing) qui m’a félicité pour le 365, je n’en revenais pas. J’ai compris après qu’il avait été un reviewer pour mon article de 1978, avec un avis très favorable. En 1984, il avait connaissance du minitel, sorti peu avant, et m’a dit : "Nous aux USAs, nous n’avons pas été capables de faire ça". Il faut dire que c’était avant qu’Internet se répande, avec des possibilités infiniment supérieures. Internet existait depuis plusieurs années chez Xerox, mais ne pouvait pas se répandre dans le grand public avant l’existence des ordinateurs individuels.

Les pouvoirs publics français se sont parfois immiscés dans ces choix industriels : citons la nationalisation de Thomson-CSF en 1982 et le plan "Informatique pour tous" en 1985 (un investissement énorme, estimé à 1,8 milliard de francs, soit 600 millions d'euros rapportés à aujourd'hui). Pourtant, la théorie du ruissellement n'a pas très bien fonctionné alors avec les labos de recherche ou les pépites industrielles en devenir : en témoignent le départ d'une grande partie de la bande de copains vers les US ou l'échec du Squale, dont la production s'est limitée à quelques centaines d'unités.
La capitalisation boursière de STMicroelectronics (ex-SGS-Thomson) est, en 2026, 70 fois inférieure à celle de nVidia.

En fait je crois que en France, à cette époque, les choses ne pouvaient venir que d’en haut : le nucléaire, le concorde, le minitel. Le minitel a été réalisé par des gens du corps des mines et du corps des télécom (comme son nom l’indique). les choses ne pouvaient venir que des grands corps de l’état.
Notre activité, initiée par Jean Gastinel, était plutôt folle par sa liberté, et transgessive. Le climat à l’ENS, peu après 1968 où cette école avait été au cœur des événements, était très libre, nous avions vraiment la possibilité de faire n’importe quoi, sans contrôle. Jean avait entendu parler par son père de ce qui se passait aux USAs. Et ce qui se passait en Silicon-valley aussi était fait dans un cadre très libre lié à la contre-culture des hippies (mais ça, nous ne le savions pas).

Une anecdote : au début des années 80, nous avons développé un réseau local Ethernet (alors sur câble co-axial de gros diamètre), pour relier nos Thémis réalisées en 10 exemplaires. Et nous avons eu besoin de passer sous la rue d’Ulm pour connecter le laboratoire de biologie. C’était interdit par le monopole des télécoms. En outre, le protocole de transfert par paquets était refusé car concurrent du protocole des P&T. Il nous a fallu enfreindre la loi pour passer un câble en douce.
Tout ça a basculé peu de temps après, après l’explosion de l’usage des ordinateurs individuels et de leurs applications.

Pour être tout-à-fait honnête, et rendre à César…, je dois mentionner que notre équipe a été reconnue par le CNRS en 1982, où nous avons obtenu des postes et des crédits pour continuer. Il y a eu une croissance jusqu'à 10 personnes en 1985, mais la plupart des membres de l'équipe sont partis chez Xerox en 1986.

Avec le recul je dirais : on peut faire de grandes choses quand on est très peu nombreux, ça devient plus difficile lorsqu'il faut gérer la croissance…

Le hasard du calendrier a voulu que la publication de cette dépêche coïncide avec un anniversaire : il y a 50 ans débutait l'étude du 365, avec le DEA de P. Matherat :)
Pour celles et ceux qui s’intéresseraient à ses publications ou à la suite de ses travaux, c'est consultable ici.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Reçu — 12 août 2026 ⏭ Actualités libres

Lettre d'information XMPP de juin 2026

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est réalisée et publiée conjointement sur les sites XMPP.org et LinuxFr.org selon une procédure définie.

Bannière de la lettre d'information XMPP

Bienvenue dans la lettre d'information XMPP, ravi de vous retrouver ! Ce numéro couvre le mois de juin 2026.

La lettre d'information XMPP vous est proposée par l'Équipe de communication de la XSF.

Comme tout autre projet accompli par la XSF, la lettre d'information est le résultat du travail volontaire de ses membres et des personnes y contribuant. Si vous êtes satisfait des services et logiciels que vous utilisez peut-être, n'hésitez pas à dire merci ou aider ces projets.

Vous souhaitez contribuer à l'équipe de communication de la XSF ? Lisez en bas de page.

    Sommaire

    Annonces de la XSF

    XMPP Summit 29

    La XMPP Standards Foundation (XSF) a le plaisir d'annoncer le 29e Sommet XMPP, le premier à se dérouler entièrement en ligne ! Ce Sommet XMPP se tiendra du vendredi 4 septembre au samedi 5 septembre 2026, de 13 h à 16 h UTC ces deux jours. La XSF invite toutes les personnes intéressées par le développement des technologies XMPP à y participer à distance et discuter de tout ce qui concerne XMPP !

    Adhésions à la XSF

    Être membre élu de la XMPP Standards Foundation témoigne d’un engagement en faveur des normes ouvertes et d’une implication professionnelle au sein de ou avec la communauté XMPP. Votre adhésion contribue à faire de la XSF une organisation solide, ce qui est en soi précieux. Elle vous confère également un droit de vote sur les questions techniques et administratives au sein de la XSF. La procédure de candidature est simple et gratuite, et votre adhésion vous permettra également de vous impliquer plus facilement. Si vous souhaitez rejoindre la XMPP Standards Foundation en tant que membre, veuillez postuler à notre 3e appel trimestriel à candidatures avant le 16 août 2026 à 00h00 UTC.

    Évènements XMPP

    Articles XMPP

    Nouvelles des logiciels XMPP

    Clients et Applications XMPP

    • aTalk a publié les versions 6.1.0, 6.2.0 et 6.3.0 de sa messagerie sécurisée pour Android avec appels vidéo et fonctionnalités GPS. Ces versions introduisent la rétraction de message, retirent la fusion des messages multiples dans la fenêtre de chat, étendent la fonctionnalité de correction du dernier message à tous les messages envoyés et pas seulement au dernier message envoyé, supportent les traductions des messages envoyés/reçus dans les chats/salons avec l'option de traduction qui peut être activée par contact ou par salon, et apporte également des améliorations, quelques corrections mineures et beaucoup de modifications 'sous le capot'. Voir les notes de publication pour tous les détails.

    • Conversations a publié sa version 2.20.1 pour Android. Cette publication ajoute les Note à moi-même comme suggestion de recherche et des corrections de bugs mineurs. Assurez-vous de consulter le journal des modifications pour tous les détails !

    • Converse.js a publié sa version 14.0.0 de son client web XMPP open-source. Cette publication ajoute le support pour le chiffrement OMEMO:2 ! Elle apporte également des nouvelles méthodes pour l'API pubsub pour créér, s'abonner et se désabonner, support de la version logiciel et affichage des versions logiciels du serveur dans le profil, support d'OMEMO 2 (urn:xmpp:omemo:2) en utilisant la stanza content encryption, détecte les contacts supportant uniquement omemo:2 comme étant capable d'OMEMO, avec de nombreuses autres corrections et d'autres travaux sous le capot ! Tout ceci génère certaines incompatibilités rétroactives, donc merci de consulter directement le journal des modifications pour tous les détails !

    • Fluux Messenger, a publié ses versions 0.16.0, 0.16.1 et 0.16.2 , de son client moderne XMPP multi-plateforme, pour les communautés et organisations. Ces versions ajoutent le chiffrement de bout-en-bout OpenPGP — le chiffrement des messages 1:1 avec un stockage de clé protégé par mot de passe et la sauvegarde/restauration de clé secrète, le support de OpenPGP e2ee dans la version web, la gestion des Multi-TSK (Transferable Secret Key) dans le flux de restauration des sauvegardes des comptes possédant plusieurs clés, marqueur de message non-lus sur l'avatar, rédiger des messages hors-ligne et les envoyer à la reconnexion, support des messages directs dans les salons ("chuchoter"), et bien d'autres modifications et corrections. Merci de consulter le journal des modifications intégral pour tous les détails !

    Fluux Messenger: messages directs dans les salons

    • Gajim a publié sa version 2.4.7 de son application de chat XMPP gratuite et bourrée de fonctionnalités. Cette publication supporte le chiffrement OpenPGP moderne, les messages brouillons sont désormais persistants, ce qui signifie qu'après avoir redémarré Gajim, vous pouvez poursuivre là où vous vous êtes arrêté, les salons de discussion sont désormais nommés selon leurs participants si pas d'autre nom n'est donné, désactiver un compte lors de la connexion est désormais corrigé, et elle vient également avec de nombreuses petites améliorations et corrections de bugs. Merci pour toutes vos contributions !

    Gajim: Un message vous mentionnant

    • Movim a publié ses versions 0.34, nom de code "Meier", et 0.34.1! Ces nouveaux jalons Movim stabilisent le travail important réalisé dans les précédentes publications tout en introduisant une nouvelle expérience redesignée pour les appels de groupe (conférences). Dans cette version vous pouvez ajouter des salons dédiés à des appels de groupe dans vos Espaces ("Spaces") et explorer la nouvelle interface d'appel vidéo. Les appels en conférence, reconstruit depuis zéro, la renégotiation média, nouvel agencement et interface redesignée, nouveaux sons de notification, gestion de session, d'autres corrections et plus encore !

    Movim : Conférence dans les Espaces ("Spaces")

    • Profanity a publié la version 0.18.2 de son client XMPP console. Cette publication apporte des corrections de bugs pour conserver l'écriture dans le terminal lors du passage en veille, éviter l'échange des OTR de révéler votre présence à des inconnus, et rendre muet l'erreur 'no key' pour les messages de transport de clé. Merci de consulter le journal des modifications pour tous les détails !

    Serveurs XMPP

    La communauté Ignite Realtime est heureuse d'annoncer la sortie d'Openfire 5.1.0. Quelques points forts de cette version : l'établissement de connexion via SASL (avec un généreux soutien de la Fondation NLnet), une série de durcissements concernant le chiffrement, la correction d'un bug de complexité O(n²) qui provoquait des démarrages de 2 heures sur de gros déploiements (seulement quelques secondes maintenant), Java 25, le nouveau support officiel de MariaDB, Firebird et CockroachDB. Vous pouvez lire le journal des changements complet pour avoir tous les détails !

    Bibliothèques et outils XMPP

    Extensions et spécifications

    La XMPP Standards Foundation développe des extensions à XMPP dans sa série de XEP en plus des RFC XMPP. Des développeuses, développeurs et autres personnes expertes en normes du monde entier collaborent à ces extensions, élaborant de nouvelles spécifications pour les pratiques émergentes et affinant les méthodes existantes. Proposées par n'importe qui, celles qui remportent le plus de succès finissent par être classées comme finales ou actives, selon leur type, tandis que les autres sont soigneusement archivées comme différées. Ce cycle de vie est décrit dans la XEP-0001, qui contient les définitions formelles et canoniques des types, des états et des processus. Vous pouvez en savoir plus sur le processus de normalisation ici. La communication autour des normes et des extensions se fait via la liste de diffusion des normes (archives en ligne).

    Extensions proposées

    Le processus de développement d'une XEP commence par la rédaction d'une idée et sa soumission à l'éditeur XMPP. Dans un délai de deux semaines, le Conseil décide d'accepter ou non cette proposition en tant que XEP expérimentale.

    • Jingle User Location
      • Cette spécification définit une extension de l'application Jingle pour échanger et mettre à jour la position de l'utilisateur dans une session Jingle active en utilisant la XEP-0080 User Location payload.
    • XMPP Decentralized ID (XID)
      • L'ID XMPP décentralisé (XID) est un identifiant d'entité XPMM indépendant de DNS. Cette spécification décrit comment générer, utiliser et gérer celui-ci.
    • Jingle Synchronized Real-Time Text
      • Cette spécification définit l'extension d'une application Jingle pour la négociation temps réel du texte à l'intérieur de la même session de conversation que l'audio et la vidéo.

    Nouvelles extensions

    • Version 0.1.0 de XEP-0514 (Balisage d'Emojis)
      • Acceptée comme Expérimentale par vote du conseil le 12 mai 2026 (XEP Editor(dg))
    • Version 0.1.0 de XEP-0515 (Protection contre la Dégradation de Connexion TLS)
      • Acceptée comme Expérimentale par vote du conseil (XEP Editor (dg))
    • Version 0.1.0 de XEP-0516 (Identifiant XMPP Décentralisé (XID))
      • Acceptée comme Expérimentale par vote du conseil (XEP Editor (dg))
    • Version 0.1.0 de XEP-0517 (Texte Synchronisé en Temps-Réel dans Jingle)
      • Acceptée comme Expérimentale par vote du conseil (XEP Editor (dg))

    Extensions déférées

    Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera retirée de la catégorie Expérimentale pour être classée comme Déférée. Si une mise à jour intervient, la XEP sera replacée dans la catégorie Expérimentale.

    • Pas de XEP déférée ce mois-ci.

    Extensions mises à jour

    • Version 1.35.5 de XEP-0045 (Discussions multi-utilisateurs)

      • Correction de l'attribut from dans les examples où le salon lui-même envoie un message
      • Corrige le champ du nom du noeud pubsub associé dans l'exemple d'information de découverte
    • Version 0.5.0 de XEP-0420 (Stanza Content Encryption)

      • L'affixe de temps utilise le profile DateTime de XEP-0082
      • Les rpads longs NE DOIVENT PAS être rejetés
      • Ajout d'une taille cible minimum pour le complèment aléatoire pour renforcer la résistance face à des attaques par corrélation dans le cas de contenus courts et un rpad de longueur nulle.
      • Retrait de Implementation inutile
      • Avertissement concernant l'injection de stanzas déchiffrés
      • Clarifie la solution de repli pour le body
      • Corrige les descriptions pour s'appliquer à toutes les stanzas au lieu de seulement les messages
      • Retire le DOIT ambigu dans l'affixe de temps et clarifie la vérification des affixes
      • Exige du registrar de fournir une liste d'éléments exclusivement processé coté serveur
      • Liste les XEP dépendantes
      • Ajoute le schéma XML (syndace)
    • Version 0.1.1 de XEP-0514 (Emoji Markup)

      • Retrait des références obsolètes à BoB (techmetx11)

    Dernier appel

    Les derniers appels sont lancés une fois que tout le monde semble satisfait de l'état actuel d'une XEP. Une fois que le Conseil a décidé que la XEP semble prête, l'Éditeur XMPP émet un dernier appel pour recueillir des commentaires. Les commentaires recueillis lors du dernier appel peuvent aider à améliorer la XEP avant de le renvoyer au Conseil pour qu'il passe à l'état Stable.

    • Pas de dernier appel de XEP ce mois-ci.

    Extensions stables

    • Pas de XEP passant à stable ce mois.

    Extensions dépréciées

    • Pas de XEP dépréciée ce mois.

    Extensions rejetées

    • Pas de XEP rejetée ce mois.

    Partagez les nouvelles

    Veuillez partager cette nouvelle sur d'autres réseaux :

    Consultez également notre flux RSS !

    Vous recherchez des offres d'emploi ou souhaitez engager un consultant professionnel pour votre projet XMPP ? Consultez notre tableau d'affichage des offres d'emploi XMPP.

    Contributions et traductions de la lettre d'information

    Il s'agit d'un effort communautaire, et nous tenons à remercier les traductrices et traducteurs pour leur contribution.
    Les bénévoles et les nouvelles langues sont les bienvenues !
    Les traductions de la lettre d'information XMPP seront publiées ici (avec un certain retard) :

    Contributions à la lettre d'information de ce mois-ci : emus, cal0pteryx, Gonzalo Raúl Nemmi, Ludovic Bocquet, anubis, Badri (badrihippo), XSF iTeam

    Contributions à la traduction :

    • Français : Adrien Bourmault (neox), anubis, seveso, impromptux, Blacknight
    • Italien : Mario Sabatino, Roberto Resoli
    • Portugais : Paulo

    Aidez-nous à créer la lettre d'information

    Cette lettre d'information XMPP est produite en collaboration avec la communauté XMPP. Chaque numéro mensuel est rédigé dans ce simple pad. À la fin de chaque mois, le contenu du pad est fusionné dans le dépôt GitHub de la XSF. Nous sommes toujours ravis d'accueillir de nouvelles personnes contributrices. N'hésitez pas à rejoindre la discussion dans notre groupe de discussion Comm-Team (MUC) et à nous aider ainsi à poursuivre cet effort communautaire. Vous avez un projet et souhaitez le faire connaître ? N'hésitez pas à partager vos actualités ou événements ici, et à les promouvoir auprès d'un large public.

    Tâches que nous effectuons régulièrement :

    • collecte d'actualités dans l'univers XMPP
    • résumés courts d'actualités et d'événements
    • résumé de la communication mensuelle sur les extensions (XEP)
    • révision du projet de lettre d'information
    • préparation d'images pour les médias
    • traductions
    • communication via les comptes des médias

    Licence

    Cette lettre d'information est publiée sous licence CC BY-SA.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Reçu — 5 août 2026 ⏭ Actualités libres

    Éditer de la littérature libre : les Éditions du Renard Spatial

    J’aime le logiciel libre. J’aime la littérature. Alors, un jour, je me suis demandé s’il était possible d’éditer de la littérature libre.
    Les premiers essais ont eu lieu au début de l’été 2020, le covid laissait le temps libre à des expérimentations.

    Six ans plus tard, les Éditions du Renard Spatial existent, éditent des littératures de l’imaginaire libres, et viennent de publier « Ça ne peut pas être pire qu’ici » par Lisa Refur (une amie), un roman court de fantasy/apprentissage, au format papier.
    C’est l’aboutissement d’une aventure que je vais vous raconter ici.

    Couverture du livre « Ça ne peut pas être pire qu’ici », de Lisa Refur, aux Éditions du Renard Spatial

    Sommaire

    L’art libre, une discipline très différente du logiciel libre

    On parle assez peu d’art libre, que ce soit sur LinuxFR.org ou ailleurs (il n’y a même pas de catégorie dédiée !) ; on peut même considérer que le sujet est ignoré, y compris des personnes qui baignent dans le logiciel libre depuis des décennies. C’est que l’art libre et le logiciel libre sont différents sur beaucoup d’aspects, y compris des points fondamentaux. On pourrait disserter longtemps sur ce point, mais ça n’est pas le sujet ; je vais plutôt me concentrer sur quatre points qui sont utiles à comprendre pour la suite.

    Le premier, c’est que la personne qui développe un logiciel développe d’abord un outil.
    D’accord, elle peut y tenir énormément, avoir une vision forte ; mais l’implication personnelle reste beaucoup moins forte que celle d’un·e auteur·ice dans son œuvre artistique. Les créateur·ices de logiciels libres acceptent donc beaucoup plus facilement la réappropriation et la modification de leur production ; au contraire des artistes qui ont tendance à vouloir conserver le contrôle sur des œuvres qui peuvent être très personnelles.

    Le second, c’est que mis à part quelques exceptions comme le cinéma, beaucoup d’arts sont profondément solitaires ou se pratiquent en tout petit comité, là où le développement logiciel est généralement un travail d’équipe. Les notions de partage, d’amélioration mutuelle sont beaucoup plus fréquents dans le développement logiciel que dans l’art.

    Le troisième, c’est que la réutilisation d’éléments – la réutilisation directe, au contraire de l’inspiration – est infiniment plus fréquente dans le développement logiciel que dans l’art.
    Tous les logiciels ou presque réutilisent du code, via des bibliothèques, des API, des ABI, ou directement. Au contraire, la réutilisation directe en art est rare, hors quelques cas précis, et souvent mal vue.

    Le quatrième et le plus important, c’est l’argent, la thune, le fric, la moula.
    Les développeurs informatiques sont généralement bien, voire très bien payés, même avec les changements introduits par les IAs génératives. Au contraire, rares sont les artistes qui peuvent vivre de leur art ; celles et ceux qui peuvent en vivre décemment sont encore plus rares.

    Les trois premiers points expliquent pourquoi la notion de « Liberté » (dans le sens de l’expression « art libre ») est moins importante pour les artistes que pour les développeurs et développeuses de logiciels. Le dernier explique pourquoi les artistes ont une énorme difficulté matérielle à contribuer à de l’art libre, quand bien même ils et elles en auraient envie ; parce que pour offrir de son temps, ou trouver un modèle de financement compatible avec l’art libre, il faut d’abord pouvoir manger à sa faim.

    Mais cette longue digression introductive ne nous apprend toujours rien sur le sujet d’origine !

    Le projet des Éditions du Renard Spatial

    Dès le début, mon projet était clair : je voulais éditer de la littérature libre, et pas n’importe comment.

    La direction éditoriale

    Tout éditeur a besoin d’une direction éditoriale, pour que les client·es ne soient pas perdu·es. Quel sens ça aurait d’éditer en vrac des livres de cuisine, des polars, des livres sur l’informatique et des albums photo ?

    Je lis principalement des littératures de l’imaginaire – science-fiction, fantasy, fantastique, le tout pris au sens large. C’est pour cela que les Éditions du Renard Spatial éditent des littératures de l’imaginaire. J’ai aussi décidé de partir sur des formats courts : on trouve beaucoup de sagas et œuvres à rallonge dans ces univers ; mais j’aime bien lire des histoires percutantes et efficaces. En prime, c’est plus rapide à éditer (je n’ai pas écrit « plus facile »).

    De la littérature libre

    Je veux dire : vraiment libre ; donc sous des licences qui respectent les quatre libertés habituelles (même si on peut se poser la question de savoir ce qu’est le « code source » d’un texte si ce n’est le texte lui-même). J’ai donc choisi de partir, par défaut, sur les licences Creative Commons, qui ont le bon gout d’être adaptées à ce genre de projet et connues. Je me limite aux licences libres, ce qui exclut les clauses -NC et -ND, qui en font des licences « de libre diffusion ».

    Ça a été l’occasion de se poser sérieusement la question de l’intérêt de licences libres appliquées à la littérature. J’en vois deux assez immédiats.

    Le premier, c’est la diffusion de l’œuvre.
    Une œuvre, une fois publiée, va circuler, qu’on le veuille ou non. Elle sera « piratée », que l’éditeur ait protégé son œuvre ou non ; d’ailleurs, saviez-vous que beaucoup de fuites de livres sur les sites de partage illégaux proviennent de sources internes à la chaine du livre ? C’est un point d’autant plus important pour moi que je veux que les textes que je publie, vivent, même si ma maison d’édition doit disparaitre.

    Le second, c’est le fandom de l’œuvre.
    Si une œuvre plait, alors il va se créer tout un tas d’œuvre dérivées – que l’auteur·ice et l’éditeur·ice le veuillent ou non – à base de fanfictions, de dessins, et j’en passe. Aujourd’hui tout ça existe sans aucun cadre légal, et les licences libres permettent de créer ce cadre.

    De la littérature pour tout le monde

    La culture, c’est vite cher, et je refuse la position d’une culture réservée à une élite.

    Les livres que j’édite sont donc les moins chers possibles, dans la limite du raisonnable. Ça implique que les livres papier sont d’office des formats « poche » – 11 x 18 cm – et que les livres électroniques sont sensiblement moins chers que les versions imprimées.

    En bonus, ça m’arrange parce que je n’ai jamais aimé les grands formats. Alors, c’est joli dans une bibliothèque et ça fait un bel objet à offrir – et, soyons honnêtes, à revendre – mais en ce qui concerne la fonction livre, je trouve ça nul, parce qu’un grand format, c’est encombrant, c’est lourd, c’est pénible à transporter (et je lis souvent dans les transports) ou même à tenir quand on est vautré dans un canapé.

    Un vrai éditeur, pas un éditeur-Amazon

    Je voulais que les livres des Éditions du Renard Spatial soient de « vrais » livres, que l’on peut acheter dans n’importe quelle librairie, avec un ISBN, un référencement qui va bien, et tout. L’idée du livre qui existe, mais qui ne peut être acheté que sur le site du vendeur, ou en ligne chez un seul libraire – en général Amazon – me gonfle.

    C’est sans doute parce que j’aime beaucoup mes libraires (qui sont d’excellent conseil). En prime, ça m’évite d’avoir à gérer toute la logistique, le stockage, les factures individuelles, l’envoi de commandes… tout ce que je déteste.

    De tous mes choix, c’est – de loin – celui qui m’a le plus cassé les pieds.

    Production locale et raisonnée

    Faire imprimer des livres en Chine pour les vendre principalement en France me semble absurde ; donc l’idée de base était de trouver un imprimeur en France, ou à défaut quelque part dans l’UE.

    D’autre part, la chaine du livre repose beaucoup sur une notion de stock qui voyage. En très résumé, l’imprimeur imprime un tas de livre, qui est en partie stocké, en partie envoyé aux libraires, qui vendent ce qu’ils peuvent et qui – chose exceptionnelle dans le monde de la vente – renvoient les exemplaires invendus… qui finissent au pilon s’ils ne se vendent pas pendant un peu trop longtemps (ou sont trop abimés à cause des voyages), parce que le stockage, ça coute cher. Donc, si je peux éviter de faire imprimer des livres pour les stocker et finir par les détruire, ça m’arrange, parce que tout ça c’est une perte sèche.

    Le difficile problème des couvertures

    Pour commencer, une illustration de couverture, c’est un budget important pour une petite structure, surtout en refusant l’usage d’IA générative (ah oui, il y a la question de l’IA générative qui est venue s’inviter au milieu du projet).

    Alors, j’ai réfléchi. Le premier intérêt d’une couverture, c’est d’attirer l’œil, d’être facile à repérer dans un magasin ou sur un site, au milieu de beaucoup d’autres.
    Autre chose : les livres que j’ai achetés à leur couverture se comptent sur un doigt d’une main ; quant aux couvertures que je suis capables de décrire sans aller les vérifier, il y en a très peu, la plupart d’entre elles sont sobres – et à l’exception de celle déjà nommée, aucune d’elle n’a été un critère d’achat. Inversement, beaucoup de littératures de l’imaginaire ont des couvertures illustrées, avec une typographie soignée, mais à cause des effets de mode, elles ont tendance à toutes se ressembler, ce qui fait qu’aucune ne se repère facilement dans la masse.

    La solution s’est imposée d’elle-même : je peux me contenter de couvertures sobres, très lisibles, très faciles à reconnaitres, avec une harmonie dans la collection.

    Le temps et l’énergie que je peux y consacrer

    Ce projet n’est pas mon activité principale, et je n’ai pas pour projet d’en vivre.

    L’avantage, c’est que ça me libère d’une contrainte financière extrêmement forte – rares sont les petites maisons d’édition rentables.

    L’inconvénient, c’est que ça m’empêche de faire du volume, ce qui n’aide ni pour la reconnaissance, ni pour la publicité, ni pour les revenus.

    Profils d’auteur·ices cible

    Un tout petit éditeur, avec des conditions d’édition étranges (de l’art libre, des formats qui rapportent moins à l’unité), qui est-ce que ça va intéresser ?
    C’est une vraie question.

    Ma réponse, c’est : le même genre de profil que celui intéressé par le logiciel libre, mais dans le monde de la littérature.

    Concrètement, c’est un·e auteur·ice qui écrit pour le plaisir, en loisir, et donc n’a pas besoin de ce revenu pour vivre.

    Je vais être très clair sur un point : je paie mes auteur·ices, et il n’a jamais été question de ne pas le faire. Simplement, je ne peux pas me permettre d’avance sur droits ni promettre des ventes faramineuses, cf. le point précédent.

    Ainsi donc, après une première publication-test sur l’un de mes textes, j’ai convaincu une amie, Lisa, de se lancer dans l’aventure avec moi…

    Créer les Éditions du Renard Spatial, de façon légale et complète

    À ce stade – en réalité, avant la dernière ligne du paragraphe précédent, j’ai toute la vision cible, il n'y a plus qu’à passer à la réalisaton !

    D’abord, une entreprise

    La France propose le système de « microentreprises » ou « autoentrepreneurs », un système légal qui est censé permettre à tout le monde de se créer facilement une entreprise pour se créer un complément de revenu, et qui correspond bien à mon projet.

    Le mot-clé est « facilement ». Eh ben, si ça, c'est facile, je veux même pas imaginer la prise de tête que ça doit être de créer une entreprise « normale », même unipersonnelle. Je passe les détails – déjà parce que ça fait six ans donc ça a pu changer –, mais au cas où, sachez tout de même que :

    1. Une autoentreprise peut avoir un nom commercial, mais le nom réel, celui enregistré au SIREN, est impérativement votre identité réelle. Il y a bien une option qui permet de masquer ces informations personnelles – la base SIREN étant publique –, mais tous les systèmes d’interconnexion informatique dont vous allez avoir besoin partent du principe que cette information est disponible dans les données publiques. Donc, impossible d’activer la confidentialité tant que toute la paperasserie n’est pas terminée.
    2. En théorie, un compte bancaire séparé suffit, pas besoin d’avoir un compte bancaire professionnel ; donc on peut utiliser un compte personnel gratuit. En pratique, le site des impôts impose un IBAN professionnel… et toutes les banques ont bidouillé leurs règles commerciales pour limiter l’émission d’IBAN professionnels aux seuls comptes professionnels payants.
    3. Et, à partir de septembre 2026, il faut aussi un système de facture électronique.

    OK, l’entreprise et ses dépendants (la banque, l’inscription au RCS via le Tribunal de Commerce, les impôts, l’URSSAF…), c’est fait.
    Et ensuite ?

    Éditer c’est vendre, et vendre c’est communiquer

    Avant toute chose : déposer sa marque à l’INPI. C’est pas gratuit, mais ça évite les abus un peu trop faciles.

    Il me faut donc des outils de communication. Ça passe par divers comptes sur les réseaux, pour communiquer avec les gens là où ils sont, même si ça ne m’enchante pas. Je décide de ratisser large : BlueSky, Instagram, Discord, LinkedIn, Facebook, et même à l’époque un compte Twitter qui a été abandonné. Je n’ai pas de compte Mastodon parce qu’il faut d’abord que je trouve une instance adaptée à ce genre de projet ; je prends les conseils.

    Puis, un site web ; et là, j’ai un gros avantage : je peux le créer et l’héberger moi-même.
    C’est un site 100 % statique créé avec Hugo, sobre (sans JS ni framework CSS) et disponible ici : https://renardspatial.com/. J’y ai tenté des trucs d’un point de vue design – et je ne suis pas du tout designer. Mais je cherchais quelque chose d’un peu original, qu’on a pas l’impression d’avoir déjà vu partout, et qui soit utilisable sur mobile (ça reste la majorité des utilisateurs). Là aussi, je prends les retours (seulement les constructifs). Les polices d’écriture sont celles utilisées pour les livres et, bien évidemment, sont libres.

    Un livre doit avoir un ISBN

    L’ISBN (pour « International Standard Book Number ») c’est un numéro d’identification unique pour chaque livre dans le monde depuis les années 1980.

    C’est la partie facile : pour une modique somme, l’AFNIL en fournit très largement assez pour des années, il suffit juste d’un peu de patience. Les numéros sont fournis sous la forme d’une liste, à l’éditeur de les attribuer à chaque ouvrage ; la version numérique et la version papier ne comptant que pour un que s’ils sont strictement identiques.

    Ouf ! J’ai enfin toute la structure et tout le nécessaire pour que l’entreprise fonctionne ; maintenant, je peux enfin commencer à éditer !

    Créer de la littérature libre… avec des logiciels libres ?

    Éditer le texte lui-même

    Pour l’instant, c’est la partie facile : mon amie Lisa – seule autrice tierce pour l’instant – et moi utilisons LibreOffice, dont le système de commentaires fait l’affaire. D’autre part, on se voit souvent en vrai, ce qui simplifie beaucoup le travail.

    L’outil de PAO

    La PAO, c’est la Pagination Assistée par Ordinateur, ce qui permet à l’ouvrage – livre, magasine, etc. – d’avoir une mise en page correcte.

    Un fait peu connu du grand public : un logiciel de traitement de texte est incapable de faire une mise en page correcte, et j’entends par là d’avoir une qualité professionnelle, notamment en ce qui concerne la typographie. Un LibreOffice Writer – ou même un Microsoft Word – ne gèrent pas les alignements sur grilles, ont des options de césure, de lignes veuves et orphelines très réduites, ne gèrent pas les ligatures de manière fine, n’ont pas d’option pour activer (et encore moins paramétrer) l’alignement visuel, et j’en passe. Or, j’ai envie d’avoir une mise en page correcte, même si certains gros éditeurs, eux, ont décidé de s’en passer.

    Le logiciel libre le plus connu pour ce faire, c’est LaTeX. Il est excellent sur la typographie, et… atroce sur le reste. Pour moi ça n’est pas un choix acceptable, il ne correspond tout simplement pas à ma façon de travailler (et, si vous êtes aficionados de LaTeX, pas la peine de venir le défendre en commentaires, je le connais depuis plus de 20 ans).

    Le choix suivant, c’est Scribus. Donc je l’installe, l’essaie, l’essaie encore, l’essaie toujours ; et après beaucoup trop longtemps, je n’arrive toujours pas à faire le quart de ce que je veux avec. (Il semblerait que le logiciel se soit beaucoup amélioré depuis, il faudra que je réessaie).

    La solution que je trouve n’est hélas pas libre et à l’époque elle n’était même pas gratuite, bien qu’infiniment moins chère que les mastodontes du genre. C’est Affinity Publisher ; et en une après-midi, j’ai une maquette qui est à 90 % ce que je veux, couverture comprise, donc je décide d’être pragmatique et de partir sur ce logiciel.

    Créer les fichiers pour l’impression

    C’est facile : tous les imprimeurs prennent des fichiers PDF (et indiquent la version exacte qu’ils attendent), donc en suivant les instructions, il ne devrait pas y avoir de surprise. Et de fait, j’en ai pas eu.

    Créer les livres électroniques

    Mon diffuseur (je reviendrai sur son rôle dans la section suivante) me dit que je peux me contenter de fournir un EPUB et un PDF, et qu’il transforme lui-même le livre aux éventuels autres formats, dont l’infâme Kindle.

    Le PDF, c’est facile, j’ai déjà. Mais l’EPUB ? Je découvre trois choses :

    1. Un livre électronique au format EPUB, c’est juste un fichier ZIP renommé avec le texte au format XHTML (oui !), un fichier de styles CSS (qui sera largement ignoré par le logiciel de lecture…) et une poignée de métadonnées, en général du XML (parfois renommé).
    2. Malgré ça, personne ne semble savoir générer un EPUB correct. La plupart des logiciels et convertisseurs que j’essaie me génèrent une soupe de balises sans aucun sens ; d’ailleurs la plupart de ceux que j’ai sur ma liseuse ont des problèmes plus ou moins graves à l’usage.
    3. Le format EPUB semble être plus une vague indication qu’une norme, et les différentes liseuses et logiciels de lecture ont tous des interprétations, disons créatives de comment ce format doit être rendu.

    Donc, je finis par décider de le générer à la main ; et en fait, c’est facile : en une journée, j’ai un fichier tout à fait valide qui passe bien sur ma liseuse physique, et sur diverses liseuses logicielles sur PC et smartphone. Mon seul échec, c’est la page de faux-titre qui n’est pas stylisée correctement. Il y avait un seul piège : les fichiers ZIP définissent l’ordre dans lequel sont stockés les fichiers, et le format EPUB attend un ordre précis qui doit être respecté (mimetype, puis META-INF/*, puis OEBPS/*). Il semblerait que les versions récentes de LibreOffice produisent un résultat correct, il faut que je réessaie.

    Et donc maintenant, j’ai des livres qui contiennent de la littérature libre, qu’il me faut vendre.

    Vendre de la littérature libre

    Parce que si je parle de littérature libre depuis le début, je n’ai jamais parlé de littérature gratuite, et pour cause : mon but est bien de vendre cette littérature, même libre, ne serait-ce que parce qu’il faut bien que je paie les intermédiaires. Justement, parlons-en.

    La chaine du livre

    Le processus de création d’un livre implique tout ce petit monde :

    1. L’auteur·ice, qui écrit le livre.
    2. L’éditeur – ici moi-même, au nom des Éditions du Renard Spatial – qui édite le livre, et qui peut faire appel à :
      1. Une correctrice, qui s’assure qu’il ne reste pas de fautes d’orthographe et de grammaire ; et croyez-moi la langue française aurait bien besoin d’une simplification. Une grosse.
      2. Une graphiste, pour la couverture, les éléments de communication, etc.
      3. Un maquettiste, pour la mise en page.
      4. … et j’en passe, surtout dans les grands groupes (notamment le directeur de collection).
    3. L’imprimeur, qui, ben, imprime le livre.
    4. Le distributeur, qui assure la logistique, c’est-à-dire de stocker les livres imprimés et les envoyer aux libraires.
    5. Le diffuseur, qui va assurer la promotion des livres auprès des libraires et s’assurer de leur présence.
    6. La libraire, qui va vendre le livre.

    Sachant que dans la liste principale, seul l’imprimeur travaille à tarif fixe ; tous les autres se rémunèrent au pourcentage du prix de vente final… et donc vont sans doute refuser les partenariats vus comme non rentables. Comme, par exemple, travailler avec un petit éditeur qui vend des livres pas chers, libres, et qui ne fait même pas ça à plein temps.

    Pour l’instant, coté édition, je fais tout moi-même. Si jamais un jour, j'ai les moyens (je compte sur vous !), j’investirai d’abord dans une correction professionnelle.

    Vendre des livres électroniques

    Trouver un distributeur de livres électroniques, c’était facile ; et très vite, j’ai eu une nouvelle à mon pseudo disponible sur à peu près toutes les plateformes.
    On a donc travaillé un premier livre avec mon amie Lisa, on l’a réalisé, vendu partout où on peut acheter un livre électronique, et on a découvert la triste vérité :

    Les livres électroniques, ça n’intéresse personne.

    C’était le plus beau « Vu et s’en tape » de toute notre vie. En fait, sans version papier, c’est comme si le livre n’existait même pas.

    Mais il y a un problème…

    Vendre des livres papier

    Vous vous rappelez quand, plus haut, j’écrivais que j’avais créé l’entreprise en 2020 ? Eh bien, le covid avait mis un grand bazar dans le monde de l’impression, et les prix du papier s’étaient envolés.

    Ça s’est ensuite calmé. Quelques semaines. Après quoi, la Russie a déclaré la guerre à l’Ukraine, grande fournisseuse européenne de bois et de papier, donc re-crise, retour des prix absurdes, priorité absolue aux clients de longue date, etc. (j’ai même quelques mangas de cette époque qui sont visiblement imprimés sur du papier machine, le même qu’on utilise dans nos imprimantes !)

    Quand c’est de nouveau revenu à une certaine normale, j’ai cherché imprimeurs, distributeurs et diffuseurs. L’imprimeur, c’est facile, tous les imprimeurs de France et de Navarre veulent bien faire des livres de poche. Facile, pour eux, on paie un tarif fixe par livre et ça leur va bien. Le distributeur et le diffuseur, c’est beaucoup plus compliqué. Ce que je veux faire, c’est pas assez cher, y’a pas assez de volume, j’ai pas assez de poids dans un marché déjà saturé.

    Alors, je me suis dirigé vers l’impression à la demande, qui finalement a beaucoup d’avantages pour une structure comme la mienne ; et on en trouve qui cumulent prix correct, bonne réputation, et qui impriment dans l’Union Européenne. En particulier, on peut avoir de l’impression à la demande qui est référencée sur Dilicom et Electre, donc commendable en libraire, ce dont je n’étais pas sûr à l’origine.

    Encore un peu de paperasse, puis davantage de paperasse (notamment pour faire corriger une erreur d’attribution d’éditeur), et un envoi au dépôt légal, et enfin – enfin ! – on est en juillet 2026 on a une version papier de notre premier livre !

    « Ça ne peut pas être pire qu’ici »

    Couverture du livre

    « Ça ne peut pas être pire qu’ici » est une novella (à mi-chemin entre une nouvelle et un roman) de fantasy et d’apprentissage de Lisa Refur, publié sous licence CC-BY 4.0 dont voici la quatrième de couverture :

    Cette ligne de chemin de fer apparue par magie agit comme un déclencheur dans l’esprit des adolescents désœuvrés. Et s’il existait un monde au-delà de cette ville de banlieue décrépite ? Qu’est-ce qui interdit aux quatre amis de quitter Villeneuve ? Rien, en fait. C’est le début de l’aventure pour Ajax, Dro, Biénale et Zef ; l’abandon d’une cité cité sans avenir, la quête d’une vie meilleure. Mais pour aller où ? Suivre la ligne ? D’où vient-elle, et où va-t-elle ? Est-ce mieux ailleurs ?

    La seule solution qu’ont les jeunes gens pour le découvrir : prendre la route, se confronter à ses difficultés, ses joies et ses peines, dans l’espoir que la destination soit bonne.

    Il est disponible pour 6,99 € au format papier (11 x 18 cm, 84 pages, demandez l’ISBN 9782492575037 à votre libraire préféré) ; et pour 2,99 € au format électronique, sans DRM quand la librairie le permet, cherchez l’ISBN 9782492575013.

    Éditer de la littérature libre : premier point d’étape

    Le premier enseignement que j’en tire, c’est celui-ci : tout le monde s’en cogne.

    Le sujet n’intéresse personne, en bien comme en mal : je n’ai eu aucune remarque sur le sujet. Les textes, le site, les couvertures ont généré beaucoup plus de commentaires. D’un côté, c’est un peu triste ; d’un autre ça n’a pas déclenché de rejet, et c’était le point que je craignais le plus dans cette expérience. Je croise les doigts.

    La conclusion que j’en tire pour l’instant, c’est la suivante : pour l’instant, publier de la littérature sous licence libre ne m’a rien apporté directement, et c’était attendu : l’intérêt du libre, c’est d’abord pour les personnes qui utilisent plus que pour celles qui produisent, surtout dans un domaine où la création collaborative est minoritaire.

    Mais surtout, publier de la littérature libre ne m’a pas handicapé, donc je n’ai aucune raison d’arrêter de le faire, et par conséquent, je vais continuer !

    Et maintenant ?

    Les Éditions du Renard Spatial vont continuer à publier des littératures de l’imaginaire libres.

    Le prochain livre ne devrait pas attendre trois ans de plus, puisqu’on a un projet de recueil de nouvelles en cours avec Lisa. Si tout va bien, il devrait sortir quelque part entre cet automne et cet hiver – j’ai arrêté de croire à une date précise tant que tout n’est pas terminé.

    Mais surtout, les soumissions sont maintenant ouvertes ! Si vous êtes intéressé·es, pouvez vous proposer votre projet en suivant la procédure détaillée ici. Attention ! Il ne s’agit pas d’envoyer un texte complet avec à peine un bonjour (j’en ai déjà eu !).

    J’avais imaginé terminer par une sorte de FAQ, mais cette dépêche est déjà extrêmemement longue, donc je vous propose de lire celle du site, et de me poser toute question restante en commentaires.

    Merci de m’avoir lu !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Reçu — 29 juillet 2026 ⏭ Actualités libres

    G’MIC 4.0 : La quadrature du pixel, plus facile que jamais !

    Dix-huit ans après ses débuts, G’MIC, cadriciel libre pour le traitement des images numériques, franchit une étape importante avec la sortie d'une nouvelle version majeure, numérotée 4.0, la version de la maturité !

    L'occasion, comme chaque année, de faire le point sur les évolutions récentes de ce projet, depuis notre dernière dépêche publiée en août 2025.

    G´MIC 4.0 Teaser

    N. D. A. : Cliquez sur les images pour en obtenir une version en pleine résolution, ou une vidéo correspondante lorsque les images contiennent l’icône Icône 'Play Video'

    Sommaire

    1. G’MIC : Un cadriciel libre pour l'image numérique

    Le projet G'MIC (GREYC's Magic for Image Computing) est né en juillet 2008, et a grandi au sein de l'équipe IMAGE du laboratoire GREYC de Caen (Unité Mixte de Recherche placée sous la triple tutelle du CNRS, de l'ENSICAEN et de l'Université de Caen).

    Sa vocation : offrir un cadriciel libre, ouvert et extensible pour la manipulation, le traitement et la création d'images numériques. Pour ce faire, il s'appuie sur les fonctionnalités de la bibliothèque libre C++ de traitement d'images CImg, développée depuis 1999 d'abord au sein de l'INRIA, puis de l'équipe IMAGE du GREYC (également par votre serviteur).

    Au cœur du projet se trouve un interpréteur de langage de script dédié, le « langage G'MIC », spécialement conçu pour prototyper rapidement de nouveaux algorithmes de traitement d'images, et les enchaîner au sein de pipelines (ou filtres) personnalisés. Autour de ce noyau viennent se greffer plusieurs interfaces, donnant à l'utilisateur accès à des centaines d'opérateurs de traitement d'images prédéfinis, comme par exemple l'outil en ligne de commande gmic ; le service Web G'MIC Online ; et le greffon G'MIC-Qt, qu'il est possible d'intégrer dans plusieurs logiciels de création et d'édition d'images, tels que GIMP, Krita, digiKam, Paint.net, Adobe Photoshop ou Affinity Photo. C'est aujourd'hui ce greffon qui est l'interface du projet la plus utilisée, avec plus de 1200 téléchargements quotidiens, en progression depuis un an. Il propose plus de 640 filtres variés pour triturer vos images et enrichir les possibilités des logiciels de retouche, et semble particulièrement apprécié des artistes numériques.

    Cette version majeure 4.0 marque un tournant dans la vie du projet : la syntaxe du langage G'MIC, le code de l'interpréteur et des algorithmes de traitement d'images associés sont maintenant éprouvés. Nous souhaitons donc ralentir un peu le rythme des nouvelles releases et de l'ajout de nouvelles fonctionnalités, pour nous concentrer sur la stabilité, la robustesse, et les performances du cadriciel.

    Aperçu du greffon G'MIC-Qt Fig. 1.1. Aperçu de quelques-unes des interfaces proposées par le projet G'MIC : Greffon G'MIC-Qt pour GIMP (en haut à gauche), Outil CLI gmic (en haut à droite), Service web G'MIC Online (en bas).

    2. Nouveaux filtres du greffon G'MIC-Qt

    Côté greffon G'MIC-Qt, l'essentiel des nouveautés se concentre sur l'apparition de nouveaux filtres de traitement d'images. La version 4.0 porte leur nombre à 644, tous accessibles directement depuis l'interface graphique. Je liste ci-dessous les derniers filtres ajoutés.

    2.1. Filtre « Rendering / Pixel Stretch »

    Le filtre « Rendering / Pixel Stretch » permet de sélectionner une « bande de pixels », et la duplique dans l'image en lui faisant suivre une trajectoire personnalisable, définie par deux courbes splines (une pour chaque bord de la bande).

    Filtre 'Rendering/Pixel Stretch' (G'MIC-Qt) Fig. 2.1.1. Le filtre « Rendering / Pixel Stretch » tel qu'il apparait dans le greffon G'MIC-Qt.

    Filtre 'Rendering/Pixel Stretch' (rendu 1) Fig. 2.1.2. Exemple de rendu du filtre « Rendering / Pixel Stretch », ici avec deux traînées de pixels ajoutées par le filtre.

    Cet effet donne l'impression que l'image a été étirée localement, un peu comme une pâte élastique. Il peut servir à suggèrer ou styliser un mouvement dans une image, comme sur l'exemple ci-dessous (extrait de la vidéo tutorielle que Miguel Pineau a spécialement dédiée à ce filtre).
    On peut également imaginer son utilisation pour du Glitch art ou de la création de textures abstraites.

    Filtre 'Rendering/Pixel Stretch' (rendu 2) Fig. 2.1.3. Le filtre « Rendering / Pixel Stretch » appliqué pour styliser le mouvement d'une danseuse (Crédits : Miguel Pineau).

    2.2. Filtre « Rendering / Gradients [Poles] »

    Toujours dans cette section « Rendering », notons l'arrivée de « Rendering / Gradients [Poles] », un filtre générant des dégradés de couleurs en interpolant spatialement des points-clés colorés, dont les positions et les couleurs sont laissées au choix de l'utilisateur. Ici, l'interpolation fait usage des fonctions de base radiale qui produisent des dégradés de couleurs lisses et harmonieux. L'utilisateur a également le choix de l'espace de couleurs dans lequel l'interpolation s'effectue. L'animation ci-dessous illustre le fonctionnement de ce filtre au sein du greffon.

    Filtre 'Rendering/Gradient (Poles)' (G'MIC-Qt) Fig. 2.2.1. Le filtre « Rendering / Gradient [Poles] » crée des gradients spatiaux de couleurs possiblement complexes, à partir de quelques points de contrôle.

    2.3. Filtre « Artistic / Marker Drawing »

    Passons maintenant au filtre « Artistic / Marker Drawing », qui comme son nom l'indique, essaye de redessiner une image d'entrée sous la forme de traits de stylos feutres colorés. L'algorithme sous-jacent trace effectivement des splines colorées aléatoires sur une feuille blanche, le long des contours des structures géométriques présentes dans l'image à reproduire.

    Filtre 'Artistic/Marker Drawing' (G'MIC-Qt) Fig. 2.3.1. Le filtre « Artistic / Marker Drawing » redessine une image en simulant l'utilisation de stylos feutres colorés.

    Les nombreux paramètres réglables de ce filtre permettent d'obtenir des rendus potentiellement variés, plus ou moins abstraits, comme l'illustre la figure comparative suivante :

    Filtre 'Artistic/Marker Drawing' (rendus) Fig. 2.3.2. Trois types de rendus du filtre « Artistic / Marker Drawing », utilisant trois jeux de paramètres différents.

    2.4. Filtre « Deformations / Heightfield Warp »

    Changeons maintenant de thématique avec le filtre « Deformations / Heightfield Warp » qui crée un effet 3D, en déformant une image d'entrée comme si elle était plaquée sur une carte d'élévation (définie de manière paramétrique). Un effet d'éclairage additionnel, de type ombrage de Phong, peut être activé pour accentuer davantage l'effet de volume 3D produit par ce filtre.

    Filtre 'Deformations/Heightfield Warp (G'MIC-Qt) Fig. 2.4.1. Le filtre « Deformations / Heightfield Warp », tel qu'il apparait dans le greffon G'MIC-Qt, ici avec une élévation correspondant à une demi-sphère bombée vers la caméra.

    Ce filtre est particulièrement flexible : il laisse la possibilité à l'utilisateur de définir explicitement des formules mathématiques personnalisées pour les cartes d'élévations. Les mathématiciens en herbe peuvent ainsi laisser libre cours à leur imagination pour déformer leurs images !

    Filtre 'Deformations/Heightfield Warp (rendus) Fig. 2.4.2. Application de trois formules personnalisés de cartes d'élévations 3D, avec le filtre « Deformations / Heightfield Warp ».

    2.5. Filtre « Degradations / Offset Stripes »

    Les amateurs de Glitch art pourront être séduits par le nouveau filtre « Degradations / Offset Stripes », qui crée un effet de décalage de bandes d'images, horizontales et/ou verticales, avec des amplitudes de décalage aléatoires.

    Filtre 'Degradations/Offset Stripes (G'MIC-Qt) Fig. 2.5.1. Le filtre « Degradations / Offset Stripes » applique des décalages aléatoires sur des bandes d'images horizontales et/ou verticales.

    Ce principe de base est tout simple, mais là encore, les nombreux paramètres du filtre donnent accès à des décalages décorrélés sur chaque canal, pour des espaces couleurs variés, en pouvant itérer ces décalages aléatoires, et autorisent ainsi une grande variété de dégradations d'images de type « Glitch », comme illustré sur la figure ci-dessous.

    Filtre 'Degradations/Offset Stripes (rendus) Fig. 2.5.2. Résultats de différents jeux de paramètres du filtre « Degradations / Offset Stripes », appliqués sur une même image de portrait.

    2.6. Filtre « Colors / Transfer Colors [Multi] »

    Et pour terminer ce résumé des nouveaux filtres du greffon G'MIC-Qt, j'ai gardé le plus intéressant pour la fin : le filtre « Colors / Transfer Colors [Multi] » est un nouveau filtre de transfert de couleurs entre deux images.

    Le transfert de couleur consiste à appliquer une transformation couleur à une image « Source », en prenant comme référence une deuxième image (image dite de « Style ») dont on veut reproduire le style ou l'ambiance colorimétrique, et ceci bien sûr en préservant autant que possible les structures importantes (contours, objets, contenu sémantique) présentes dans l'image « Source » d'origine.

    Principe du transfert couleur entre images Fig. 2.6.1. Principe du transfert de couleur entre images: une image « _Source » (à gauche) est modifiée (à droite) de telle façon qu'elle « emprunte » les couleurs d'une image de « Style » (au centre)._

    D'un point de vue algorithmique, il y a de nombreuses façons d'aborder ce type de transfert. Le filtre « Colors / Transfer Colors [Multi] », comme son nom le suggère, implémente trois méthodes différentes pour ce faire : une méthode ACP ; une méthode de transfert d'histogrammes ; et enfin une méthode variationnelle. Pour utiliser ce filtre dans le greffon G'MIC-Qt, il suffit de l'appeler sur une image contenant deux calques superposés : un calque contenant l'image « Source » à modifier, et un calque avec l'image « Style » contenant les couleurs de référence à transférer.

    Filtre 'Colors/Transfer Colors (Multi) Fig. 2.6.2. Le filtre « Colors / Transfer Colors [Multi] » tel qu'il se présente dans le greffon G'MIC-Qt.

    L'algorithme variationnel de transfert de couleur implémenté dans ce filtre est une production totalement originale : il est le fruit d'une collaboration de recherche entre deux membres de l'équipe IMAGE du laboratoire GREYC de Caen (D. Tschumperlé et J. Rabin), et d'une professeure du laboratoire de mathématiques LMI de l'INSA de Rouen (C. Le Guyader).

    Bref, un algorithme 100 % normand, qui fonctionne forcément « vachement 🐄 bien » 😉, et que vous ne trouverez nulle part ailleurs !
    On remercie chaleureusement la Fédération Normande de Recherche en Sciences et Technologies de l’Information et de la Communication (NormaSTIC) pour son aide financière qui a accéléré la mise en contact et le démarrage de cette collaboration fructueuse !

    Notre méthode a plusieurs caractéristiques propres permettant de calculer des transferts de couleurs souvent pertinents, et de bonne qualité comparativement à ses concurrentes, et ce, de manière rapide et complètement automatique. La figure ci-dessous illustre des exemples de transferts de couleurs qu'il est possible d'obtenir pour une même image « Source », en choisissant des images de « Style » différentes (et en laissant les paramètres par défaut du filtre).

    Filtre 'Colors/Transfer Colors (Multi) (rendus) Fig. 2.6.3. Exemples de transferts de couleurs réalisés par le filtre « Colors / Transfer Colors [Multi] » sur une même image « Source », avec plusieurs images « Style » différentes.

    La technique que nous proposons autorise également un mode « semi-supervisé » qui permet à l'utilisateur de forcer certaines correspondances de couleurs, et donc de « guider » l'algorithme pour calculer une solution de transfert plus contrainte et personnalisée.
    Les deux exemples ci-dessous illustrent ce mode de contrôle de manière assez parlante :

    Filtre 'Colors/Transfer Colors (Multi) (rendu guidé 1) Fig. 2.6.4. Guidage de l'algorithme de transfert de couleurs par mise en correspondance forcée de couleurs (Perruche → Mésange).

    Ici, les plumes vertes du corps de la perruche (a) sont perceptuellement plus proches de la couleur jaune du corps de la mésange (b), et c'est donc cette mise en correspondance qui est réalisée par défaut par l'algorithme de transfert (résultat (c)). En explicitant des correspondances de couleurs souhaitées (liens symbolisés entre les images (a) et (b)), on peut modifier ce comportement et contraindre le transfert à assigner la couleur bleue de la mésange aux plumes de la perruche (résultat (d)).

    Filtre 'Colors/Transfer Colors (Multi) (rendu guidé 2) Fig. 2.6.5. Guidage de l'algorithme de transfert de couleurs par mise en correspondance forcée de couleurs (Coccinelle → Formule 1).

    Dans ce deuxième exemple, on note que la couleur rouge de la Coccinelle (a) se retrouve ailleurs dans l'image « Style » de la Formule 1 (b) : au bord de la route, sur les coquelicots… L'algorithme décide donc naturellement de conserver cette couleur quasiment telle quelle lors du transfert automatique (résultat (c)). Forcer des correspondances de couleurs explicites permet de guider l'algorithme pour lui faire changer la couleur de la Coccinelle en vert (résultat (d)).

    Vous l'aurez compris, ce filtre représente l'aboutissement d'un travail de recherche de longue haleine en algorithmique du traitement d'images. Pour des chercheurs comme nous, il est réjouissant d'être arrivé au bout du processus complet : élaborer un nouvel algorithme complexe sur un bout de papier, le développer, l'implémenter, le peaufiner, en obtenir des résultats encourageants, le peaufiner encore et encore, en écrire une description détaillée dans un article scientifique (en cours de finalisation), l'intégrer proprement et le rendre utilisable par tout un chacun dans un logiciel libre, en sachant qu'il pourra être testé et utilisé potentiellement des milliers de fois !

    Notons que ce n'est pas la première fois qu'une méthode de traitement d'images développée au sein de notre laboratoire de recherche se retrouve valorisée dans G'MIC. Cette page recense plusieurs publications scientifiques décrivant des algorithmes élaborés au sein de l'équipe IMAGE du GREYC, et qui sont accessibles comme filtres du greffon G'MIC-Qt.

    3. Nouveautés et améliorations du cœur du logiciel et de sa bibliothèque standard

    Comme évoqué précédemment, le terme G'MIC peut faire référence au langage de script du même nom. Ce langage est doté de son propre interpréteur et de sa bibliothèque standard de fonctions. Il est utilisé pour implémenter tous les filtres et opérateurs de traitement d'images mis à disposition des utilisateurs des différentes interfaces du projet.

    Durant l'année écoulée, un grand nombre de petites améliorations ont été implémentées conjointement sur ce langage et sa bibliothèque standard.
    En réalité, l'ensemble de ces contributions représente même la majorité du travail de développement réalisé, et en même temps ce sont des choses qu'il est difficile de valoriser dans une dépêche grand public : elles concernent principalement des points très précis et techniques du projet, comme par exemple des optimisations du parsing ou des algorithmes, du nettoyage de code, de nouvelles fonctions ou options pour l'évaluateur d'expressions mathématiques, etc.
    Ce sont bien sûr des ajouts utiles pour les développeurs de nouveaux filtres dans ce langage, mais il est difficile de les mettre en valeur de manière réellement plaisante.

    J'ai donc pris le parti de lister ci-dessous uniquement les quelques nouveautés facilement « illustrables » :

    • La nouvelle commande random_patches réalise un rendu procédural d'images carrées contenant des formes géométriques et des textures synthétiques aléatoires. À quoi cela peut-il bien servir, me direz-vous ? Eh bien par exemple, à générer des ensembles d'images pour l'entrainement de réseaux de neurones convolutionnels, pour des tâches de débruitage et de super-résolution (ces réseaux sont ceux utilisés par les commandes denoise_cnn et scale2x_cnn).

    Commande 'random_patches' (rendus) Fig. 3.1. La commande random_patches synthétise des images carrées contenant des formes géométriques et des textures aléatoires.

    Ces images sont en réalité suffisamment complexes pour qu'un réseau de neurones puisse apprendre des filtres convolutionnels pertinents pour l'analyse semi-locale de la géométrie des structures présentes dans des images plus naturelles. Ces filtres appris peuvent ensuite être utilisés dans des tâches de débruitage ou de super-résolution, qui sont des problèmes très géométriques et qui ne nécessitent pas vraiment une analyse sémantique du contenu des images. Utiliser ces données synthétiques pour entrainer des réseaux simples est donc largement suffisant pour ce type d'applications. D'une part, cela évite de stocker de grandes bases d'images volumineuses lors de l'entrainement (les images synthétiques étant générées à la volée). Et d'autre part, on évite automatiquement d'enfreindre le copyright éventuel des images présentes dans les ensembles d'apprentissage prédéfinis (dont la provenance n'est pas toujours clairement citée, avouons-le).

    Commande 'shape_hilbert (rendus) Fig. 3.2. La commande shape_hilbert trace une courbe de Hilbert dans une image, commande illustrée ici avec des niveaux croissants de récursions.

    • La nouvelle commande pca calcule une analyse en composantes principales (ACP) d'un ensemble de vecteurs. Ce type d'analyse permet à la fois de déterminer la dimensionnalité représentative de données vectorielles, ainsi que leurs orientations principales dans l'espace. L'ACP a de nombreuses applications en traitement d'images et plus généralement en analyse de données : débruitage, compression, reconnaissance de visages, analyse de textures, recalage géométrique, etc. L'exemple ci-dessous illustre son utilisation pour déterminer l'orientation des axes principaux (dessinés en pointillés) d'une silhouette de libellule.

    Commande 'pca') Fig. 3.3. La commande pca est utilisée ici pour calculer les orientations des axes principaux d'une silhouette binaire 2D.

    • Les nouvelles commandes depthmap3d et normalmap3d viennent enrichir les possibilités de rendus d'objets 3D maillés de G'MIC, en synthésisant des rendus d'un objet respectivement sous la forme de cartes de profondeurs et de normales 3D.

    Commandes 'depthmap3d' et 'normalmap3d') Fig. 3.4. Les commandes depthmap3d et normalmap3d appliquées sur un modèle 3D en rotation.

    • Mentionnons enfin le travail d'amélioration général ciblé sur les algorithmes d'opérations matricielles présents dans G'MIC : arrivée de la décomposition QR (avec pivot), amélioration de la précision de calcul pour l'inversion de matrices et la résolution de systèmes linéaires… Et même s'il est difficile de rendre ça visuel, je vous propose cette petite ligne de commande qui crée une matrice carrée 40×40 aléatoire, qui l'inverse et qui calcule le produit des deux pour vérifier que l'on retrouve bien la matrice identité.
    $ gmic 40,40 rand -1,1 +invert +mmul name A,invA,'A*invA'

    Commande 'invert') Fig. 3.5. Exemple de l'utilisation de gmic en ligne de commande pour l'inversion d'une matrice aléatoire.

    Tout ceci n'est bien sûr qu'un aperçu succinct de ce qui a été réalisé sur le cœur de G'MIC cette année. Pour plus de détails techniques, la consultation des Changelog est recommandée.

    4. Nouveau dépôt de codes sources: gmic-interactive-demos

    En tant que membre d'un laboratoire public de recherche, j'ai l'occasion de participer ponctuellement à des évènements de vulgarisation scientifique (tels que la Fête de la science, le FÉNO, etc.), où l'on présente certaines de nos activités de recherche au grand public (en algorithmique du traitement d'images en ce qui me concerne). Pour rendre ces présentations plus attractives et ludiques, j'ai élaboré au fil des ans, différents programmes et bornes de démonstration interactifs, en me reposant sur les possibilités offertes par le langage G'MIC.

    Ces applications libres (sous licence CeCILL) sont maintenant accessibles sur ce dépôt logiciel : github.com/GreycLab/gmic-interactive-demos

    Elles pourront intéresser des enseignants et/ou chercheurs souhaitant illustrer différents concepts du traitement d'images à des publics de néophytes. Ces codes illustrent aussi les capacités du langage G'MIC pour la création de programmes interactifs, et ceci indépendamment du greffon G'MIC-Qt.

    Pour le moment, trois démonstrateurs sont présents dans ce dépôt logiciel. Ils sont détaillés ci-dessous.

    4.1. The SteamFace Machine

    « The SteamFace Machine » est le démonstrateur le plus récent. Il montre le fonctionnement des réseaux de neurones convolutionnels pour la détection d'un visage dans une image, et l'analyse de caractéristiques propres à ce visage, le tout enrobé dans un style SteamPunk du plus bel effet !

    The SteamFace Machine (intro) Fig. 4.1.1. Écran de lancement du démonstrateur « The SteamFace Machine ».

    Le flux vidéo capturé par la webcam s'affiche à l'écran, et lorsqu'un visage est placé au centre de l'image, la jauge de détection faciale s'active. En bas à droite, on peut apercevoir la sortie de différentes couches intermédiaires du réseau de neurones réalisant la détection (classifieur binaire avec une architecture de type LeNet-5).

    The SteamFace Machine (main) Fig. 4.1.2. Détection du visage par un réseau de neurones convolutionnel dans le démonstrateur « _The SteamFace Machine »._

    Une fois la détection opérée, un deuxième réseau est inféré pour en extraire différentes caractéristiques faciales : genre, âge, type de cheveux, port de lunettes ou de chapeau, taille du nez…

    The SteamFace Machine (caractéristiques) Fig. 4.1.3. Analyse de quelques caractéristiques liées au visage détecté.

    C'est une manière visuellement amusante de présenter le fonctionnement de classifieurs neuronaux au grand public, leurs capacités mais aussi leurs limites et les biais inhérents aux bases d'apprentissage utilisées pour les entrainer (dans le cas de ce démonstrateur, la base CelebA, qui contient des images assez éloignées de celles que l'on acquiert via la webcam dans un environnement non-contrôlé tel qu'un parc des expositions).

    Mentionnons également la belle contribution de notre cher collègue Philippe Bernard, du service Administration système et réseaux du GREYC, qui a réalisé une borne physique de démonstration intégrant « The SteamFace Machine », facilement transportable à des évènements de médiation scientifique !

    The SteamFace Machine (borne) Fig. 4.1.4. Vidéo de démonstration de la borne « The SteamFace Machine » quand elle était en cours d'élaboration.

    4.2. Virtual Artist

    « Virtual Artist » est un deuxième démonstrateur interactif, qui cherche à illustrer le principe du « transfert de style » entre deux images.
    Nous avons précédemment évoqué le transfert de couleurs (en section 2.6). Le transfert de style en est une extension naturelle : au lieu de transférer uniquement les couleurs, on cherche à transférer tout le style graphique d'une image « Style » vers l'image « Source ».
    C'est bien sûr un problème autrement plus complexe, et les méthodes les plus performantes du domaine utilisent généralement de gros réseaux de neurones.

    « Virtual Artist » n'a pas la prétention d'être à la pointe de l'état de l'art : c'est avant tout un démonstrateur pédagogique pour expliquer le principe général du transfert de style en traitement d'images. L'utilisateur peut jouer avec différentes images de « Source » et de « Style » prédéfinies. La figure ci-dessous illustre quelques-uns des écrans principaux de l'application.

    Virtual Artist Fig. 4.2.1. L'application « Virtual Artist » illustre le principe du transfert de style entre deux images.

    Ce démonstrateur a été utilisé de nombreuses fois sur une grande table tactile, dans des évènements grand public, et fait toujours son petit effet !

    Virtual Artist (FÉNO) Fig. 4.2.2. L'application « Virtual Artist » utilisée comme démonstrateur, ici au Festival de l'Excellence Normande (FÉNO) en 2021.

    4.3. GREYC Warp

    « GREYC Warp », le dernier démonstrateur de ce nouveau dépôt logiciel, implémente un miroir déformant interactif. L'utilisateur voit en direct le flux de la webcam et peut créer, déplacer ou supprimer des points clés qui définissent une déformation appliquée en temps réel. Une dizaine de transformations pré-définies sont également proposées.

    GREYC Warp Fig. 4.3.1. L'application « GREYC Warp » vous laisse déformer le flux vidéo de votre webcam, de manière interactive, et non sans humour !

    Pour avoir testé ce démonstrateur en situation réelle lors d'expositions, ça fait beaucoup rire les enfants (mais pas les plus jeunes qui pensent que ça reflète vraiment l'apparence de leur tête et qui peuvent se mettre à pleurer). Une application toute simple mais néanmoins amusante !

    5 G'MIC et le code créatif

    Ces quelques démonstrateurs esquissent déjà l'image d'un langage G'MIC adapté au code créatif, qui consiste, selon Wikipedia, à « utiliser la programmation informatique comme un moyen d'expression artistique (visuel, musical, littéraire, interactif, performatif…) à part entière ».

    5.1. Codes créatifs courts

    En tant qu'ancien demomaker, le code créatif est forcément un domaine qui me tient à cœur, et j'écris et partage régulièrement des scripts courts sur le forum de G'MIC pour expérimenter de nouvelles idées d'effets graphiques, ou en reproduire certains sur lesquels je suis tombé et que je trouve captivants.
    Quelques-uns de ces effets récents sont décrits ci-dessous, avec à chaque fois, un accès vers le code source correspondant (script .gmic).

    • Agrégation limitée par diffusion tournoyante : Cet effet est une variante de l'agrégation limitée par diffusion, implémentant un système de particules en mouvement qui sont stoppées dès lors qu'elles rencontrent une masse d'éléments plus anciens, déjà immobiles. On ajoute à tout ça une rotation, un zoom inverse, une palette de couleurs, et le tour est joué ! Le code source de cet effet atteint difficilement les 36 lignes, commentaires inclus !

    Diffusion-Limited-Aggregation (animation) Fig. 5.1.1. L'effet animé « Agrégation limitée par diffusion tournoyante », rendu par G'MIC.

    • Courbe de Hilbert néon : Cette animation stylise le dessin d'une courbe de Hilbert par un tracé incrémental faisant songer à un néon. Ici, le code source est beaucoup plus conséquent (52 lignes 😉).

    Hilbert-Curve (animation) Fig. 5.1.2. L'effet animé « Courbe de Hilbert néon », rendu par G'MIC.

    • Morphing de formes : Ici, deux silhouettes se transforment l'une vers l'autre via un morphing continu. On utilise des edgels pour l'extraction et la paramétrisation du contour des deux silhouettes à transformer. Le code source de cet effet revient à un nombre de lignes de code quand même plus raisonnable que précédemment (36 lignes).

    Morph Shape (animation) Fig. 5.1.3. L'effet animé « Morphing de formes », rendu par G'MIC.

    • Tunnel 3D : Celui-ci est l'un de mes préférés. C'est certes un effet ultra-classique dans le monde de la scène démo, mais le rendu est sympa. Et avec ses 68 lignes, le code source pour générer cette animation de 256 frames (qui cyclent parfaitement) reste dans les limites du raisonnable !

    Tunnel 3D (animation) Fig. 5.1.4. L'effet animé « Tunnel 3D », rendu par G'MIC.

    • One-liner géométrique : Le langage G'MIC, grâce à sa syntaxe délibérément concise, est un candidat idéal pour la création de one-liners. Une section entière de la documentation de référence est d'ailleurs dédiée à quelques one-liners amusants. Étant tombé par hasard sur cette belle image créée avec GeoGebra par Georg Wengler, j'ai souhaité la retranscrire en langage G'MIC sous la forme d'une unique ligne de commande affichant une animation, et voici le résultat (et heureusement qu'une ligne de code ne se limite pas à 80 caractères !)
    $ gmic 12,12,256,2,"a = 1 + x; b = 1 + y; t = lerp(0,2*pi*b,z/d); cos(a/b*t)*cexp([0,t])" 12,12,1,2,"S = crop(#-1,x,y,0,c,1,1,d#0,1); S = round(45*(S - avg(S)) + 50); draw(#-1,S,x,y,0,c,1,1,d#0,1)" rm. 1200,1200,1,3,255 repeat 256 { 12,12,1,1,"repeat (16,l, X = 100*[x,y] + round(I(#0,x,y,$> + l/16,2,2)); ellipse(#-1,X,1,1,0,1,0))" rm. +rs. 600 w. rm. wait 20 } rm

    cos(ab) (animation) Fig. 5.1.5. L'effet animé « cos(ab) », rendu par G'MIC.

    L'ensemble de ces nouvelles animations se retrouve dans la section Gallery du site web de G'MIC.

    5.2. Continuation de la série « G'MIC Adventures »

    De temps en temps, j'essaie aussi de partager l'ensemble du processus permettant d'arriver (en partant de zéro) à un résultat de code créatif.
    Et cela, rédigé sous la forme d'un petit article partagé sur le forum de G'MIC. Cette série d'articles est nommée « G'MIC Adventures ». Je l'avais évoquée dans notre dernière dépêche. Deux nouveaux épisodes de cette série sont parus depuis :

    • Apprentissage d'un perceptron multi-couches pour la reproduction d'une image couleur (G'MIC Adventure #5) :

    Dans ce cinquième épisode, on cherche à entrainer un réseau de neurones simple (un perceptron multi-couches) capable d'apprendre une fonction image entière (x,y)\to(R,G,B), c'est-à-dire un réseau capable de prédire une couleur (R,G,B) correcte à partir d'un vecteur de coordonnées (x,y) donné en entrée. Il est particulièrement intéressant de visualiser l'image couleur que le réseau est capable de reproduire à chaque itération de son apprentissage (figure ci-dessous), et ce, jusqu'à convergence.

    MLP (animation) Fig. 5.2.1. Reconstruction itérative d'une image couleur obtenue par l'apprentissage d'un perceptron multi-couches.

    Dans ce sixième épisode, on s'intéresse à l'implémentation en G'MIC de l'équation d'ondes et ses possibilités pour appliquer des effets de déformations amusants sur des images, comme l'illustre la figure suivante qui correspond au résultat obtenu à la toute fin de l'article.

    Wave equation (animation) Fig. 5.2.2. Application d'une équation d'ondes anisotrope pour la déformation d'une image le long de ses contours.

    Les exemples présentés dans cette section montrent que G'MIC a du potentiel pour le code créatif, notamment pour l'expérimentation rapide de codes d'effets graphiques. Le fait qu'il soit utilisable en ligne de commande (via la commande gmic) en fait un allié précieux pour générer des animations ou pour modifier des lots d'images de manière automatisée.

    6. Autres nouvelles liées au projet

    Pour finir cette longue dépêche, voici en vrac quelques autres nouvelles notables liées au projet :

    • Diffusion de G'MIC : Avec le temps, la diffusion de G'MIC s'accélère et son installation se simplifie. Notons tout d'abord que G'MIC-Qt a été parmi les premiers greffons disponibles lors de la sortie de la version majeure 3.2 de GIMP. L'installation de ce greffon est maintenant aussi largement simplifiée pour les utilisateurs de macOS, grâce au travail remarquable des empaqueteurs de MacPorts, qui en proposent une version toujours très à jour.

    Nous avons également appris que G'MIC suscite l'intérêt des projets suivants :

    1. Le projet G'MIC-GEGL a pour objectif d'exposer les différents filtres du greffon G'MIC-Qt directement sous forme de nœuds GEGL, qui est la bibliothèque de traitement utilisée en interne dans GIMP. Cela voudrait dire que les effets de G'MIC-Qt pourraient à terme être utilisés dans des calques d'effets non-destructifs de GIMP.
    2. Le projet PhotoFlare est un nouvel éditeur d'images numériques multi-plateformes, et son développeur a annoncé y avoir intégré le greffon G'MIC-Qt afin de profiter de ses centaines de filtres proposés.
    3. Le projet gmic-affinity se propose de développer un greffon en Rust pour Affinity Photo, pour exposer le greffon G'MIC-Qt aux utilisateurs. Ce dernier est normalement déjà fonctionnel pour ce logiciel, via l'API 8bf (comme le montre cette vidéo), mais malheureusement pas encore pour les utilisateurs de macOS.
    4. Enfin, notons l'arrivée de G'MIC-Qt sur le Snap Store, proposant ainsi une façon alternative d'installer notre greffon pour GIMP.
    • Exposé : Début mai 2026, j'ai eu l'occasion de faire un bref passage au laboratoire LRDE de l'EPITA, sympathiquement invité par Marc Espie (enseignant et l'un des développeurs du projet OpenBSD), où j'ai donné une présentation intitulée « 25 ans de développement libre pour le traitement des images numériques ». Une vidéo de cette présentation a été captée et mise sur YouTube.

    7. Conclusion

    Cette version 4.0 marque un jalon important pour G'MIC : dix-huit ans après la première ligne de code, le projet a montré qu'un logiciel open-source né au sein d'un laboratoire de recherche public, et aux ressources modestes, peut s'installer durablement dans le paysage du graphisme numérique libre, et continuer à innover grâce à son écosystème ouvert et extensible.

    Cette dépêche a cherché a montrer la maturité et la polyvalence de G'MIC. C'est un cadriciel multi-usages dont les interfaces variées peuvent toucher des publics différents, de l'artiste numérique au bidouilleur de la ligne de commande, en passant par le chercheur en traitement d'images, à partir du moment où une image numérique entre en jeu !

    C'est aussi l'occasion de rappeler que rien de tout cela n'aurait été possible sans l'écosystème bienveillant qui gravite autour du projet. Nous tenons à remercier chaleureusement nos partenaires académiques (le CNRS, l'ENSICAEN, l'Université de Caen, la direction du GREYC), ainsi que l'ensemble de la communauté (testeurs, empaqueteurs, vidéastes et utilisateurs du quotidien). Votre soutien est très apprécié.

    Les idées fourmillent, l'envie de triturer des pixels est toujours aussi présente, et on espère donc pouvoir continuer à développer et valoriser ce cadriciel libre comme il se doit dans le futur.

    Y aura-t-il une nouvelle dépêche l'année prochaine ? L'avenir nous le dira !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌