Pointes un projecteur et une webcam sur un mur. Tu dessines avec un pointeur laser. Le projecteur peint ton trait là où tu pointes, et tout tourne dans le navigateur : pas d'installation, pas d'app native, zéro dépendance, MIT.12

Le genre de démo qu'on regarde deux fois avant de se demander comment c'est possible.

Trois espaces

Le problème qui rend le projet intéressant n'est pas le laser. C'est la calibration entre trois espaces que rien ne pré-aligne : le plan de la caméra, le plan de la projection et le mur.

À l'écran, ça se règle en un clic. Le projecteur affiche des marqueurs blancs dans les coins de sa zone, la caméra les repère, et le logiciel calcule la correspondance caméra → projecteur, une homographie, qu'il mémorise dans le stockage local.2 Puis un compte à rebours de trois secondes, on agite le laser quatre secondes, et le détecteur apprend sa luminosité et sa couleur.2

Quand tout est calibré, chaque frame réduite à 480 px cherche les pixels dominés par la couleur du laser, prend le centroïde pondéré du plus brillant, et le projette à l'endroit exact.2

Le mur se prend pour le laser

La partie la plus fourbe vient ensuite. Le dessin projeté ressemble lui-même au laser pour la caméra. Un trait vert, ou les morceaux verts du pinceau arc-en-ciel, peuvent être confondus avec la source qu'on suit.2

La solution est une boucle anti-rétroaction. Chaque frame, l'application rend le dessin qu'elle projette dans un canvas en espace projecteur, ne garde que les pixels qui passeraient le test du laser, les déforme selon la calibration vers l'espace caméra, et les ignore pendant la détection.2 Les 400 ms les plus récentes du trait sont exclues du masque : c'est là que se trouve le vrai point laser.

Le mode brûlure

La partie burn est un petit renversement. Un projecteur ne peut qu'ajouter de la lumière : impossible de laisser une vraie marque. Alors le code simule la brûlure par soustraction. Autour du trait, il projette un halo brunâtre à bord doux ; au cœur, aucune lumière du tout, qui reste le mur naturel et se lit comme la partie la plus noire, la plus carbonisée.2 L'option scan surface photographie même le mur et déforme le halo avec ses vraies briques, pour que la marque semble dans la matière plutôt que portée dessus.

Une généalogie précise

Le projet n'invente pas l'idée. Elle vient du Graffiti Research Lab de New York et de son L.A.S.E.R. Tag, décliné à Vienne vers 2007 par Michael Zeltner et Florian Hufsky dans une app native Processing qui taguait des façades.31 Laser Graffiti est une réimplémentation from-scratch de cette idée pour le navigateur, sans Processing ni installation.2

L'absence d'installation ne rend pas l'outil trivial. Le mur doit rester immobile pendant que le projecteur travaille, la caméra doit voir toute la zone, et il faut un pointeur. Les lasers verts, les mieux détectés, méritent la prudence habituelle avant de viser une surface qui réfléchit.2

Ce qui reste à voir, c'est ce que les gens en feront hors de la page de démo. Le projet est passé sur Hacker News fin août avec 250 points, et son auteur a déjà testé plusieurs montages, dont la caméra d'un iPhone reliée au projecteur par AirPlay.4 Dans un hakerspace, ça peut vite devenir autre chose qu'un jouet de salon.