1 points par GN⁺ 2024-02-12 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2024-02-12
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 ?

  • 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

    • En remplaçant t+=.1 par t+=.01 et 9986 par 9e3, 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ée
  • Dé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 cool

    • Apparemment, le mettre dans svg onload est un tout petit peu plus court que d’utiliser une balise script
      On pourrait peut-être économiser encore un peu de place en le mettant dans l’événement canvas onclick
    • Je me demande pourquoi c’est autorisé. Je ne savais pas qu’on pouvait faire ça en JavaScript
  • Le 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

    • Celui-ci est chouette aussi : https://linusakesson.net/scene/a-mind-is-born/
    • C’est un défi fou, presque impossible, et quand ça fonctionne vraiment, ça ressemble à de la magie
    • Il est toujours possible d’inclure un décompresseur dans l’entrée. Le bootstrap PNG est assez populaire depuis longtemps dans la demoscene JavaScript, et commence à être efficace pour les démos de plus de 1 Ko
      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
    • Dans ce genre de concours, import gameassets est-il aussi autorisé ?
      Au passage, en Python, import GOTO fonctionne :)
  • 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

    • Cette « explication YouTube » n’explique en réalité pas comment les Dweets fonctionnent. Le travail lui-même est stupéfiant et agréable à regarder, et j’aimerais l’entendre le présenter lui-même, mais cette vidéo décevra quiconque cherche une explication détaillée du fonctionnement
  • 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

    • 4 Mo, c’est suffisant pour distinguer 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 états
      Il 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
    • Dire qu’on peut répliquer un être vivant uniquement à partir de l’ADN est un malentendu. Pour qu’un nouvel organisme se forme, il faut aussi la base biologique de l’embryon transmise par les parents, autrement dit l’infrastructure biologique
    • Il y avait il y a quelques jours sur HN un article qui s’opposait à l’idée de voir l’ADN comme du code et la cellule comme un ordinateur ou une machine
      https://www.nature.com/articles/d41586-024-00327-x
    • Une vie générée uniquement à partir d’ADN dans le vide serait probablement assez ennuyeuse. La vie dans son ensemble a besoin d’un environnement avec lequel interagir, et pour l’instant il n’en existe qu’un seul ; or ce qui est unique ne se compresse pas bien
      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
    • Ça pourrait aussi être une graine de générateur de nombres aléatoires de 4 Mo
  • 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

    • C’est justement ça, le film
      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