Rien à voirTechnologieThe WebUn dessin par jour

InkEdit, un petit monstre logiciel graphique de dédicaces, by Philippe Majerus

InkEdit est un logiciel actuellement en betatest dont la fonction peut se résumer à : vous ouvrez InkEdit, vous ouvrez une page web et vous dessinez sous les yeux des gens connectés à la page, vous sauvegardez votre dessin, vous le téléchargez dans une page web, et les gens peuvent d’un clic vous voir redessiner le dessin en direct, à la vitesse à laquelle vous l’avez fait ou en replay accéléré, ils peuvent télécharger le dessin en format PNG ou autre, et ils peuvent même l’imprimer en haute qualité.

Oui, en gros, avec ça, je peux faire des dédicaces à distance. En fait, c’est même déjà fait. Et si je vous en parle, ce n’est pas parce que Philippe Majerus est un ami (et il en est un !), mais parce que je suis la testeuse et la conseillère artistique pour l’élaboration de ce petit monstre !

Et ce qui partait un peu comme un gadget marrant est devenu au fil des mois un outil performant et efficace, et qui est en passe de vraiment parvenir à avoir des tonnes d’outils, idées, et options pour animer les pages web d’un artiste, sans se prendre la tête avec des logiciels tiers et des bricolages. La technologie est très simple, elle se base sur la capture d’encre numérique, c’est à dire qu’elle reconnait la pression d’un stylet sur une tablette graphique, et la traduit en traits vectoriels dont les données sont couleur, épaisseur, temps mis pour faire le trait, etc etc etc… et cela finit en un petit fichier qui ne pèse que quelques Ko, qui une fois sur une page web donne ceci :

http://www.psychee.majerus.net/ShowDrawing.aspx?drawing=jawaad4.isf

page-in2

Et voici ce que cela donne si vous téléchargez :

Drawing(2)

Je sais pas vous, mais moi, je trouve cela formidable. Les fichiers téléchargeables pèsent entre 50 et 200 Ko de ce que nous avons testés, y compris des essais en couleurs. C’est un peu plus dur en couleurs, mais rien d’impossible, et je sais d’avance que des gens vont me tuer à faire des merveilles avec et ce n’est encore que la version beta !

Et voici donc, tel que je pouvais vous le présenter. Si vous voulez voir un peu ce que cela donne, il y a une page avec tous les essais que nous avons conservés et qui reste ouverte et disponible pour tout le monde : http://www.psychee.majerus.net/

A l’heure actuelle, le projet avance, le but est bien sûr de fournir ce logiciel et ce service aux artistes qui seront emballés par le projet. Pour les détails, il vaut mieux me contacter directement par email, je ferai suivre à Philippe.

Et comme je lui ai demandé avec beaucoup d’insistance, Philippe Majerus a accepté de m’écrire un article sur son travail, documenté et détaillé que j’ai le plaisir de vous présenter :

L’histoire de Majerus.net Web Ink et de l’application InkEdit

Historique

Je programme depuis la fin des années 80. Au départ sur Commode 64/128 et ensuite sur PC MS-DOS et Windows.

J’ai toujours eu un intérêt pour les nouvelles technologies. J’ai plongé dans le web dès le milieu des années 90, avec le scripting côté client en Dynamic HTML et ActiveX, et, dès 1996, côté serveur avec les Active Server Pages (ASP Classic). Je suis ensuite passé aux technologies mobiles et embarquées, et suis retourné à la programmation native, mais cette fois sur Pocket PC / Windows CE dès le début des années 2000.

J’étais déjà très spécialisé dans les versions de Windows pour appareils mobiles lorsque, fin 2002, Microsoft lança, avec quelques fabricants d’ordinateurs portables, Windows XP Tablet PC Edition. Cette version de Windows NT, développée spécialement pour les ordinateurs au format tablette avec stylet, apportait plusieurs nouveautés pour l’informatique mobile et le début des interfaces naturelles…

Ayant été chargé de préparer et présenter les premiers séminaires pour développeurs Tablet PC pour Microsoft EMEA, j’eus la chance de pouvoir prendre le temps d’apprendre à fond les possibilités de cette nouvelle plateforme.
Les écrans tactiles n’étaient pas encore aussi confortables que ceux d’aujourd’hui (résistifs et non capacitifs), et les Tablet PCs ciblaient avant tout le marché des professionnels mobiles, pas seulement à l’extérieur, mais aussi dans les bureaux – les « corridor warriors », qui passent une bonne partie de leurs journées en réunion, ou les médecins en hôpital qui passent d’une chambre à une autre.
La majeure partie des améliorations étaient tournées sur la prise de notes et le remplissage de formulaires, à l’époque encore exclusivement fait sur papier. Les Tablet PCs proposaient la première interface naturelle avant l’heure : écrire au stylo sur un écran. La plus importante des nouveautés de cette version était à mon sens la standardisation d’un format d’encre numérique.

Digital Ink

Windows XP Tablet PC Edition n’était pas le premier système informatique à supporter l’écriture manuscrite, Windows for Pen Computing 1.0 apportait déjà les bases de l’écriture manuscrite et reconnaissance d’écriture pour Windows 3.1 dès 1992, et Windows for Pen Computing 2.0, pour Windows 95.

La nouveauté de cette 3ème génération était qu’au lieu de capturer les mouvements du stylet pour en faire une image, et ensuite utiliser cette image pour systématiquement convertir l’écriture manuscrite en texte dactylographié, cette version redonnait à l’écriture manuscrite ses lettres de noblesse. Tout comme les formats ASCII et Unicode permirent au texte dactylographié d’être standardisé et transportable d’une application à l’autre et d’un système informatique à l’autre, le nouveau format d’encre numérique permit au texte manuscrit d’être standardisé.
Capturée et conservée sous forme d’historique des déplacements du stylo, l’encre peut ensuite être convertie de manière bien plus fiable si l’objectif final est du texte dactylographié, mais ce format permet surtout d’afficher et de traiter l’encre telle quelle dans toutes les applications voulant supporter le format manuscrit.

Enfin la capture d’encre numérique n’était plus une simple étape vers le texte dactylographié pour compenser l’absence d’un clavier, ou produire une image, mais pouvait être une finalité en soi. Une application de bloc-notes pouvait fonctionner comme un vrai bloc-notes, conservant des notes prises à la main, des croquis, etc… tout en permettant de rechercher dans ses notes, de copier/coller des phrases d’une application à une autre, et de les partager par le réseau informatique.

Les premiers appareils des fabricants partenaires utilisaient tous des capteurs Wacom pour le stylo. Les Tablet PCs avec technologie Wacom Penabled furent en quelque sorte les ancêtres des Cintiq Companion – des tablettes pures ou des portables convertibles avec une tablette graphique haut de gamme intégrée dans l’écran. Cela n’est bien évidemment pas passé inaperçu auprès des amis graphistes et artistes, et tous se sont essayés à dessiner sur les modèles que j’avais pour tester le kit de développement.

Convaincu que l’avenir de l’ordinateur personnel était une machine hybride polyvalente, utilisable au clavier et à la souris, au stylo comme les Tablet PCs, et plus tard en tactile comme les Pocket PCs, mes ordinateurs portables à partir de cette année ont toujours été des Tablet PC convertibles, et l’idée de traiter l’écriture manuscrite en tant que telle est devenue une considération pour tout logiciel.

Courant 2005, j’avais déjà essayé de pousser le support de l’encre numérique sur le Web en ajoutant le support pour des billets manuscrits dans mon blog personnel. Le code côté serveur était capable de traiter le format d’encre numérique, tel que changer la couleur de mots suite à une recherche de l’utilisateur, et afficher le texte dans la page Web en VML ou en GIF selon le navigateur. Malheureusement les composants système Tablet PC n’étaient pas prévus pour fonctionner dans le contexte d’un serveur Web, et si le concept était réussi et même fonctionnel, les problèmes de gestion de ressources sur le serveur rendaient son utilisation pratiquement impossible.

Web Ink

En discutant avec Axelle Bouet sur les possibilités des technologies de communications unifiées (téléphonie, visioconférences, présentation et partage d’applications) pour son activité, nous avons évoqué la possibilité de faire des sessions de dédicace en direct.
Les technologies WebRTC qui rendront possible de véritables sessions de collaboration en ligne sans plug-in étant encore peu disponibles, cela a relancé l’idée de supporter l’encre numérique sur le Web, cette fois pour présenter des dessins en « replay ».

J’ai décidé de faire un petit test pour voir si cela était possible proprement avec les technologies actuelles, et ai donc reprogrammé d’une part un petit logiciel pour enregistrer l’encre, et d’autre part le support de l’encre numérique côté serveur Web. Cette fois le format vectoriel propriétaire de Internet Explorer de l’époque a laissé place au SVG, et je n’ai pas utilisé les composants Tablet PC qui provoquaient des problèmes lorsqu’ils étaient utilisés dans une application Web.

J’ai donc programmé un contrôle ASP.net, InkPresenter, capable d’afficher l’encre dans une page HTML. Une application Web est alors capable de contrôler tous les aspects de l’encre numérique dans son format standardisé par le Tablet PC, et de générer le code HTML+SVG pour l’afficher dans une page Web.

Pouvoir afficher de l’encre en vectoriel est un bon début, encore faut-il avoir de l’encre à afficher. Or tous les programmes de dessins classiques capturent les mouvements du stylo pour en faire soit des images bitmaps, soit des vecteurs. Il nous fallait capturer un dessin en encre numérique et il n’y avait pas d’outil disponible pour cela.

La petite application de capture d’encre appelée InkPad nous avait permis de valider l’ensemble du système – de la capture de l’encre avec rendu en temps réel pour dessiner confortablement, jusqu’à son affichage sur un site Web.

L’ensemble fonctionnait plutôt bien, et le fait de conserver le dessin en format encre numérique jusque sur le serveur Web nous permit déjà de l’afficher en vectoriel et de le transformer en PNG pour permettre le téléchargement des dessins par les visiteurs.

Le format d’encre numérique conservant non pas le rendu visuel, mais les informations de mouvement du stylo, l’ajout d’animation pour montrer l’évolution du dessin fut comparativement triviale. En plus de générer les éléments SVG représentants les tracés, il a suffi de contrôler leur affichage dans le navigateur via Javascript et CSS avec des animations basées sur l’ordre et la vitesse des tracés.

Ce qui se voulait être juste un test de faisabilité d’affichage d’encre numérique sur le web avec les technologies modernes était finalement devenu un système complet d’affichage et de « replay ».

Les contrôles InkPresenter et AnimatedInkPresenter pour ASP.net nous apportent donc la possibilité d’intégrer des dessins en encre numérique et des animations de leur élaboration directement sur des pages web.

InkPad était en fait plus limité dans les outils de dessin qu’il proposait que ce que InkPresenter et AnimatedInkPresenter supportaient… Il nous fallait à présent un outil de dessin un peu plus élaboré.

InkEdit

InkPad nous avait permis de tester la collecte de tracés depuis une tablette Wacom, mais sans aucun contrôle sur l’épaisseur des traits, leurs couleurs, la gestion de la pression du stylo, etc…

Il me fallait un logiciel pour qu’Axelle puisse dessiner sur une tablette graphique et conserver le dessin dans son format d’encre numérique.

InkEdit débuta donc comme remplacement de InkPad pour le dessin, l’objectif était de faire une petite application très simple à utiliser, à l’interface proche de celle de Windows Paint pour pouvoir être immédiatement utilisable par tous, et n’exposant que les propriétés de l’encre supportées par tous les logiciels compatibles avec l’écriture manuscrite, tels que Microsoft OneNote et Word.

InkEdit se base entièrement sur le format de l’encre, il est capable d’ouvrir et d’enregistrer des fichiers .isf (Ink Serialized Format) qui n’est autre que le format de persistance portable de l’encre numérique.

Il supporte également le copier/coller et le glisser/déplacer avec les autres programmes compatibles avec l’écriture manuscrite.

Côté outils, la version actuelle propose simplement de sélectionner parmi les 3 outils de base – gomme, stylo et surligneur (qui n’est pas très utile pour le dessin, mais a un statut particulier dans l’encre numérique) – et permet de modifier l’épaisseur du trait, sa sensibilité à la pression, sa couleur, et sa transparence.

Il est possible de faire un outil plus évolué pour le dessin en encre numérique, mais InkEdit nous permet déjà de compléter la chaîne. Les dessins sont élaborés et conservés en format encre numérique de la pointe du stylo sur la tablette jusque dans la page Web, et offrent déjà une expérience nouvelle pour les visiteurs du site.
Et cela ouvre déjà la porte à d’autres possibilités à expérimenter, telles que envoyer l’encre directement au fil de sa capture depuis InkEdit au serveur web et ensuite aux navigateurs pour afficher l’élaboration d’un dessin en direct… les prémices de Live Ink.