3 points par GN⁺ 2025-08-05 | 1 commentaires | Partager sur WhatsApp
  • Kilopixel est un grand écran basé sur 1000 pixels en bois, développé sur 6 ans, sur lequel tout le monde peut dessiner via Internet.
  • Ce projet a été réalisé après plusieurs itérations incluant la conception de divers prototypes physiques, des tests de matériaux et la conversion de la forme des pixels.
  • Il utilise des machines CNC, des Raspberry Pi, des applications web et des capteurs, avec une architecture unique qui relie le monde en ligne et le monde réel.
  • Les utilisateurs peuvent soumettre directement un dessin via le site web ou participer par vote, avec également un environnement de diffusion en direct et de vidéo timelapse.
  • C’est un projet créatif et ouvert qui prévoit notamment de céder le contrôle de l’affichage à d’autres personnes à l’avenir ainsi que diverses applications.

Aperçu du projet

  • Kilopixel est un écran de bois à 1000 pixels, développé sur 6 ans, et considéré comme l’écran à 1000 pixels le plus inefficace au monde.
  • C’est un système interactif conçu pour que n'importe qui puisse dessiner sur cet écran via le site web (kilopx.com).
  • Ce projet regroupe de nombreux éléments IT et maker, de l'application web au contrôleur physique en passant par l'usinage CNC, la génération de G-code, la modélisation et l'impression 3D.

Idée initiale et motivation

  • L'idée est issue des œuvres non conventionnelles de miroir de Danny Rozin et d'un lecteur vidéo ultra-lent basé sur eInk.
  • Contrairement aux écrans haute résolution actuels, ils ont choisi un mode d'affichage volontairement extrêmement lent et peu efficace, avec seulement 10 changements de pixel par minute.
  • La grille 40×25 représente exactement 1 000 pixels ; le nom vient du domaine facile à retenir kilopx.com.

Fabrication du premier prototype (21x3 pixels)

  • En partant d'un portique en bois, ils sont passés assez tôt à des pièces en aluminium du kit Openbuilds (structure proche d'une imprimante 3D).
  • Montage initial avec Raspberry Pi, contrôleur CNC, moteurs pas à pas, etc., puis essais de démarrage.
  • Plusieurs limites et problèmes techniques ont été révélés dans les mécanismes de sélection et d'actionnement des pixels.

Les difficultés pour trouver le bon pixel

  • Ils ont testé divers matériaux sphériques, comme des balles de ping-pong, du polystyrène et des boules en bois.
    • Ils ont dû faire face à des contraintes concrètes de coût, de poids, de difficulté d'approvisionnement et de variabilité de taille.
    • Par exemple, 1 000 balles de ping-pong à 50 cents reviennent à 500 $.
  • Les balles de ping-pong se déforment facilement lorsqu’on leur perce des trous et échouent aussi à cause des variations de taille.
  • Les neopballs, bounceballs, boules en bois et le polystyrène ont également été jugés inadaptés à cause des difficultés de perçage, de peinture, de durabilité et de poids.

Expérimentation du mécanisme de rotation des pixels

  • Tentative de rotation des pixels en combinant roues LEGO et moteurs avec des capteurs.
  • Divers modes d'actionnement ont été testés avec solénoïde et servomoteur, tous abandonnés car un contrôle fin était difficile.

Passage des pixels cylindriques aux pixels cubiques

  • Après une conversation de podcast, ils sont passés entièrement aux pixels en bois cubiques, en démarrant la fabrication en interne.
  • La production en grande série a demandé un temps conséquent, mais le rendu visuel et le fonctionnement sont restés satisfaisants.

Réalisation de la grille de pixels

  • Une structure de grille fixe, plutôt que les pixels eux-mêmes, a été conçue pour garantir la précision de la matrice 40×25.
  • 25 étagères fines percées de 40 trous ont été usinées, puis les pixels sont enfilés sur des fils métalliques pour maintenir un espacement constant.
  • La grille a été conçue de manière à ce que chaque pixel fonctionne de manière totalement indépendante, sans influencer ses voisins.

CNC et contrôle système

  • Comprend des explications sur les principes de base du CNC et l’usage du G-code.
  • Utilisation d’un Raspberry Pi et d’un contrôleur CNC, de scripts Python, d’un capteur de lumière, de la bibliothèque pigpio, etc.
  • En liaison avec l’API web, le pixel suivant est sélectionné, le mouvement est commandé en G-code, le résultat est vérifié par les capteurs puis renvoyé en boucle via l’API.

Mécanisme de manipulation des pixels (pixel poking)

  • Les pixels ont une encoche personnalisée tous les 90° et sont pivotés en poussant leur bord avec une tige flexible (un gluestick).
  • L’ensemble de ces opérations est automatisé via G-code.

Modes d'affichage d'image et interface web

  • L'API est pilotée par l'application web, et il existe trois modes d'affichage :
    • Soumissions utilisateurs : tout le monde peut soumettre une image 40×25 et voter, les meilleures œuvres sont affichées séquentiellement.
    • Collaboration en temps réel : les participants peuvent modifier les pixels en direct (devient difficile quand trop de personnes participent).
    • Mode veille : sortie d’animations basées sur des algorithmes (horloge, formes, etc.).
  • La pile web a évolué de Node/Socket.IO puis Laravel+Livewire, pour finir sur Laravel+InertiaJS+VueJS.

Streaming en direct et timelapse

  • Avec deux webcams (plan rapproché, plan large), l’affichage est diffusé en direct sur YouTube via OBS et ffmpeg.
  • Après vérification de l’état de l’API, une fonction permet aussi de générer et publier une vidéo timelapse des œuvres terminées.

Sécurité et exploitation d'un système ouvert

  • Un contrôle minimal a été mis en place pour limiter les abus, avec notamment une fonction de suppression rapide d’une œuvre si nécessaire.
  • La structure de participation reste fondamentalement très ouverte, avec notamment la connexion via Bluesky OAuth.

Prochaines étapes

  • En attendant une participation variée des utilisateurs, ils envisagent ensuite de transférer le contrôle à d’autres utilisateurs via l’API.
  • L’objectif final est de pouvoir l'utiliser comme arrière-plan de webcam, ou encore dans des espaces comme des bureaux, des cafés, etc.
  • Chacun peut participer et regarder le résultat en temps réel depuis le site web.

Conclusion

  • Kilopixel est un projet unique qui fusionne l’interactivité en ligne et la matérialité du monde physique.
  • Son parcours de conception, avec de nombreuses expérimentations et efforts techniques, peut inspirer aussi bien les makers que les développeurs.

1 commentaires

 
GN⁺ 2025-08-05
Commentaires Hacker News
  • J’ai trouvé ce projet impressionnant ; j’ai moi aussi déjà eu l’occasion de fabriquer un affichage de 30 pixels, avec le projet PixelWeaver en référence. C’était un dispositif mécanique où, en utilisant des cartes perforées et une poignée, tous les pixels changeaient en même temps ; le développement du mécanisme m’a semblé très familier.

    • Je suis vraiment impressionné par ce travail et je reconnais qu’il a fallu énormément d’efforts pour l’achever. En voyant en vrai la machine Linotype du XIXᵉ siècle, je suis tombé en admiration devant les prouesses des générations précédentes. La machine est si complexe qu’on peine à imaginer comment elle a pu être fabriquée ; parler d’un métier à tisser m’a rappelé exactement cette sensation.
  • Mumbo Jumbo a déjà implémenté un concept similaire dans Hermitcraft en utilisant des trap doors. Il y a maintenant une sorte de révolution « buildstone » en cours, un mouvement visant à créer des éléments esthétiques avec la redstone. La vidéo Mumbot 2.0 peut être consultée. Grian a aussi réalisé une cascade animée avec un dispenser, des particules de neige et des flèches de potion vidéo waterfall de Grian

  • C’est un très beau projet. J’ai même regardé la partie où le chat dit « hi ». Il me semble qu’il n’y a pas de nouveau post sur Bluesky pour @kilopx.com depuis 9 jours. Parmi les améliorations possibles, j’aimerais déplacer le plus possible le « pen » après la soumission afin de pouvoir filmer proprement l’œuvre finie, et afficher sur le site l’auteur de la soumission en cours. J’aimerais aussi voir les œuvres terminées dans une galerie séparée, en mode « history ». Aujourd’hui, il semble n’y avoir qu’un permalien du type « Timelapse will be available after this is drawn » pour les soumissions en attente, et je ne vois pas de moyen simple de retrouver les résultats terminés ou en cours.

  • Un taux de rafraîchissement de 370 microhertz ajoute une dimension totalement nouvelle au concept de « Calm Technology », c’est très chouette. Description wiki de Calm Technology

    • Ce sujet est vraiment fascinant. Je me demande si ça vaut la peine de lire le livre de Amber Case, « Calm Technology ».

    • Le frame rate de la caméra principale de YouTube est par hasard le même nombre ; j’aimerais que l’auteur corrige ce point.

  • D’après mon expérience, cet affichage doit être l’un des plus chers par pixel, mais c’est la première fois que je vois un affichage aussi attirant ; au sens positif, c’est carrément spectaculaire.

    • Autre exemple de pixel à la fois beau et coûteux : l’œuvre en miroir de Danny Rosin mentionnée dans le texte vidéo associée

    • Le fait qu’il ne consomme aucune énergie tant qu’on ne change pas l’image est également un avantage.

    • Les Mythbusters semblent encore détenir le record vidéo de l’expérience associée

    • Je ne veux pas vraiment penser au prix réel par pixel, et en y ajoutant la valeur de mon temps, c’est encore pire ; j’évite donc de calculer le coût final.

    • J’ai utilisé un « gluestick » souple pour créer un mécanisme d’allers-retours de poinçonnage. C’était le meilleur choix, à la fois économique et créatif, pour les « consommables ».

  • Une autre idée serait de régler l’angle des cubes pour que, lorsqu’un cube fait face, ce ne soit pas la face qui pointe vers l’observateur, mais l’arête. Si chaque cube avait 2 faces sombres et 2 faces claires adjacentes, il serait possible d’assigner simultanément deux images (une vue à 45° à gauche, l’autre à droite), soit 4 états par pixel.

    • Si on sacrifie une couleur, on pourrait utiliser une forme de prisme triangulaire et faire en sorte que chaque face soit virtuellement adjacente, puis les faire pivoter séparément schéma image

    • Chaque face pourrait aussi être peinte en RGBK ou CYMK pour élargir vers un écran couleur.

    • De même, en gardant la caméra en frontal, on pourrait doubler le nombre de pixels avec le matériel existant.

  • Ce projet est superbe, mais il m’inspire sans cesse en continuant à imaginer des variantes plus rapides (même si je sais que la vitesse n’est pas le point central). Si le mécanisme qui tourne les blocs pouvait fonctionner sans changer sans cesse l’alignement de l’axe X, on pourrait traiter rapidement une colonne entière ; sinon, avec une structure qui ne nécessite pas d’alignement Y, on pourrait le faire ligne par ligne. Un système où le mécanisme de rotation des blocs n’a pas besoin d’être réinitialisé en permanence (p. ex. structure rotative) semblerait plus rapide ; je me représente facilement un spécialiste de l’automatisation industrielle l’implémentant très vite. Au passage, le fait qu’il ait été choisi au départ une approche e-ink analogique avec des billes est vraiment impressionnant.

    • Puisqu’on évoque une « matrice de points qui consomme de l’énergie uniquement lors des mises à jour d’image », je n’ai pas encore vu une approche de ce type : sur un côté d’une boîte, une imprimante thermique, de l’autre un ressort de tension avec bobine caché, le papier thermique déroulé derrière une vitre [anti-UV] pour afficher, puis imprimer une nouvelle image pour « rafraîchir » l’écran.

      • En poussant l’idée plus loin, la surface de l’écran pourrait être recouverte d’encre effaçable à la chaleur comme celle utilisée par les stylos Pilot Frixion. Cette encre disparaît à 60°C, redevient sombre à -10°C et reste stable entre ces températures. On pourrait donc réutiliser la même boucle indéfiniment, même si la durée de vie de l’encre reste incertaine.

      • Certains fax utilisent du papier thermique, ce qui permettrait d’atteindre au moins 8,5 pouces.

      • Si l’on doit jeter le papier à chaque changement d’image, je doute qu’on puisse encore appeler cela un « écran ».

      • La structure en boîte pourrait aussi permettre un affichage sur 4 faces si le mécanisme est bien conçu ; en changeant l’image principale, les autres images pourraient passer aux écrans 2, 3 et 4. En ajoutant une fente dans le bezel et un rouleau caché dans le cadre à chaque coin, on pourrait aller assez loin.

    • J’adore ce projet et c’est très agréable à lire. Il me rappelle le genre de description de roman steampunk. J’ai regardé par curiosité sur Google, et dans Difference Engine de Gibson & Sterling il y a le kinotrope. Quelqu’un y a apparemment mis un servo par pixel, ce qui devait coûter cher article de blog associé

      • Inspiré par les travaux de Rozin chez Breakfast design, j’ai déjà produit plusieurs panneaux similaires avec différents « médiums » panneau breakfaststudio
    • Et je continue d’imaginer des variantes « plus rapides ». Par exemple, pour chaque ligne de scan, on pourrait projeter des billes en bois dans des tubes ou canaux pour distribuer la couleur adéquate ; avec un système gravitaire ou pneumatique, il suffirait de réinitialiser/réapprovisionner une ligne. On peut même imaginer de le déployer à l’échelle d’un stade avec des pixels de bowling. Les difficultés seraient le bon timing pour redistribuer chaque couleur vers les canaux d’alimentation et un dispositif d’amortissement des chocs des billes pour réduire bruit et usure. Côté opposé, une approche en matrice active est aussi possible, où chaque bloc tourne sur place via solénoïde/servo pour afficher plusieurs couleurs.