Vingt smileys en seulement quinze ans

Ca m’aura seulement demandé une quinzaine d’années, mais je commence enfin à pouvoir donner vie à des petits Mickeys dans Blender.

Ce qui me débloque enfin, c’est d’avoir surmonté deux obstacles: primo, réussir à faire bouffer à Blender des objets tout texturés (parce que je persiste à penser que son éditeur UV est une horreur); deuxio, avoir enfin compris comment paramétrer un rendu d’images avec un petit script Python.

Quinze ans à se prendre la tête avec l’immonde et imbitable interface de Blender… Est-ce que ça en valait vraiment la peine? Je n’en jurerais pas… mais enfin je commence enfin à m’amuser, et je ne l’ai pas volé.

De la scie sauteuse dans Blender

Je ne sais pas si vous êtes comme moi assez vieux pour qu’on vous ait offert ce genre de joujoux quand vous étiez petits:

Joujoux fabriqués à la scie sauteuse

Mais bon, moi, j’ai eu ce genre de jouets, et depuis que je suis tout petit l’une de mes ambitions est d’arriver un jour à les fabriquer moi-même. Drôle d’idée voire affligeante perversion témoignant d’un effarant manque de maturité… mais c’est comme ça, j’ai toujours eu envie de fabriquer mes propres joujoux. Eh bien, figurez-vous qu’à cinquante-neuf ans révolus et grâce à plein plein de logiciels libres (LibreCAD, Inkscape, Gimp, Krita, Blender et surtout Python)… eh bien j’y arrive enfin, et j’en suis si fiérot que je crois nécessaire de vous en faire profiter:

Bon, je ne suis pas sûr que vous allez comprendre grand-chose à la vidéo ci-dessus, mais c’est quand même censé être une vidéo explicative. 😀 Ayez la bonté de ne pas trop m’en vouloir si c’est un peu cryptique, car c’est lié à mon côté surdoué (qui ne se manifeste pas souvent, oh que non): parfois, quand je suis touché par ma muse informatique, je fais des trucs tellement compliqués que deux jours après les avoir abandonnés je n’ai plus la moindre idée de comment diable j’avais pu m’y prendre pour y arriver, et c’est quand même énervant. Alors, il faut absolument que je prenne des notes avant qu’il soit trop tard, et cette vidéo est une forme de prise de notes (les Post-it du troisième millénaire sont devenus un peu compliqués, c’est l’époque qui veut ça).

Tous vos sarcasmes sont bienvenus, ils glisseront sur moi comme l’eau sur la peau d’un canard, intimement convaincu que je suis que c’est seulement la jalousie qui vous fera parler: z’êtes même pas capables d’en faire autant, bande de blancs-becs.

Blender 2.8, triomphe et désastre

J’ai mis mon nez dans Blender 2.8, et on ne m’avait pas menti: par bien des côtés, c’est carrément un autre logiciel que Blender 2.79.

L’interface (qui, il faut bien l’admettre, a toujours été une abomination) a été revue sur quantité d’aspects, et généralement de façon pertinente: l’usine à gaz bordélique est devenue une usine à gaz bien rangée… mais ça ne change rien au fait que tout le savoir-faire que vous aviez pu développer pour vous orienter dans le bordel devient du jour au lendemain obsolète.

OK, c’est pour notre bien… mais il faut quand même être conscient que ça a une conséquence épouvantable: TOUS les tutoriels disponibles sur le web et YouTube deviennent aux trois quarts obsolètes eux aussi, et donc chaque fois que vous vous direz « oh, merde, je vais pas y passer six mois, en posant poliment ma question à Google je vais bien finir par savoir où est caché ce foutu réglage qu’il faut absolument que je modifie »… eh bien, faites comme à l’entrée de l’Enfer de Dante: abandonnez toute espérance: si, vous allez bel et bien devoir vous retaper au minimum minimorum des journées entières d’apprentissage, et pour certains réglages, ces journées entières seront des semaines entières, et pour certains autres ces semaines entières seront des mois entiers; au terme desquels, n’en doutez pas, Blender accouchera d’une version 2.9, ou 3.0… qui vous forcera une fois de plus à passer des journées, des semaines et des mois à retrouver vos repères.

En plus, il n’y a pas que l’interface qui a été revue: les moteurs de rendu aussi, et de fond en comble. Très bon côté des choses: les bugs d’affichage insupportables que j’avais dénoncés ici ont pour la plupart disparu. Très mauvais côté des choses: tous les réglages minutieux que vous aviez pu mettre au point jusqu’à la version 2.79… sont inadaptés à la version 2.8, et vous allez devoir retravailler TOUS vos éclairages. Oui, TOUS — sauf à continuer de travailler avec la version 2.79 jusqu’à ce qu’elle plante parce qu’elle ne sera plus maintenue; désastre sans doute lointain, mais inéluctable.

Les nouveaux moteurs de rendu sont beaucoup, beaucoup, beaucoup mieux que les précédents. Sur certaines vidéos de démonstration, c’est absolument bluffant. Mais il y a un mais… Des tas d’effets « moches mais lisibles » (en particulier sur les reflets et transparences) que vous aviez pu identifier par le passé… ont été remplacés par d’autres beaucoup moins moches mais 1) vous devrez vous retaper des tonnes de réglages; 2) ce sera beaucoup beaucoup plus beau, mais ça demandera peut-être, sur des scènes simples, des temps de réponse sensiblement moins enthousiasmants que par le passé. « Quand c’est mieux, ça coûte plus cher », disait ma grand-mère.

Et puis il y a des petites cochonneries inacceptables: les textures mises en place avec la version 2.79 ne sont plus en place avec la version 2.8, il faut les remettre (pourquoi? mystère); les scripts Python pouvaient être découpés en plusieurs modules, ils doivent désormais être d’un seul tenant; les convertisseurs X3D sont beaucoup moins élaborés qu’avant (ils paument les couleurs et les textures), et « c’est pas un bug, it’s a feature« : c’est complètement normal, ce n’était pas développé par l’équipe de Blender, c’était des contributions de bénévoles, donc à vous de leur demander de recommencer à bénévoler pour adapter à 2.8 le boulot qu’ils avaient fait pour les versions antérieures. J’ai tendance à trouver cette façon de faire un peu cavalière…

Le progrès consiste à remplacer ce qui ne marchait pas vraiment mal par ce qui ne marche pas vraiment bien… Et Blender progresse comme ça. On aime, on n’aime pas, mais faut faire avec — et dans x mois, quand vous devrez vous adapter à la version 2.9 ou à la 3.0, vous verrez que vous la regretterez, cette version 2.8 contre laquelle vous aviez pesté quand elle vous a forcé à abandonner la 2.79…

« If you can meet with Triumph and Disaster and treat those two impostors just the same », comme disait Kipling… alors vous aimerez Blender 2.8. Dans le cas contraire, je crois que les développeurs de Blender ne se donneront même pas la peine de vous sourire d’un air désolé. Blender, ça se mérite, voilà, et si t’es pas content, ça se mérite quand même.

Blender a un rendu nul, mais il dépote

Bon, qui aime bien châtie bien: j’ai déjà consacré assez d’énergie à dire du mal du moteur de rendu de Blender pour concéder qu’il a pour lui un argument massue: l’extrême brièveté de ses temps de réponse. Quand j’avais produit avec POV-Ray l’animation que vous pouvez voir ci-dessus, ça m’avait pris sept heures, avec dix fois moins de pixels, donc pour une qualité similaire à ce que vous voyez il m’aurait fallu environ 70 heures. Eh bien, maintenant que j’ai compris comment manipuler Python dans Blender, je lui ai fait refaire la même quantité d’images dans une meilleure définition. Les cadrages et la fréquence des images sont absolument inchangés: j’ai fait lire et convertir à Blender, grâce à un script Python, les très longues listes de paramétrages qui m’avaient servi pour l’animation POV-Ray, et que j’avais conservées. Soit dit en passant, la possibilité de faire tourner Python dans Blender, et surtout de faire varier sa configuration grâce à des fichiers de paramétrages calculés hors de son interface immondément pas pratique… ça change complètement la vie, et Blender passe immédiatement grâce à cela du statut d’épouvantable usine à gaz à celui de logiciel surpuissant et indispensable.

Bref. Ce nouveau calcul de l’animation m’a pris trois quarts d’heure, c’est-à-dire… environ 90 fois moins de temps que le travail équivalent avec POV-Ray. Honnêtement, même si Blender oblige à être beaucoup plus soigneux pour obtenir des images lisibles, je dois admettre que cela me fait pratiquement renvoyer POV-Ray aux oubliettes, au moins pour les calculs d’animation — POV-Ray reste intéressant pour le calcul d’images fixes très fouillées.

Par ailleurs, Blender permet aussi d’effectuer des prévisualisations de l’animation directement à la vitesse de diffusion du rendu final, et même si c’est avec un rendu très médiocre, c’est bien sûr une bénédiction quand on travaille au brouillon.

Cela dit, il est clair que Blender obtient ces temps de réponse enthousiasmants en rognant très considérablement sur la précision de ses calculs, et cela peut engendrer de vrais problèmes de lisibilité quand des surfaces superposées sont assez proches. Sur la vidéo que vous regardez, vous constaterez probablement des tas de petites saletés dans l’affichage du quadrillage, et notamment à ses intersections: en fait, quand plusieurs surfaces sont définies à peu près au même endroit (le quadrillage est très proche du sol, et là où les lignes se croisent, elles sont placées exactement au même niveau), alors Blender a tendance à penser qu’une surface projette des ombres sur l’autre, mais surtout, et c’est beaucoup plus grave, il lui arrive d’afficher l’ombre par-dessus la surface qui est censée lui donner naissance! Dans certains cas de figure, cela rend vraiment l’image immondément illisible, et cela force donc ou à renoncer à certains cadrages, ou à devoir considérablement retravailler les objets de la scène pour éliminer de telles superpositions.

Du Python dans Blender, c’est possible

Il y a des années que je cherchais un tutoriel intelligible sur l’usage de Python dans Blender pour l’automatisation du calcul d’une animation… mais je crains qu’il s’agisse de l’un de ces secrets qui ne peuvent être transmis que de bouche de druide à oreille de druide, car tout ce que j’ai trouvé à ce sujet m’a toujours paru complètement imbitable. Un petit camarade (dont voici le site) a fini par me fournir un fichier d’exemple et surtout m’expliquer comment on le faisait tourner, et bon, avec quelques années de Python et de Blender dans les pattes, il m’apparaît qu’en effet il n’est pas du tout impossible d’en tirer quelque chose, et la vidéo david-lynchesque qui chapeaute ce post en est une proof of concept.

Dès l’instant où j’ai le sentiment de dominer ce savoir ésotérique, je suis saisi de la noble aspiration altruiste de concocter le tutoriel simple sur la question que j’ai moi-même désespérément cherché pendant des années… mais vous savez quoi? Je crains fort que la raison pour laquelle ce tutoriel simple n’existe pas, c’est qu’en fait la chose… n’est pas simple.

Tout simplement… c’est pas simple. Du moins, ça n’est pas simple tant qu’on n’a pas encore compris, non pas seulement la chose en elle-même, mais des tonnes de savoirs indispensables en amont pour avoir ne serait-ce que l’espoir d’y arriver. C’est une des difficultés de l’informatique: si le seul moyen de comprendre un tutoriel, c’est de savoir déjà à peu près tout ce qu’il est censé vous expliquer… ben c’est raté, et tous les tutoriels que j’ai cherché à comprendre sur la question étaient ratés. Je crains fort que si j’en concocte un moi-même ça ne soit pas mieux.

Je vais quand même essayer de concocter quelque chose, mais Dieu seul sait combien de mois ça pourrait me prendre.

Ça sert à quoi, une moulinette?

Un collègue m’ayant récemment demandé de lui expliquer ce que j’appelle une moulinette informatique et d’en indiquer quelques exemples, ça m’a inspiré ce qui suit:

En deux mots

Idée fondamentale: vous avez des données informatiques sous une forme, vous voulez les présenter sous une tout autre forme. La moulinette qui va vous permettre de le faire est donc, par définition, la réponse à un besoin très précis que vous êtes seul à connaître et pouvoir expliquer… mais voici quelques exemples qui pourraient vous inspirer.

Bases de données

  • vous avez racheté une base de données de prospects et vous voulez l’intégrer dans votre propre base de données, mais les structures sont complètement différentes et en plus il faut repérer et éliminer les doublons;
  • vous avez besoin d’établir des statistiques pertinentes sur deux cents lignes perdues au milieu d’un inventaire exhaustif de quarante mille éléments (par exemple, toutes les factures concernant un certain produit, émises un samedi entre telle date et telle autre et dépassant un certain seuil, au milieu de la liste de toutes les factures de l’année écoulée);

Feuilles de calcul

  • vous retravaillez un beau tableau Excel avec les données des années 2015, 2016 et 2017 classées en ordre décroissant; vous voulez en virer les données de l’année 2015, garder celles de 2016 et 2017, et ajouter celles de 2018 — que vous avez sauvegardées dans une autre feuille Excel où elles sont classées cette fois en ordre alphabétique et où les calculs de pourcentage ont été effectués avec trois chiffres après la virgule alors que vous n’avez de place que pour un;
  • vous perdez un temps fou à retrouver le numéro de téléphone d’un client précis dans un énorme classeur Excel multi-feuilles contenant toutes les données concernant tous vos clients — une moulinette peut retrouver ce numéro de téléphone, préparer un SMS de relance personnalisée, et l’expédier directement via Internet sans que vous ayez même besoin d’empoigner votre téléphone;

Mise au propre de mauvais brouillons

  • vous devez faire la synthèse des réponses à des questionnaires comportant trente questions numérotées, recueillis dans toute la France par cinquante enquêteurs insuffisamment briefés et en outre peu consciencieux, et ayant chacun interviewé une trentaine de personnes; certains ont noté leurs résultats avec des chiffres, d’autres avec des séries d’étoiles (du genre ***), certains dans des fichiers Word, d’autres dans des fichiers Excel;
  • vous devez fusionner deux listes de produits, avec des prix hors taxes et toutes taxes, préparées par deux personnes différentes dans deux fichiers Excel n’ayant pas la même structure: le premier a mis la colonne hors taxe avant la colonne toutes taxes, le deuxième a bien évidemment fait le contraire; en plus, il y a des doublons: certaines données sont présentes dans les deux listes, d’autres non;

Edition, mise en page

  • vous voulez transformer une base de données austère (avec des caractères informatiques moches simplement rangés en lignes et en colonnes) en un catalogue imprimé avec du gras, de la couleur, des étoiles et des points de suite, et vous voulez y arriver sans y passer une demi-journée à préparer ça avec une souris sous InDesign;
  • vous avez une notice multilingue décrivant une suite de cinquante opérations en cinq langues: vous voudriez que chaque opération soit décrite à la file dans les cinq langues… ou le contraire: vous voulez faire cinq notices monolingues;
  • vous avez cinquante fichiers de texte comportant chacun un résumé dans l’en-tête, vous voulez publier une compilation de ces résumés;
  • ou le contraire: vous avez une compilation de résumés concernant cinquante textes, vous voulez ajouter chaque résumé en tête de chaque texte;
  • vous devez réaliser une compilation d’archives; les vieux textes (et surtout leurs caractères accentués) ont été stockés en ISO avec des ruptures de ligne tous les 65 caractères environ, des apostrophes droites, des guillemets droits et pas d’espaces insécables — tandis que les textes récents (et surtout leurs caractères accentués) ont été stockés en UTF-8, par paragraphes entiers mais avec des balises de cotation au milieu, ainsi que d’innombrables autorisations de coupure dont vous n’avez que faire sur le web, et d’autant moins que ça peut perturber les moteurs de recherche;
  • vous cherchez à récupérer dans une thèse de cinq cents pages toutes les notes de bas de page bavardes pour les placer en fin d’ouvrage dans une typographie nettement plus petite;
  • vous cherchez à transformer en histogramme réparti au bas de douze pages une chronologie de personnages illustres — disponible sous forme de longs inventaires rubriqués ne comportant que des noms et des dates, mais classés en cinq rubriques dont vous n’avez que faire mais qui entraîneront inévitablement la présence de doublons si vous opérez la compilation sans discernement;

Vidéo, animation 3D

  • vous voulez reprendre dans votre logiciel 3D propriétaire et coûteux une bibliothèque de maillages 3D enregistrés dans un format incompatible (par exemple, des fichiers libres de droits mais tous prévus pour le logiciel libre Blender, voire des navigateurs VRML totalement tombés en désuétude);
  • vous voulez intégrer dans Blender, en 3D et avec une épaisseur, plusieurs bibliothèques de pictogrammes disponibles tantôt en SVG, tantôt en PDF, et parfois même disponibles seulement en bitmap haute résolution;
  • vous avez filmé une vidéo au format 4/3 et à la cadence de 25 images/seconde, vous avez besoin de l’adapter pour l’intégrer dans un documentaire monté au format 16/9 à 30 images/seconde; en outre la bande sonore de la vidéo a été échantillonnée à 44100 Hz, alors que pour votre documentaire, 48000 Hz est désormais la référence;
  • vous travaillez sur une animation vidéo, vous devez transformer les quinze positions intermédiaires prédéteminées d’un objet en déplacement… en cinquante secondes d’animation — soit 50 secondes x 30 images/seconde = 1500 images à paramétrer, de façon à réaliser une transition bien lissée; et quand vous avez fini, vous vous rendez compte que ce serait encore beaucoup mieux en se limitant à 45 secondes;

Sites web dynamiques

  • vous devez périodiquement mettre à jour votre catalogue de cinq cents articles pourvus chacun d’un prix en euros, pas seulement sur le site principal en français, mais aussi sur la section de votre site destinée aux clients étrangers ne comprenant que les livres sterling ou les francs suisses, et avec en plus un ordre alphabétique correspondant aux traductions en langues étrangères de toute votre nomenclature… et vous ne voulez évidemment pas avoir à remettre en place à la main chacune des cinq cents vignettes représentant chaque produit;
  • vous devez reprendre tous les textes de l’édition papier d’un magazine, mais le balisage typographique destiné aux seuls yeux des lecteurs va devoir être adapté et transformé en balisage logique permettant aux moteurs de recherche de mieux indexer votre site;

Et cetera…

M. de Latude s’attaque à Android

Latude s'attaque à Android

Une grand-mère de ma connaissance (nous assistons aux mêmes cours d’espéranto) s’est fait offrir par un parent ou un ami une tablette Android (de marque Huawei ; ce n’est pas du haut de gamme, mais ça ne me fait pas non plus du tout l’effet d’être de la camelote). Je suppose que, comme les compétences informatiques de l’abuelita sont à peu près égales à zéro, elle a dû demander à quelqu’un (hélas, pas à moi) de la lui configurer – ce qui implique la création d’un compte Gmail muni d’un mot de passe, et accessoirement le verrouillage de la tablette elle-même par un autre mot de passe. Je soupçonne l’inconnu qui a mis la chose en place d’avoir omis de signaler à la grand-mère l’importance de ces paramètres, pour tout dire je soupçonne aussi la grand-mère d’avoir paumé le papelard où on les lui avait fait noter… Mais en tout état de cause, la tablette était bloquée par ses mots de passe (« To continue, sign in with a Google Account that was previously synced on this device ») et il fallait trouver un moyen de l’utiliser quand même.

Il n’y a pas si longtemps, on s’en serait sorti en effectuant ce qu’on appelle un « reset d’usine » (factory reset) : la configuration initiale de l’engin est sauvegardée quelque part dans sa mémoire de stockage interne (on ne peut pas dire « le disque dur », puisque c’est de la mémoire flash, mais c’est la même idée), en théorie il n’y a donc plus qu’à effacer tout le reste et on retrouve une machine dans l’état où elle était lors de sa sortie d’usine… donc sans mots de passe.

Enfin, c’est comme ça que ça devrait se passer dans un monde d’honnêtes gens… hélas, dans la vallée de larmes où nous habitons, les génies du marketing ont obtenu des techniciens qu’ils se débrouillent pour qu’une tablette ainsi réinitialisée reste protégée par le mot de passe du compte Gmail qu’on lui a associé – histoire d’embêter les vilains voleurs de tablette. C’est pour votre bien, braves gens : n’en doutez pas, les méchants qui vous volent votre tablette seront pris de remords et vous la restitueront en bon état dès l’instant où ils se rendront compte qu’ils ne peuvent rien en faire. Le sarcasme est facile, mais bon, on constate une fois de plus, comme c’est très souvent le cas avec les sécurités informatiques, qu’elles ne gênent en fait guère les voleurs (qui apprennent très vite à les contourner ; on va voir ci-dessous que ça n’est pas du tout impossible), mais qu’en revanche elles sont totalement bloquantes pour les honnêtes grands-mères… et extrêmement casse-pieds pour le sympathique espérantiste qu’elles supplieront de régler le problème à leur place.

En argot informatique, un tel contournement d’une sécurité est appelé un « jailbreak », ce qu’on traduit généralement par « évasion » ; mais le terme anglais est beaucoup plus fort : c’est qu’il ne s’agit pas de filer discrètement en escaladant un mur, mais bien d’entamer des travaux de grande ampleur pouvant impliquer de péter le mur à la pioche voire à la dynamite.

Or donc, moi qui ne suis pas tricheur pour deux sous, j’ai réalisé ce jailbreak. Ça m’a donné un mal de chien, pris largement plus d’une journée et fait maudire la pauvre grand-mère espérantiste une bonne quinzaine de fois (sans préjudice des crétins du marketing d’Android et de Huawei). J’en ai tellement bavé que je tiens à en garder une trace, d’autant que j’ai été vivement frappé de la similitude entre les opérations que j’ai dû accomplir et les techniques d’évasion décrites par exemple dans les mémoires de M. de Latude ou la série britannique sur les prisonniers de la forteresse de Colditz. Tout ça paraîtra sans doute enfantin à des tricheurs professionnels, mais pour une honnête personne comme moi, c’est carrément nouveau et incongru.

La toute première chose à faire, c’est de sortir de sa cellule hyper-surveillée ; on prétend qu’on est malade, et on se fait envoyer à l’infirmerie, où les gardiens sont moins nombreux et moins vigilants et où l’on est un peu plus libre de ses mouvements. Traduction sur Android : il faut poser deux doigts sur l’écran assez longtemps pour que le système se dise « m’a pas l’air bien dégourdi, celui-là, je vais lui proposer de reconfigurer sa tablette pour qu’elle soit accessible aux persons with disabilities » (astuce : ça n’est pas possible dans n’importe quel contexte, mais ça marche très bien quand on demande à lire les conditions générales… ce que pour des raisons juridiques le fabricant doit toujours prévoir, mais qui en pratique est demandé tellement rarement que sa vigilance vis-à-vis des risques de piratage n’est pas irréprochable en la matière). Cela donne accès à des tas de choses passionnantes comme la possibilité de grossir les polices d’affichage, de substituer au pointage sur l’écran des déplacements dans des menus à l’aide des deux boutons normalement réservés au réglage du niveau sonore, ou encore ça peut permettre aux mal-voyants de se faire expliquer toutes les situations où ils pourraient s’être fourvoyés grâce à un commentaire audio (anglophone) lu à haute et intelligible voix par le haut-parleur de la tablette. Rien, a priori, qui mène vers la sortie.

Seulement, maintenant que vous avez été envoyé à l’infirmerie, il vous est beaucoup plus facile d’accéder à une gaine d’aération mal surveillée dont vous pouvez défaire la grille de protection avec un simple tournevis. Bien sûr, vous n’avez pas de tournevis, il va falloir qu’un complice vous en lance un par-dessus les murs de la cour de promenade, à un moment judicieusement choisi, par exemple pendant les quelques dizaines de secondes d’une coupure de courant déclenchée par un autre complice, de façon que les gardiens des miradors ne puissent braquer leurs projecteurs.

Traduction en termes informatiques : la gaine d’aération mal surveillée, ce sont les tutoriels destinés aux persons with disabilities ; la coupure du courant, c’est une interruption de l’accès à Internet par wi-fi (pas bien malin : de même qu’on avait permis à la tablette d’accéder à Internet en transformant son téléphone mobile en « hotspot wi-fi »… il suffit de couper brièvement cette fonction sur le téléphone mobile, et les dispositifs de sécurité de la tablette penseront qu’ils n’ont plus à craindre d’intrusion depuis le réseau) ; quant au tournevis, c’est une toute petite application Android programmée par un Pakistanais anonyme – que vous avez fini par récupérer sur Internet après avoir cherché de la documentation pendant des heures à grands coups de Google, puis recopiée sur une clé USB à laquelle la tablette pourra accéder grâce à un petit connecteur-adaptateur plus ou moins standard mais en tout cas pas courant, de marque Belkin, acheté à prix d’or chez Darty (par chance, j’en disposais déjà) – lequel connecteur il faudra mettre en place à un moment judicieusement choisi pour que ça ne déclenche pas les blocages normalement automatiques durant cette phase où on vous soupçonne d’être un pirate.

Or donc, vous êtes à l’infirmerie, c’est-à-dire que vous avez accès aux commandes réservées aux persons with disabilities. L’astuce est maintenant de faire couper le téléphone (en fait, le wi-fi, donc l’accès à Internet) juste au moment où vous demandez un renseignement au petit personnel de l’infirmerie (en fait, vous demandez l’accès au tutoriel pour les persons with disabilities). Le premier réflexe du petit personnel est de décrocher le téléphone (dans le cas qui nous occupe : de chercher le tutoriel sur Internet), mais comme le téléphone est coupé (en fait, c’est le wi-fi qui l’est), le petit personnel se dit : « Bah, ça n’est pas grave, je vais me contenter de trouver l’information dans le dictionnaire Vidal de la bibliothèque » (c’est-à-dire : le tutoriel anglophone stocké dans la mémoire de stockage interne, plutôt que les tutoriels multilingues auxquels on aurait normalement accès via Internet).

Or, dans la bibliothèque, il y a un téléphone non surveillé… ce que le petit personnel ne juge pas bien grave, puisque justement le téléphone est coupé. C’est-à-dire que dans le tutoriel anglophone, il y a un lien vers une petite vidéo explicative à la fin de laquelle, comme à la fin de tout ce qui est diffusé sur YouTube, il y a possibilité de signaler par courriel à un ami ce qu’on vient de voir… ce que la sécurité d’Android ne juge pas bien grave, puisque en théorie l’accès à Internet est coupé. Sauf qu’entre-temps votre complice peut parfaitement avoir rétabli le téléphone, et vous l’accès au hot-spot wi-fi.

Donc, dans un véritable établissement pénitenciaire, vous utiliseriez le téléphone pour appeler qui vous voudriez… et de façon similaire vous prétendez vouloir partager par courriel la jolie vidéo didactique (dont, bien entendu, vous vous contrefoutez). Comme la tablette est à peu près neuve, aucun compte de webmail ne lui est vraiment associé, et Android vous offre donc par réflexe la possibilité de profiter de l’occasion pour signaler l’existence de votre compte Gmail ou même Hotmail. C’est cette deuxième possibilité qu’il faut choisir : Gmail connaît Android et se rendrait peut-être compte que vous cherchez à l’arnaquer, tandis que Hotmail, qui appartient à Microsoft, se contrefout de la sécurité d’Android… et en plus l’extrême nullité de Microsoft pour tout ce qui est en rapport avec la sécurité est de notoriété planétaire.

Or donc, depuis le compte Hotmail qu’a gentiment ouvert pour vous votre complice extérieur (traduction : que vous avez configuré, non pas à partir de la tablette, mais à partir de votre ordinateur de bureau), vous pouvez envoyer un message… et surtout vous pouvez lui adjoindre une pièce jointe ; laquelle pièce jointe sera… la petite application pakistanaise accessible depuis la clé USB que justement vous venez de connecter entre-temps grâce au dispositif dispendieux acheté chez Darty. Vous envoyez le message avec sa pièce jointe à qui vous voulez (par exemple à vous-même, mais en réalité ça n’a aucune importance, puisque votre messagerie vous donne accès à tout message envoyé, peu importe qui est censé l’avoir reçu). Comme Gmail, lui, est interfacé avec Android avec beaucoup de soin, son réflexe juste après l’envoi du message serait probablement de vous renvoyer immédiatement au tutoriel que vous étiez en train de consulter ; mais Hotmail, qui a été programmé par des branques ne connaissant rien à Android, vous donne la possibilité de faire tout autre chose avant que vous preniez explicitement la décision de revenir au tutoriel. Vous pouvez donc en profiter pour aller consulter les messages envoyés, puis la pièce jointe associée au courriel plus ou moins fictif expédié à l’instant. Cette pièce jointe, c’est le programme pakistanais. Hotmail s’aperçoit qu’il s’agit d’une petite application Android, et comme Hotmail a été conçu par les génies de Microsoft, il cherche à se montrer aussi serviable qu’il est nul en sécurité : il vous signale donc que vous pouvez installer ce programme, là maintenant tout de suite, si ça vous chante. Eh bien, oui, justement, cette idée vous paraît tout à coup tentante car, voyez comme le hasard fait bien les choses, la fonction de ce programme est justement de contourner la sécurité d’Android !

En fait, le petit programme ne fait presque rien lui-même… mais il vous permet d’entrer dans les paramètres de configuration d’Android, où se trouvent deux tonnes de réglages aussi sympathiques qu’inutiles, mais aussi… l’option de restauration des paramètres d’usine. Certes, vous avez déjà au préalable rétabli ces paramètres (c’est même la toute première chose que vous avez faite pour tenter de dépanner la grand-mère espérantiste) et constaté alors avec dépit que ça n’effaçait pas la synchronisation avec un compte Google… mais cette fois-ci vous n’êtes plus dans le contexte où Android vous considérait comme un possible pirate cherchant à s’emparer d’une tablette volée : à ce stade du récit, vous êtes censé être un utilisateur légitime de la tablette, et donc vous avez le droit d’effacer tout tout tout… y compris, alléluia, le nom du compte Google associé.

Et voilà : la tablette redevient donc vraiment comme neuve. On pouvait bel et bien le faire, et une fois qu’on a compris la logique de tout ce qui précède, ce n’est même pas vraiment difficile ; un voleur de tablettes doit pouvoir faire ça quinze fois par jour sans se fatiguer. Pour moi qui n’y connaissais rien, ça a quand même pris largement plus d’une journée de travail, et ça méritait donc bien que je note tout ça avant de l’avoir complètement oublié…

Les deux moteurs de rendu de Blender

J’ai failli titrer cet article: « Les deux moteurs de rendu de Blender: Dumb & Dumber »… C’était l’idée, mais c’était quand même sévère… et par ailleurs un peu trop lourd en typographie.

Un collègue a récemment attiré mon attention sur le moteur de rendu Cycles qui est désormais intégré à Blender, et dont la principale vertu est de produire des images davantage photoréalistes. Je m’y suis tout de suite intéressé parce que le moteur de rendu standard de Blender mène pas vraiment rarement à des aberrations visuelles que je trouve inexcusables. Alléluia, ces aberrations disparaissent avec Cycles… mais misère, palsambleu et putréfaction, le moteur Cycles a lui aussi des défauts très notables…

Blender continue de me laisser assez largement sceptique, mais peut-être est-ce que je m’en sers mal? C’est en tout cas la réponse que les enthousiastes de Blender ont une tendance prononcée à toujours opposer à mes critiques. J’ai donc concocté cette vidéo pour pouvoir au moins étayer mes griefs quand je parle avec eux. Comme vous le verrez, le diable est dans les détails.

Voler en hélico avec POV-Ray

Un amateur de 3D isolé comme moi ne peut pas raisonnablement espérer rivaliser avec un studio d’animation d’une cinquantaine de personnes, mais des animations spectaculaires d’un type bien particulier sont quand même à sa portée. L’idée est simple: sur la base d’une vaste scène riche en détails où rien ne bouge, on représente le parcours d’une caméra extrêmement mobile et susceptible de moduler sa vitesse dans des proportions considérables; capable de lambiner comme un piéton à proximité d’un objet, et aussi de foncer à la vitesse d’un avion à réaction sur une vue générale.

J’ai commencé à travailler sur une animation de ce type, dont je vous présente ici le brouillon. Oh, je suis bien conscient que sa qualité technique n’a rien pour déclencher votre enthousiasme… alors, perdu pour perdu, je vais carrément vous inonder de chiffres pour que ce soit encore plus rébarbatif! (accessoirement, cette logorrhée numérique pourra ultérieurement me servir de référence)

Les images que vous pouvez voir ci-dessus ont été calculées avec une résolution de 320 x 240 pixels et à la cadence de 15 vues par seconde. En d’autres termes, c’est très médiocre (hyper-pixelisé et saccadé) comme vous n’aurez pas manqué de vous en faire la réflexion. Un standard actuel serait de 1024 x 768 pixels à 30 images par seconde, mais cela demanderait… vingt fois plus de puissance de calcul. Or, même dans son état rudimentaire, cette vidéo dure environ trois minutes, soit, à 15 images par seconde, environ 2700 images, et même dans une définition aussi basse, chacune requiert déjà une dizaine de secondes de calculs (avec POV-Ray). C’est qu’avec son relief texturé, ses six bâtiments (dont un très complexe et détaillé) et les quelques autres fariboles qui l’agrémentent, cette scène comporte quand même quelque 50.000 triangles (correspondant d’ailleurs à plusieurs semaines de modélisation, mais c’est une autre histoire). Pour produire la même chose dans un standard de qualité contemporain, il faudrait que mon ordinateur tourne vingt fois plus longtemps que les sept heures de calcul que m’a demandées ce brouillon… donc ma machine serait monopolisée pendant plusieurs semaines. Je ne dis pas que je n’envisagerai jamais un tel investissement en temps… mais alors il faudra que le projet en vaille davantage la peine.

C’est égal, je ne suis pas mécontent du résultat, que je trouve franchement prometteur. Le principe général est le suivant: on met en place « manuellement » une série de caméras représentant des positions intermédiaires (au départ, je l’ai fait avec un petit utilitaire à moi — une moulinette –, mais j’ai ensuite affiné avec Blender), dont on note soigneusement les caractéristiques: coordonnées x, y, z, azimut, site (angle par rapport à l’horizontale) et éventuellement focale. Le nombre de ces « caméras de passage » est indifférent, mais pour mes 2700 images finales j’ai quand même dû en définir une quarantaine (et dans l’idéal, je devrais encore en ajouter une bonne douzaine). L’inventaire de ces données constitue un fichier de texte banal (sauf, bien sûr, que je m’astreins à respecter une certaine syntaxe, mais elle n’a rien de complexe), lequel sera bien sûr lu et exploité ultérieurement par une moulinette. En plus des coordonnées déjà relevées, j’y ajoute manuellement (et entièrement au pifomètre! mais c’est facile à retravailler) des indications de vitesse de déplacement (jusqu’à 300 km/h pour les vues générales, parfois pas plus de 2 km/h lorsque l’on est proche d’un objet).

Et tout cela étant fait, j’applique là-dessus mes super-pouvoirs de spécialiste des moulinettes: cette liste d’une cinquantaine de caméras seulement est démultipliée en un tournemain (par une technique d’interpolation par courbes de Bézier définies dans l’espace-temps, laquelle je me flatte d’avoir conçue à partir de rien et programmée de A à Z), et elle devient une liste exactement du même type (un autre fichier de texte avec la même syntaxe) mais contenant cette fois autant de positions intermédiaires qu’il y aura d’images produites au final (plusieurs milliers, donc). Il n’y a plus qu’à exploiter cette nouvelle liste avec une nouvelle moulinette (en fait, une série de moulinettes) pour obliger POV-Ray à la transformer en une série d’images, et hop, c’est parti pour plusieurs heures de calcul automatisé.

Enfin, tout à fait en aval, les images produites sont transformées en animation (d’abord au format AVI, puis MP4) par plusieurs logiciels libres (le couple mplayer-mencoder, plus un peu de fignolage avec Kdenlive pour l’ajout d’une bande-son et la compression en MP4). Et ça donne… le (très petit) chef-d’oeuvre que vous pouvez voir ci-dessus. Tout ça avec un ordinateur de bureau de modèle banal.

Dans l’idéal, il faudrait retravailler un peu tout ça pour réduire la durée de quelques transitions ennuyeuses et ajuster la fluidité de certains changements de direction. Il n’empêche que globalement, je suis assez content du résultat. Les mouvements de caméra sont presque toujours parfaitement fluides (quand par exception ils ne le sont pas, c’est dû à de mauvais choix de positions de passage, pas très compliqués à corriger), la caméra va à une vitesse folle quand il le faut, ralentit à mort quand il le faut, et même les passages où l’on se faufile au milieu de petits détails restent parfaitement compréhensibles (vous avez vu la traversée du petit chalet? et la montée de l’escalier? mmm? c’est pas top moumoute, ça?).

C’est pas pour me vanter, mais tout ça, ce n’est vraiment pas à la portée du premier pignouf venu… mais c’est possible pour un clampin tout seul à la seule condition que comme moi il ait appris à se servir d’Unix, de Python, de POV-Ray et de quelques autres logiciels libres moins connus. Le logiciel libre, c’est vraiment pas toujours simple… mais quand on sait s’en servir, pétard, ça dépote.