Ce qu’il y a de plus génial dans cette œuvre, à mon avis, c’est la façon dont le temps fonctionne
Comme une étape d’un niveau est calculée par la multitude d’étapes du niveau juste en dessous, plus on dézoome, plus on a l’impression de tomber dans un tourbillon exponentiel où une seule étape prend des jours, des années, voire des milliers d’années
Mais c’est astucieux que le simulateur ajuste la vitesse en douceur selon le niveau de zoom, au point d’effacer l’existence même du temps
J’aimerais bien qu’il y ait une indication de la quantité de temps de jeu qui s’écoule par seconde réelle, mais pour ça il faudrait définir un niveau comme niveau « de base », c’est-à-dire celui qui tourne en temps réel, et ça casserait sans doute la nature fractale de l’ensemble
Dans le billet qui explique l’implémentation, après avoir présenté le concept de motif méta-pixel, on donne le « rapport d’horloge » de la périodicité
Quelque chose comme : « La période de ce motif est 35328, donc après 35328 générations, la génération du méta-niveau avance de 1 »
On peut même considérer qu’un tel ralentissement temporel est nécessaire, car si l’auto-similarité du motif s’étend dans le temps et que deux niveaux fonctionnent avec des horloges différentes, alors il faut ralentir quand le niveau suivant apparaît pour correspondre à la vue animée auto-similaire du niveau précédent
Autrement dit, la structure du niveau n nécessite 35328 répétitions de la structure auto-similaire du niveau n+1, donc quand on ramène n+1 à une vue auto-similaire de n, il faut aussi ralentir n+1 pour faire correspondre l’auto-similarité temporelle
Du coup, je me demande s’il existe aussi une sorte de constante invariante dans le temps telle que la « complexité de calcul » d’une vue reste constante à tous les niveaux de zoom
Le fait qu’à chaque dézoom on sorte toujours par une autre partie du circuit est particulièrement frappant
Du coup, cela ne donne pas l’impression d’un fractal banalement répétitif, mais plutôt de regarder différentes parties d’une machine sous des angles temporels différents
On pourrait simplement considérer que le niveau de départ est en temps réel, avec l’aiguille des secondes qui tourne plus lentement dans les niveaux inférieurs et plus vite dans les niveaux supérieurs
Comme la grille est infinie, un niveau donné devrait pouvoir être complètement identique au niveau suivant, y compris dans toute son histoire
On pourrait alors identifier tous les niveaux les uns aux autres et les considérer en fait comme un seul et même niveau, ce qui rendrait l’espace comme le temps cycliques à l’échelle
Ce niveau unique pourrait malgré tout ne pas être répétitif, ni dans l’espace ni dans le temps
Quand j’ai zoomé pour la première fois, j’ai eu spontanément une réaction du genre : « mais qu’est-ce que c’est que ça ? »
Cela renverse complètement quelque chose qui m’était familier depuis plus de 20 ans, et c’est parmi les choses les plus incroyables que j’aie vues depuis longtemps
C’est le genre de chose qu’il ne faut pas juste lire dans les commentaires, il faut l’essayer soi-même
J’étais à deux doigts de fermer la page, puis je suis entré et je suis resté totalement fasciné
C’est vraiment remarquable
Rien qu’en regardant et en zoomant dans tous les sens, on a déjà énormément de matière à réflexion
Je suis d’accord sur le fait qu’il faut cliquer sur le lien
En général, je lis d’abord les commentaires pour vérifier s’il y a un paywall, une perte de temps, une énorme bannière ou un site douteux avant de décider de cliquer
En revanche, je suis très reconnaissant envers les gens qui lisent puis laissent des commentaires pour les autres
À chaque fois que j’apprends un nouveau langage, j’ai dû implémenter le Jeu de la vie de Conway au moins une douzaine de fois, et là je réfléchis déjà à la façon dont ceci a été réalisé
Selon l’implémentation, ne serait-ce que proposer quelques motifs d’exemple avec lesquels l’utilisateur peut démarrer peut être fastidieux, mais ce site semble avoir quasiment combiné des natures mortes, des oscillateurs et des vaisseaux spatiaux en un nombre infini de couches
Les motifs donnent l’impression de se répéter, mais rien que la construction de la couche de base est déjà très impressionnante
Je recommande vivement de mettre « darude - sandstorm » en fond pendant qu’on fait défiler
Le site semble crouler sous le trafic
Je pense réessayer dans quelques jours
C’est intéressant de voir que c’est écrit en Haxe
Je n’avais jamais entendu parler de ce langage, et je cherchais justement une sorte de « langage de hacker » capable de s’adapter à presque n’importe quelle niche ; c’est peut-être lui
En voyant le typage statique optionnel et la compilation vers plusieurs cibles, notamment C++, j’ai du mal à comprendre pourquoi il n’est pas plus populaire
On dirait un langage très pratique, conçu par des gens qui comprennent bien les besoins des développeurs
Si je me souviens bien, Haxe a été créé pour remplacer Flash
Je ne sais pas pourquoi il n’est pas plus populaire, mais pas mal de gens l’utilisent dans la communauté du jeu vidéo
Haxe est un langage assez bien installé, mais peu connu, et il reste toujours en position d’outsider
Cela dit, il est absolument excellent
Il possède aussi des macros capables de transformer l’arbre syntaxique abstrait (AST), ce qui permet des choses étonnantes à la compilation
Très peu de langages offrent ce genre de fonctionnalité de manière mature
Si vous n’aimez pas Lisp mais voulez un langage de hacker, Haxe mérite d’être essayé
Pour la même raison que beaucoup de très bonnes choses restent peu populaires
Ceux qui savent fabriquer des choses géniales sont souvent mauvais pour les mettre en avant, tandis que ceux qui excellent dans le baratin créent des produits complexes mais faciles à vendre, ce qui génère une attention disproportionnée
Haxe est vraiment sympa, et ça vaut le coup d’y jeter un œil si vous ne l’avez jamais utilisé
Je ne l’ai pas beaucoup pratiqué parce que je ne fais pas de jeux, mais ça donne un peu une impression de : « et si ActionScript 3 avait continué à évoluer en dehors du monde Flash ? »
J’aimerais bien l’utiliser davantage un jour, voire faire un jeu avec
Cela me rappelle de vieilles idées que j’avais pour créer une manière de fortement coupler les classes/la logique côté serveur en PHP et le côté client en JS pour créer des sites et des web apps
Je tombais souvent sur ce problème en construisant des formulaires basés sur HTML : même si le formulaire est défini en PHP, l’expérience utilisateur est meilleure quand ça fonctionne sans rechargement de page, donc en général on définit un objet TypeScript pour envoyer le formulaire en Ajax
Le fait de devoir définir les noms des champs des deux côtés est un cauchemar pour la maintenance, alors à la place j’avais fait en sorte que TypeScript demande en Ajax au serveur la liste des entrées nécessaires
Avec Haxe, ce genre de chose pourrait sans doute être fait de manière beaucoup plus propre : https://haxe.org/use-cases/web/
Il y a aussi quelques autres simulations sympas dans ce dépôt, mais celle-ci est de loin la meilleure
C’est l’une des idées autour du Jeu de la vie les plus étonnantes que j’aie vues depuis longtemps
Je me dis parfois que notre univers pourrait être comme ça lui aussi
On continue à chercher les particules les plus fondamentales, mais peut-être qu’il n’y en a pas
Peut-être que tout peut être zoomé à l’infini, et que nous ne percevons que notre propre niveau
La matière serait faite d’une autre matière, elle-même faite d’une autre matière, et ainsi de suite à l’infini
Et il pourrait aussi y avoir de la vie à d’autres niveaux
À l’intérieur d’un électron, par exemple, ou bien nous vivrions nous-mêmes à l’intérieur d’un être vivant immensément plus grand
Ça me fait penser à plusieurs choses
Que se passerait-il si on modifiait artificiellement la valeur d’une cellule ? J’ai l’impression que cela créerait du chaos et que le changement finirait par se propager à tous les niveaux, et j’aimerais vraiment le voir
Et pourrait-on faire en sorte que chaque cellule soit une simulation différente tout en continuant, à un niveau de zoom supérieur, à se comporter comme le Jeu de la vie de Conway ? Si les frontières sont respectées et que l’allumage et l’extinction se produisent au bon moment, ça semble possible, et je me demande où se situe la limite
Le niveau où la cellule a été modifiée serait détruit par une onde de chaos qui se propagerait vers l’extérieur depuis le point initial d’altération, en laissant derrière elle un motif de « cendres » assez ennuyeux
Les niveaux inférieurs ne seraient pas affectés et simuleraient fidèlement, avec leur mécanique intacte, le chaos qui se déroule au-dessus
Les niveaux supérieurs, eux, ne simuleraient plus le Jeu de la vie
La partie brisée du niveau inférieur apparaîtrait comme un point flou, ni blanc ni noir, et continuerait à grandir éternellement en devenant exponentiellement plus lente à mesure qu’on remonte
Si le fait de modifier artificiellement la valeur d’une cellule crée du chaos et que ce changement se propage à tous les niveaux, est-ce que ce serait une métaphore proche du cancer ?
Ce serait intéressant de voir comment cela se déploie, et si une sorte de « correction » ou d’« effet de système immunitaire » apparaît
C’est vraiment magnifiquement réalisé
Le Jeu de la vie est sans doute la première simulation que j’ai essayé de programmer, et j’y suis revenu à plusieurs reprises au fil des années
Même aujourd’hui, j’y repense chaque fois que des gens réfléchissent à des choses comme la conscience
Avons-nous en nous une sorte de poussière magique, ou ne sommes-nous que le résultat du déploiement de règles simples sur une immense scène ?
On peut prendre plaisir à observer le comportement émergent dans l’exécution de ce programme de 256 octets
C’est la naissance de l’esprit : https://www.youtube.com/watch?v=sWblpsLZ-O8
De même que les lois de la physique ne s’arrêtent pas aux frontières du crâne, il n’existe rien comme une souveraineté du soi
Mais si une pensée se considère comme le sujet qui pense ses propres pensées, cela n’importe à personne
D’ailleurs, il n’y a personne au départ, il n’y a que des pensées
Peut-être que les règles simples elles-mêmes sont cette « poussière magique »
Ce genre de structure Turing-complète apparaît un peu partout, et elles sont équivalentes entre elles sur bien des plans
Peut-être que cette structure sous-jacente est le socle de notre métaphysique, et que la réalité n’est qu’un nœud parmi ses possibilités permutationnelles
Les règles simples du Jeu de la vie sont peut-être un reflet émergent de la nature fondamentale d’une méta-réalité
Et c’est peut-être la présence de ce reflet dans notre structure neuronale et notre structure de sens qui constitue la « poussière magique » nécessaire à l’émergence de la conscience
Il existe aussi une superbe version du Jeu de la vie visualisée en 3D
Les frames temporelles précédentes s’empilent en dessous dans l’ordre, comme des racines qui poussent, et le tout est animé en projection isométrique
Ce n’est pas fractal comme cette œuvre, mais cela partage clairement la même ambiance à la croisée de l’art et de la science
AlecsForum : https://www.instagram.com/reel/C2hoRnFsmQW/
1 commentaires
Commentaires Hacker News
Ce qu’il y a de plus génial dans cette œuvre, à mon avis, c’est la façon dont le temps fonctionne
Comme une étape d’un niveau est calculée par la multitude d’étapes du niveau juste en dessous, plus on dézoome, plus on a l’impression de tomber dans un tourbillon exponentiel où une seule étape prend des jours, des années, voire des milliers d’années
Mais c’est astucieux que le simulateur ajuste la vitesse en douceur selon le niveau de zoom, au point d’effacer l’existence même du temps
J’aimerais bien qu’il y ait une indication de la quantité de temps de jeu qui s’écoule par seconde réelle, mais pour ça il faudrait définir un niveau comme niveau « de base », c’est-à-dire celui qui tourne en temps réel, et ça casserait sans doute la nature fractale de l’ensemble
Quelque chose comme : « La période de ce motif est 35328, donc après 35328 générations, la génération du méta-niveau avance de 1 »
On peut même considérer qu’un tel ralentissement temporel est nécessaire, car si l’auto-similarité du motif s’étend dans le temps et que deux niveaux fonctionnent avec des horloges différentes, alors il faut ralentir quand le niveau suivant apparaît pour correspondre à la vue animée auto-similaire du niveau précédent
Autrement dit, la structure du niveau n nécessite 35328 répétitions de la structure auto-similaire du niveau n+1, donc quand on ramène n+1 à une vue auto-similaire de n, il faut aussi ralentir n+1 pour faire correspondre l’auto-similarité temporelle
Du coup, je me demande s’il existe aussi une sorte de constante invariante dans le temps telle que la « complexité de calcul » d’une vue reste constante à tous les niveaux de zoom
Du coup, cela ne donne pas l’impression d’un fractal banalement répétitif, mais plutôt de regarder différentes parties d’une machine sous des angles temporels différents
Plus on monte, moins on subit la gravité, donc le temps passe plus vite
Référence : https://en.wikipedia.org/wiki/Gravitational_time_dilation
On pourrait alors identifier tous les niveaux les uns aux autres et les considérer en fait comme un seul et même niveau, ce qui rendrait l’espace comme le temps cycliques à l’échelle
Ce niveau unique pourrait malgré tout ne pas être répétitif, ni dans l’espace ni dans le temps
Quand j’ai zoomé pour la première fois, j’ai eu spontanément une réaction du genre : « mais qu’est-ce que c’est que ça ? »
Cela renverse complètement quelque chose qui m’était familier depuis plus de 20 ans, et c’est parmi les choses les plus incroyables que j’aie vues depuis longtemps
C’est le genre de chose qu’il ne faut pas juste lire dans les commentaires, il faut l’essayer soi-même
J’étais à deux doigts de fermer la page, puis je suis entré et je suis resté totalement fasciné
C’est vraiment remarquable
En général, je lis d’abord les commentaires pour vérifier s’il y a un paywall, une perte de temps, une énorme bannière ou un site douteux avant de décider de cliquer
En revanche, je suis très reconnaissant envers les gens qui lisent puis laissent des commentaires pour les autres
À chaque fois que j’apprends un nouveau langage, j’ai dû implémenter le Jeu de la vie de Conway au moins une douzaine de fois, et là je réfléchis déjà à la façon dont ceci a été réalisé
Selon l’implémentation, ne serait-ce que proposer quelques motifs d’exemple avec lesquels l’utilisateur peut démarrer peut être fastidieux, mais ce site semble avoir quasiment combiné des natures mortes, des oscillateurs et des vaisseaux spatiaux en un nombre infini de couches
Les motifs donnent l’impression de se répéter, mais rien que la construction de la couche de base est déjà très impressionnante
Je pense réessayer dans quelques jours
C’est intéressant de voir que c’est écrit en Haxe
Je n’avais jamais entendu parler de ce langage, et je cherchais justement une sorte de « langage de hacker » capable de s’adapter à presque n’importe quelle niche ; c’est peut-être lui
En voyant le typage statique optionnel et la compilation vers plusieurs cibles, notamment C++, j’ai du mal à comprendre pourquoi il n’est pas plus populaire
On dirait un langage très pratique, conçu par des gens qui comprennent bien les besoins des développeurs
Je ne sais pas pourquoi il n’est pas plus populaire, mais pas mal de gens l’utilisent dans la communauté du jeu vidéo
Cela dit, il est absolument excellent
Il possède aussi des macros capables de transformer l’arbre syntaxique abstrait (AST), ce qui permet des choses étonnantes à la compilation
Très peu de langages offrent ce genre de fonctionnalité de manière mature
Si vous n’aimez pas Lisp mais voulez un langage de hacker, Haxe mérite d’être essayé
Ceux qui savent fabriquer des choses géniales sont souvent mauvais pour les mettre en avant, tandis que ceux qui excellent dans le baratin créent des produits complexes mais faciles à vendre, ce qui génère une attention disproportionnée
Je ne l’ai pas beaucoup pratiqué parce que je ne fais pas de jeux, mais ça donne un peu une impression de : « et si ActionScript 3 avait continué à évoluer en dehors du monde Flash ? »
J’aimerais bien l’utiliser davantage un jour, voire faire un jeu avec
Je tombais souvent sur ce problème en construisant des formulaires basés sur HTML : même si le formulaire est défini en PHP, l’expérience utilisateur est meilleure quand ça fonctionne sans rechargement de page, donc en général on définit un objet TypeScript pour envoyer le formulaire en Ajax
Le fait de devoir définir les noms des champs des deux côtés est un cauchemar pour la maintenance, alors à la place j’avais fait en sorte que TypeScript demande en Ajax au serveur la liste des entrées nécessaires
Avec Haxe, ce genre de chose pourrait sans doute être fait de manière beaucoup plus propre : https://haxe.org/use-cases/web/
Vraiment stupéfiant
Il y a ici plus de détails sur son fonctionnement : http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1
Vraiment incroyable
Pour celles et ceux qui veulent voir comment ça fonctionne, voici le lien GitHub : https://github.com/saharan/works/tree/main/life
C’est l’une des idées autour du Jeu de la vie les plus étonnantes que j’aie vues depuis longtemps
Je me dis parfois que notre univers pourrait être comme ça lui aussi
On continue à chercher les particules les plus fondamentales, mais peut-être qu’il n’y en a pas
Peut-être que tout peut être zoomé à l’infini, et que nous ne percevons que notre propre niveau
La matière serait faite d’une autre matière, elle-même faite d’une autre matière, et ainsi de suite à l’infini
Et il pourrait aussi y avoir de la vie à d’autres niveaux
À l’intérieur d’un électron, par exemple, ou bien nous vivrions nous-mêmes à l’intérieur d’un être vivant immensément plus grand
Ça me fait penser à plusieurs choses
Que se passerait-il si on modifiait artificiellement la valeur d’une cellule ? J’ai l’impression que cela créerait du chaos et que le changement finirait par se propager à tous les niveaux, et j’aimerais vraiment le voir
Et pourrait-on faire en sorte que chaque cellule soit une simulation différente tout en continuant, à un niveau de zoom supérieur, à se comporter comme le Jeu de la vie de Conway ? Si les frontières sont respectées et que l’allumage et l’extinction se produisent au bon moment, ça semble possible, et je me demande où se situe la limite
Les niveaux inférieurs ne seraient pas affectés et simuleraient fidèlement, avec leur mécanique intacte, le chaos qui se déroule au-dessus
Les niveaux supérieurs, eux, ne simuleraient plus le Jeu de la vie
La partie brisée du niveau inférieur apparaîtrait comme un point flou, ni blanc ni noir, et continuerait à grandir éternellement en devenant exponentiellement plus lente à mesure qu’on remonte
Ce serait intéressant de voir comment cela se déploie, et si une sorte de « correction » ou d’« effet de système immunitaire » apparaît
C’est vraiment magnifiquement réalisé
Le Jeu de la vie est sans doute la première simulation que j’ai essayé de programmer, et j’y suis revenu à plusieurs reprises au fil des années
Même aujourd’hui, j’y repense chaque fois que des gens réfléchissent à des choses comme la conscience
Avons-nous en nous une sorte de poussière magique, ou ne sommes-nous que le résultat du déploiement de règles simples sur une immense scène ?
C’est la naissance de l’esprit : https://www.youtube.com/watch?v=sWblpsLZ-O8
Mais si une pensée se considère comme le sujet qui pense ses propres pensées, cela n’importe à personne
D’ailleurs, il n’y a personne au départ, il n’y a que des pensées
Ce genre de structure Turing-complète apparaît un peu partout, et elles sont équivalentes entre elles sur bien des plans
Peut-être que cette structure sous-jacente est le socle de notre métaphysique, et que la réalité n’est qu’un nœud parmi ses possibilités permutationnelles
Les règles simples du Jeu de la vie sont peut-être un reflet émergent de la nature fondamentale d’une méta-réalité
Et c’est peut-être la présence de ce reflet dans notre structure neuronale et notre structure de sens qui constitue la « poussière magique » nécessaire à l’émergence de la conscience
Il existe aussi une superbe version du Jeu de la vie visualisée en 3D
Les frames temporelles précédentes s’empilent en dessous dans l’ordre, comme des racines qui poussent, et le tout est animé en projection isométrique
Ce n’est pas fractal comme cette œuvre, mais cela partage clairement la même ambiance à la croisée de l’art et de la science
AlecsForum : https://www.instagram.com/reel/C2hoRnFsmQW/