De même que nous y étions l’an dernier, nous serons à nouveau présent au Libre Graphics Meeting, édition 2014. Cette année, cela se déroulera à Leipzig, en Allemagne, du 2 au 5 avril, et notre présence est sponsorisé par GIMP à nouveau.
GIMP est un sponsor majeur de l’évènement, mais pour qu’il continue d’exister, vous êtes aussi nécessaire. Je conseille à quiconque en mesure d’aider de participer au crowdfunding. On peut voir cela ainsi: si vous utilisez un Logiciel Libre pour du graphisme, que ce soit blender, FontForge, GIMP, Inkscape, Krita, LibreOffice, MyPaint, Scribus… ou n’importe quel autre avec un composant graphique, et si vous avez un peu de sou en poche, alors aider le Libre Graphics Meeting vous aide en retour. Cette réunion permet aux contributors de tous ces extraordinaires Logiciels Libres de discuter le futur du graphisme et du Logiciel Libre, de se coordonner, et de créer de l’extraordinaire.
Aussi si vous êtes dans le coin, n’hésitez pas à venir. L’entrée est libre d’accès et cette année encore, le programme est carrêment alléchant.
À bientôt à Leipzig!
Un demi hors-sujet ce jour. “Demi” car je ne vais pas parler d’une production de Studio Girin, mais d’un précédent projet de Aryeom Han, que vous connaissez pour être notre Directrice Artistique. “Grandma Ocean” fut son projet final à Sangmyung University, en collaboration avec Kang Hui-jin.
“Grandma Ocean” est un documentaire animé de 5 minutes racontant l’histoire d’une Haenyo. Les Haenyo sont des plongeuses-pêcheuses de l’île de Jeju, au sud de la Corée du Sud. Ces femmes sont une part très importante de l’histoire et de la culture de Jeju, et de la Corée.
Ce film court a déjà été présenté dans pas mal de festival. Il le sera encore lors du Festival du Film Coréen à Paris, entre le 29 octobre et le 5 novembre 2013. Malheureusement Aryeom ne sera pas présente, car actuellement en Nouvelle Zélande.
Donc si vous êtes à Paris la semaine prochaine, et en particulier le samedi 2 novembre, n’hésitez pas à prendre des billets pour aller voir cette courte animation dans la section “Shortcuts #2”. Puis venez nous dire ce que vous en avez pensé dans les commentaires.
Le développement proprement dit n’a pas encore débuté. Mais le design et l’implémentation ont été discutés à foison avec de nombreuses personnes, de l’équipe de GIMP et d’ailleurs. Voilà où on en est.
“Multi-Pinceau” ou filtre non destructif?
Sur IRC, nous avons discuté si utiliser l’opération mirroir GEGL était la bonne implémentation. C’est une implémentation intéressante, et probablement plus simple. Mais je pense qu’il s’agit d’une méthode de travail différente de ma fonctionnalité. Cela sera possible quand nous achèverons notre port GEGL, qui sera suivi par l’implémentation du concept de calques d’effet (un sujet qui m’intéresse aussi fortement et sur lequel j’aimerais travailler si ce financement réussit). Mais il s’agit d’un workflow où on souhaite une symétrie parfaite tout le temps, puisque qu’on ne peut désactiver le miroir temporairement (ou plutôt: on peut, mais on perd l’effet du miroir). Donc pour ajouter des imperfections asymétriques, il faudrait soit les peindre sur un cautre calque (ce qui pourrait être considéré gênant et assez moche par beaucoup de peintres), soit appliquer l’effet, ce qui en revient au même, mais casse l’élan créateur. C’est pourquoi je préfère continuer avec un design destructeur et simple, fait pour des peintres.
En outre cela est mieux pour mon design générique (voir ci-dessous). Néanmoins cela n’est pas encore écrit, et je réfléchis toujours à utiliser des filtres GEGL si possible, tout en gardant un workflow simple et rapide.
Dans un future proche, les utilisateurs devraient cependant avoir les deux options. Et c’est une bonne chose d’avoir le choix!
Design Générique: tiling, “multi-pinceau”, etc.
Plusieurs personnes m’ont parlé de “tiling”. J’ai aussi entendu parler de la fonctionnalité de multi-pinceau de Krita, de mandalas, etc. ce qui est simplement une évolution du concept.
Un mathématicien m’a même demandé s’il serait possible de faire des transformations plus avancées: hyperboliques, homographiques, et autres noms barbariques. Eh bien cela m’a fait réfléchir.
Je voulais faire générique depuis le début de toutes façons. Mais c’est très instructif de lire toutes les idées folles des utilisateurs, des idées auxquels on ne pense pas tout d’abord en développant un outil. C’est ainsi que j’ai donc décidé d’aller encore plus générique que prévu si je suis financé. Je veux proposer une excellente généricité, au minimum dans l’interface des plugins. Ainsi la pointe de l’iceberg, dans l’UI, sera probablement juste la symétrie. Mais les utilisateurs devraient être capable de facilement écrire des transformations, et de se les échanger en tant que plugins. De cette façons, on devrait avoir du tiling, du “multi-pinceaux” ou n’importe quelle transformation mathématique. Je ne suis pas encore certain si cela sera facile à implémenter pour moi, mais je ferai de mon mieux.
Utilisabilité et Design d’Interface Utilisateur
Je suis de plus en plus intéressé par l’idée de lier les transformations à l’image plutôt que d’en faire des options d’outil, comme dans la démo. Une option d’outil est une idée simple et efficace, mais je la pense limitée en terme de fonctionnalités.
L’un des premiers problèmes que je perçois est que dès que vous fermez GIMP, vous perdez vos axes de miroir. Ce n’est pas un problèmes pour des miroirs horizontaux/verticaux à la médiane de votre canvas, ou pour des dessins “one-shot” en speed-painting. Mais quid des longs projets avec des miroirs à des coordonnées et angles précis?
Et que se passe-t-il si on veut plus de 2 miroirs à la fois? Vous voudrez gérer vos transformations, voire les nommer, en utiliser une sur un layer, une autre sur un autre, etc. On pourrait ainsi imaginer un dock pour les transformations, similaire à ce qu’on a pour les calques.
Voici un design qu’on m’a montré pour une évolution des guides. Ce serait différent pour les transformations, mais cela donne une idée:
Et puisqu’on part dans la généricité, vous pourrez aussi gérer vos transformations persos (tiling, etc.) dans ce dock.
Bien sûr, je souhaite que l’on puisse toujours créer, bouger, faire une rotation et détruire les transformations rapidement pour les utilisations courtes, sans jamais ouvrir le dock. Je pense qu’on doit pouvoir permettre les deux cas d’utilisation.
Enfin il y a des rumeurs dernièrement, comme quoi notre guru d’UI serait bientôt de retour. Si cela s’avère, le design de la fonctionnalité devrait en profiter.
Financement
Le financement a démarré sur les chapeaux de roue, avec environ 20% dès le premier jour. Mais maintenant, 3 semaines plus tard, on n’en est qu’à 52% du montant requis.
D’un certain côté, je suis un peu déçu. Certaines personnes nous demandent sans arrêt de faire des financements en nous assurant que GIMP pourrait récupérer des millions de dollar. Mais voilà, je demande juste 2000 EUR et j’ai du mal à les avoir. Bien sûr, rien n’est joué. Encore environ 10 jours dans mon planning, donc y a un peu d’espoir! 🙂
D’un autre côté, je m’en veux un peu parce que je suis nul en marketing. J’ai bien essayé la première semaine, en suivant et répondant un peu partout, mais ce fut éreintant, au point que je me sois mis à tout faire, sauf promouvoir mon projet par la suite. Mais bon plusieurs personnes m’ont demandé un compte rendu intermédiaire. Donc voilà!
Intéressé(e) par la fonctionnalité? Vous pouvez encore financer le projet si vous le souhaitez! 🙂
Sur la liste de diffusion de GIMP et ailleurs, j’ai vu plusieurs personnes demandant du financement collaboratif pour améliorer GIMP. J’ai donc décidé d’appliquer l’idée et de tester la viabilité du financement collaboratif pour améliorer du Logiciel Libre.
Notez que je suis un développeur avec un bon passif et partie de l’équipe principale du programme. Cela signifie qu’en cas de financement, j’implémenterai la fonctionnalité complète et m’arrangerai pour qu’elle soit integrée dans le logiciel final. Ce ne sera donc pas un énième fork qui disparaîtra dans quelques années, mais une fonctionnalité faite pour durer.
La Fonctionnalité
Proposition
Implémentation d’un fonctionnalité de peinture en symétrie/miroir instantanée dans GIMP.
Description
GIMP est l’un des principaux outil de traitement d’image multi-usage et multi-platerforme (Windows, OSX, Linux, BSD…). Pour la peinture en particulier, certaines fonctionnalités manquent. L’une d’elle est de pouvoir dessiner en symétrie instantanée.
À l’heure actuelle, les seule possibilités sont soit de dessiner des formes très simples, soit d’utiliser des filtres ou plug-in après coup, soit de dupliquer puis retourner les calques. Toutes sont de loin moins pratiques que de pouvoir dessiner et voir son dessin apparaître en miroir en temps réel.
Usage
J’ai rencontré au moins un artiste qui utilisait un mode de miroir vertical dans un autre programme pour rapidement conceptualiser des personnages, lors des premières étapes du design de personnages, période pendant laquelle le temps vaut plus que l’art. Je peux aussi aisément imaginer que cela simplifiera la création de designs symétriques complexes (logo, etc.).
Et probablement de nombreux autres usages. Par exemple, jetez un œil au dessin original dans la vidéo ci-dessous. La dessinatrice, Aryeom Han, a testé ma première (instable et encore loin de la perfection) implémentation pour dessiner la réflexion d’un lac, ensuite redimensionnée, puis ajout de gradient et utilisation du nouvel outil warp pour donner un effet liquide.
Implémentation
Idée 1
Ma dernière implémentation de test implémentait la symétrie comme une option d’outil de peinture. Néanmoins je prévois de tester d’autres implémentations en même temps. Par exemple lier les axes de symétrie à l’image pourrait être une implémentation plus appropriée pour un travail de longue durée. Le design final n’est pas encore fixe.
Idée 2
Il doit y avoir des raccourcis pour rapidement activer/désactiver les symétries.
Idée 3
L’idée de base est d’avoir au moins 3 modes de symétries (horizontale, verticale, centrale) à utiliser ensemble ou séparément. Évidemment en allant plus loin, on devrait pouvoir faire faire des rotations sur les axes pour avoir une rotation d’angle arbitraire. Je n’implémenterai peut-être pas cette option avancée (à moins que le financement ait un succès phénoménal), mais si possible j’essaierai de rendre le système suffisamment générique pour être plus tard étendu et permettre la rotation des axes dans le futur.
Idée 4
Les axes/centres de symétrie doivent pouvoir être rendus visibles ou invisibles.
Idée 5
Les axes/centres de symétrie doivent pouvoir être déplaçables sur le canvas par simple drag’n drop, de manière similaires aux guides.
J’ai une implémentation en cours, comme vu dans la vidéo et les photos d’écran. Mais le gros du travail pour rendre la fonctionnalité solide n’a pas encore débuté.
Ce à quoi s’attendre
J’écouterai les commentaires.
Le design peut évoluer pendant le développement. Je ne peux promettre exactement la forme finale car cela nécessite aussi discussion et approbation de mes pairs de l’équipe de GIMP. Je ne suis pas seul à décider.
Puisqu’il s’agit d’une toute nouvelle fonctionnalité, elle sortira avec GIMP 2.10 (pas de date de sortie encore), voire même plus tard si ce projet ne peut être financé correctement, ou toute autre raison hors de mon contrôle. Néanmoins dès que les patchs seront prêts, quiconque pourra compiler le projet lui-même à partir de la branche de développement. Notez aussi que si certains attendent vraiment cette fonctionnalité impatiemment et si j’ai obtenu un financement exceptionnel, j’essaierai de proposer des binaires à télécharger.
En fonction du succès du financement, s’il dépasse mes espérances, j’implémenterai éventuellement des options plus avancées de la fonctionnalité (comme le fait de pouvoir faire une rotation des axes de symétrie, etc.).
Je suis un développeur de GIMP, indépendant, et travaillant dernièrement beaucoup avec une dessinatrice. J’ai participé aux deux dernières versions de correction de bug de GIMP (2.8.4 et 2.8.6) et suis une part active de la prochaine sortie majeure (2.10). Vous pouvez avoir une idée de mon activité dans le logiciel Libre sur Ohloh et sur le suivi de ticket de GNOME.
Liste non-exhaustive de fonctionnalités et corrections déjà intégrées dans GIMP:
support du XDG dans GIMP (fichiers de configurations dans $XDG_CONFIG_HOME) sur Linux;
configuration dans le “Roaming Application Data folder” (répertoire utilisateur) sur Windows;
support du standard de gestion des miniatures (Freedesktop’s Thumbnail Management Standard);
plusieurs améliorations de l’interface et corrections de bugs;
plusieurs corrections de crashs sévères (en particulier le crash quand vous déconnectiez votre tablette graphique! À partir de GTK+ 2.24.19, vous n’aurez plus à vous en soucier!);
amélioration de la liste de langages pour localisation (les noms de langages sont self-traduits);
déja plusieurs améliorations du plugin “Animation Playback” (scroll, zoom, refresh, sélection de la disposition des frames, pas en arriere, raccourcis…);
encore plus de travail-en-cours sur le plugin “Animation Playback” (dont je suis maintenant mainteneur) afin d’en faire un outil indispensable aux animateurs 2D;
etc.
Je contribue aussi sur d’autres projets divers comme vous pouvez le voir sur la page Ohloh (pas tout n’y est listé, en particulier pour les projets qui utilisent encore CVS ou svn, qui perdent donc la paternité des patchs. Par exemple blender, etc.).
Et Après?
Si j’obtiens un financement, je proposerai d’autres fonctionnalités, pour GIMP principalement, mais probablement aussi pour d’autres logiciels que j’utilise. Je travaille actuellement en indépendant, et avoir la communauté des Logiciels Libres et OpenSource comme boss serait un job idéal. J’adorerais travail pour vivre sur des Logiciels Libres et faire du monde un endroit bien à vivre. Pas vous?
Donc même s’il ne s’agit pas forcément de votre fonctionnalité préférée, je dirais que vous pouvez tout de même y gagner en finançant, si cela me fait continuer à travailler sur des fonctionnalités avancées de GIMP, peut-être même à temps-plein dans le futur, qui sait? Bien sûr, je prévois de continuer à améliorer GIMP même sans financement, mais il y a des limites à ce qu’il est possible de faire quand on a besoin de vivre par ailleurs.
Une liste possible, non-exhaustive encore, de fonctionnalités qui m’intéressent, et que je pourrais éventuellement proposer dans de futurs projets de financement collaboratifs, est par exemple: faire du plug-in “animation-playback” un outil indispensable pour les créateurs d’animation, les macros, unlimited-sized layers, les images extérieures “liées” comme calques (proche du concept de Smart Object, mais encore plus proche des objets liés de Bender, ce qui est à mon avis bien plus puissant), édition non-destructive, sélection de plusieurs calques pour des modifications de masse, améliorations des options d’export (par exemple redimensionner à l’export sans toucher l’original), et bien plus.
Notez aussi que si cela fonctionne, ce serait aussi un bon précédent pour d’autres développeurs qui pourraient aussi penser à travailler ainsi et améliorer GIMP (et d’autres logiciels Libres et OpenSource). Je pense que c’est gagnant-gagnant! 😀
Pour conclure, sachez que je ne travaille pas seulement sur GIMP, mais aussi avec GIMP, ou en particulier avec la dessinatrice talentueuse qui a dessiné le “lapin près d’un lac” dans la vidéo, et nous prévoyons de produire des BDs et des animations, le tout avec des Logiciels Libres et sous des licenses d’Art Libre (comme CC by-sa). Donc en me finançant, vous financez aussi l’Art Libre. Juste au cas où vous ayiez besoin de plus d’encouragement! 😉