« Bitwise Liminal », court-métrage en 256 octets de code
(killedbyapixel.github.io)- Bitwise Liminal est un court-métrage web réalisé avec 256 octets de code, présenté à Lovebyte Party 2024
- L’histoire commence avec une vieille cassette VHS trouvée lors d’un vide-grenier, portant l’étiquette « Bitwise Liminal »
- La cassette lue n’affiche que du bruit statique, mais le narrateur se met ensuite à faire des rêves inquiétants et à développer une obsession pour la cassette
- Au terme de ses recherches, il apparaît que la cassette est une sauvegarde numérique, et les données restaurées avec un logiciel spécial se révèlent être un programme de 256 octets
- Lorsque le programme est ouvert dans un navigateur web, une scène semblable à ses rêves apparaît ; le narrateur ne dort plus et reste à la regarder
Un court-métrage réalisé avec 256 octets de code
- Bitwise Liminal est une courte œuvre basée sur du code, sous-titrée « A Short Film in 256 Bytes of Code »
- Elle est indiquée comme une entrée présentée à Lovebyte Party 2024
- Elle prend la forme d’un récit où, après la découverte d’une vieille cassette VHS, des données cachées à l’intérieur sont restaurées puis exécutées dans un navigateur web
Un récit qui va de la cassette VHS au navigateur
- Le narrateur découvre lors d’un vide-grenier une vieille cassette VHS sur laquelle « Bitwise Liminal » est écrit au marqueur Sharpie
- Lorsqu’il lit la cassette, l’écran n’affiche que du bruit statique
- Il commence ensuite à faire des rêves vifs et inquiétants, et repense sans cesse à cette étrange cassette VHS
- Ses recherches lui apprennent que la cassette est une sauvegarde numérique, et il restaure les données avec un logiciel spécial
- Les données restaurées sont un programme de 256 octets, que le narrateur ouvre dans un navigateur web avec des mains tremblantes
- La scène affichée dans le navigateur lui rappelle les rêves qu’il faisait ; à la fin, il n’a plus besoin de dormir et reste simplement à regarder
1 commentaires
Avis sur Hacker News
C’est impressionnant et ça ressemble à une vraie scène de film. Mais quand on pense que ça tient en 256 octets, ça fait revoir à quel point les choses qu’on utilise tous les jours sont devenues obèses, et à quel point les navigateurs actuels sont puissants
Cela dit, j’ai trouvé encore plus bluffantes des choses comme la démo 8K « the Sheep and the Flower » partagée récemment sur HN https://news.ycombinator.com/item?id=39121101, ou « One of those days » https://www.pouet.net/prod.php?which=75790 / vidéo YouTube https://youtu.be/8T_Um-cw0Wc, un remake d’une vraie vidéo YouTube https://www.youtube.com/watch?v=R1NagZN2kjY
C’est bien plus gros qu’un film de 256 octets, mais ça transmet beaucoup plus de graphismes et d’histoire
Existe-t-il une version annotée qui explique chaque partie pour les gens ordinaires comme nous ?
https://github.com/callumlocke/bitwise-liminal-expanded
Article récent lié : Cross My Heart – A Frogger Demake in 256 Bytes of HTML/JS - https://news.ycombinator.com/item?id=39336677 - février 2024, 44 commentaires
D’habitude, les soumissions de suivi sont déclassées (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=follow-up%20downweight&sort=byDate&type=comment), mais cette fois, comme (a) la personne qui l’a soumis est l’auteur et (b) le travail est excellent, on l’a transformé en Show HN selon les critères de https://news.ycombinator.com/showhn.html et on l’a laissé tel quel
Si ça, c’est un « court-métrage », alors je viens de lire mon nouveau roman
t+=.1part+=.01et9986par9e3, on peut encore faire une boucle d’environ 45 secondes en restant dans les 256 octets. En revanche, une partie du bas de l’image sera coupéeDétail anecdotique, mais c’est la première fois que je vois un svg intégré dans un canvas juste pour utiliser l’événement
onload. Dans ce contexte, le canvas est référencé comme un bare id ; c’est bizarre, mais coolscriptOn pourrait peut-être économiser encore un peu de place en le mettant dans l’événement
canvas onclickLe fait que ce soit vraiment 256 octets bruts, et non un résultat soumis après zip, gzip et traitement de suffixe comme dans un game jam 1 Ko classique, avec les assets exclus du décompte, est vraiment incroyable. Respect
Pour des tailles plus petites, il existe d’autres alternatives, mais une démo de 256 octets est généralement trop petite pour y inclure un décompresseur. Je suis toutefois d’accord sur le fait d’exclure les assets du décompte
import gameassetsest-il aussi autorisé ?Au passage, en Python,
import GOTOfonctionne :)Le travail de cette personne me laisse toujours bouche bée. La description des outils utilisés est ici : https://frankforce.com/tools/
Ses travaux de micro-animations sur le blog Dwitter sont ici : https://www.dwitter.net/u/KilledByAPixel
Explication YouTube : https://www.youtube.com/watch?v=HV7Dmo277Rs
Quand je vois ce genre de chose, je me dis que toute la vie peut vraiment être encodée dans l’ADN. J’ai lu quelque part que le génome humain, compressé avec gzip, faisait environ 4 Mo, ce qui, intuitivement, me semblait bien trop petit pour représenter un humain
Mais si ce genre de comportement peut tenir dans 256 octets, mon intuition est clairement fausse
2^(3.2 * 10^7)états possibles. Imaginons qu’il existe un décompresseur capable d’interpréter comme organismes vivants fonctionnels une infime fraction d’une infime fraction d’une infime fraction d’une infime fraction de ces étatsIl y a environ 1 000 milliards d’espèces sur Terrehttps://www.nsf.gov/news/news_summ.jsp?cntn_id=138446, supposons qu’il existe 1 000 milliards de fois plus d’espèces potentielles qui n’existent pas actuellement, et 1 000 milliards de variations pour chaque espèce. Même en multipliant encore généreusement par 1 000 milliards, d’après Wolfram Alphahttps://www.wolframalpha.com/input?i2d=true&i=Divide%5BPower%5B2%2C3.2Power%5B10%2C7%5D%5D%2Ca+trillion+trillion+trillion+trillion%5D++a+percent+of+a+percent+of+a+percent+of+a+percent, il reste une marge d’erreur d’environ 10 puissance 10 millions
Ici, « environ » signifie à peu près autant qu’une chaîne de montagnes ressemble grosso modo à du papier de verre rugueux, mais c’est tellement arrondi qu’on ne peut pas vraiment éviter de le faire
https://www.nature.com/articles/d41586-024-00327-x
Et si l’on regarde à nouveau l’ensemble de Mandelbrot, un processus assez simple peut contenir une quantité d’information énorme
Enfin, pour tempérer un peu l’impression que donnent ces 256 octets, il faut aussi tenir compte du fait qu’ils nécessitent du matériel et du logiciel pour les exécuter. Ces 256 octets ne produiraient probablement pas la même illusion sur un C64
En voyant ça, le ventilateur système de mon 5560U est monté à 100 % :-)
Quelqu’un peut-il m’expliquer ce que je suis censé voir dans ce court métrage ? Je vois bien une animation en noir et blanc avec des boîtes qui bougent et des lignes bruitées, mais je n’en comprends pas vraiment le sens
Ce qui est étonnant, c’est à quel point la taille du fichier est minuscule : 256 octets
Pour donner une idée de l’exploit, le film entier est environ 58 fois plus petit qu’une capture d’écran de la première image. On pourrait mettre ce film entier plus de 5 000 fois sur une disquette de 1,44 Mo et il resterait encore de la place
En général, une vidéo se compose de plusieurs images, avec des informations indiquant quelles parties de l’image se déplacent où
Mais ce film ne contient aucune donnée d’image. Il contient seulement un peu de mathématiques qui dessinent, au fil du temps, des boîtes de différentes luminosités