Participons au financement d’une fonctionnalité de GIMP !

Jehan est un contributeur actif de l’excellent logiciel libre d’édition et de retouche d’image GIMP. Il se propose ici de développer la fonctionnalité « peinture en miroir » et s’en explique (fort bien) ci-dessous.

Il ne demande pas la lune mais quelques deux mille euros. Parce qu’il a besoin de temps et que le temps c’est souvent de l’argent.

Non, logiciel libre ne veut pas dire gratuit, et comme le rappelle François Elie, le logiciel libre est gratuit une fois fois qu’il a été payé (en temps et/ou en argent). L’avantage ici c’est qu’on le paye une seule fois et qu’il s’en va direct dans le pot commun.

L’occasion également de mettre en avant le projet (français) Open Funding, nouvelle et prometteuse plateforme de financement participatif du logiciel libre.

Proposition de Financement Participatif de Peinture Symétrique dans GIMP

Jehan – 16 septembre 2013

URL d’origine du document

Salut à tous,

comme vous vous en souvenez peut-être, je suis un des développeurs de GIMP. Je propose ce jour de co-financer une fonctionnalité qui m’intéresse, et qui intéresse apparemment d’autres personnes, d’après ce que j’ai pu voir : la peinture en miroir (ou plus largement « symétrique »).

Introduction

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 intégré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 donnerai des nouvelles de l’avancée sur la page de nouvelles du Studio Girin, c’est à dire ce même site web.

À Mon Propos

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 arrière, 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 ayez besoin de plus d’encouragement ! ;)

Vous n’avez pas encore cliqué sur le lien ?

Co-financez la Peinture en Symétrie dans GIMP !