Acho que a coisa mais legal nesta obra é a forma como o tempo funciona
Como uma etapa de cada nível é calculada a partir de inúmeras etapas do nível logo abaixo, quanto mais você dá zoom out, mais parece cair em um redemoinho exponencial em que uma etapa leva dias, anos ou milhares de anos
Mas é inteligente o fato de o simulador ajustar suavemente a velocidade conforme o zoom, apagando a própria existência do tempo
Eu gostaria que houvesse uma indicação de quanto tempo de jogo passa por 1 segundo real, mas, para isso, seria preciso escolher algum nível como o nível “base”, ou seja, o nível que roda em tempo real, e isso provavelmente quebraria a natureza fractal do todo
No texto que explica a implementação, depois de apresentar o conceito de padrão de metapixel, ele informa a “razão de clock” da periodicidade
É algo como: “o período deste padrão é 35328, portanto, ao avançar 35328 gerações, a geração do metanível avança em 1”
Dá até para dizer que esse atraso temporal é necessário, porque, se a autossimilaridade do padrão se estende ao longo do tempo e dois níveis operam com clocks diferentes, então é preciso desacelerar o próximo nível quando ele sobe para se alinhar à visão animada autossimilar do nível anterior
Ou seja, a estrutura do nível n exige 35328 repetições da estrutura autossimilar do nível n+1; portanto, ao puxar n+1 para a visão autossimilar de n, o n+1 também precisa desacelerar para alinhar a autossimilaridade baseada no tempo
Isso me faz pensar se existe algo como uma constante invariante no tempo em que a “complexidade computacional” de alguma visão se mantém constante em todos os níveis de zoom
É especialmente impressionante que, a cada zoom out, você sempre saia por uma parte diferente do circuito
Por isso, não parece um fractal comum que simplesmente se repete; fica a sensação de ver várias partes da máquina de ângulos temporais diferentes
Talvez bastasse considerar o nível inicial como tempo real e definir que o ponteiro dos segundos se move mais devagar nos níveis abaixo e mais rápido nos níveis acima
Como a grade é infinita, deveria ser possível que algum nível fosse completamente idêntico ao próximo nível, inclusive em toda a sua história
Então todos os níveis poderiam ser identificados uns com os outros e, na prática, vistos como o mesmo nível, tornando tanto o espaço quanto o tempo circulares em escala
Esse nível único ainda assim poderia não se repetir nem no espaço nem no tempo
Quando dei zoom pela primeira vez, minha reação inconsciente foi “que diabos é isso?”
Isso virou completamente do avesso algo com que eu estava familiarizado havia mais de 20 anos, e está entre as coisas mais legais que vi em muito tempo
Este é o tipo de coisa que você não deve apenas ler nos comentários: precisa executar por conta própria
Eu quase fechei a página, mas entrei e fiquei completamente hipnotizado
É realmente incrível
Só de olhar e dar zoom para lá e para cá já surge muita coisa para pensar
Concordo que é preciso clicar no link
Eu também normalmente leio os comentários primeiro para ver se há paywall, perda de tempo, banners enormes ou se parece um site fraudulento, e só então decido se clico
Por outro lado, sou muito grato às pessoas que leem o artigo e deixam comentários para o resto de nós
A cada nova linguagem que aprendo, já implementei o Jogo da Vida de Conway pelo menos uma dúzia de vezes, e já estou pensando em como isso foi implementado
Dependendo da implementação, já é trabalhoso incluir apenas alguns padrões de exemplo para o usuário começar, mas este site parece combinar naturezas-mortas, osciladores e espaçonaves em um número infinito de camadas
Os padrões parecem se repetir, mas só a composição da camada base já é muito impressionante
Recomendo fortemente colocar “darude - sandstorm” para tocar enquanto rola a página
O site parece ter sido derrubado pelo tráfego
Vou tentar de novo daqui a alguns dias
É interessante que tenha sido escrito em Haxe
Eu nunca tinha ouvido falar dessa linguagem, mas estava procurando uma “linguagem de hacker” que pudesse se encaixar em praticamente qualquer nicho, e talvez seja esta
Com tipagem estática opcional e compilação para vários alvos, especialmente C++, não entendo bem por que ela não é mais popular
Parece uma linguagem muito prática, criada por designers que entendem bem as necessidades dos desenvolvedores
Pelo que sei, Haxe foi criado para substituir o Flash
Não sei por que não é mais popular, mas há bastante gente usando na comunidade de jogos
Haxe é uma linguagem bem estabelecida, mas não muito conhecida, e sempre fica na posição de azarão
Ainda assim, é completamente excelente
Ela também tem macros capazes de transformar a árvore sintática abstrata (AST), o que permite fazer coisas surpreendentes em tempo de compilação
Pouquíssimas linguagens oferecem suporte maduro a esse tipo de recurso
Se você não gosta de Lisp, mas quer uma linguagem de hacker, vale a pena experimentar Haxe
É o mesmo motivo pelo qual coisas realmente boas em geral não são populares
Pessoas que fazem coisas legais bem feitas costumam ser ruins em promovê-las, enquanto, por outro lado, pessoas boas de bravata criam coisas complexas, porém fáceis de vender, e geram atenção exagerada
Haxe é bem bacana, e vale mexer nela se você nunca usou
Como não faço jogos, não usei muito, mas dá a sensação de “e se ActionScript 3 tivesse continuado a evoluir fora do mundo Flash?”
Algum dia quero usar mais e talvez fazer algo como um jogo
Isso me faz lembrar de ideias antigas que eu tinha para criar uma forma de acoplar fortemente classes/lógica do lado do servidor em PHP com o lado do cliente em JS ao criar sites e web apps
Eu passava por isso com frequência especialmente ao criar formulários baseados em HTML: mesmo definindo o formulário em PHP, como uma experiência sem recarregar a página é melhor para o usuário, normalmente eu definia objetos TypeScript e enviava o formulário via Ajax
Ter que definir os nomes dos campos dos dois lados era horrível para manutenção, então, em vez disso, fiz o TypeScript pedir ao servidor via Ajax a lista de entradas necessárias
Com Haxe, parece que esse tipo de trabalho poderia ficar muito mais limpo: https://haxe.org/use-cases/web/
Há algumas outras simulações interessantes nesse repositório, mas esta é de longe a melhor
A ideia mais surpreendente de Jogo da Vida que vi em muito tempo
Às vezes penso se o nosso universo não seria assim
Continuamos procurando as partículas mais fundamentais, mas talvez elas nem existam
Talvez tudo possa receber zoom infinitamente, e nós só percebamos o nosso próprio nível
A matéria é feita de outra matéria, que por sua vez é feita de outra matéria, e assim por diante, infinitamente
E pode haver vida em outros níveis também
Dentro de um elétron, por exemplo, ou talvez nós vivamos dentro de um ser vivo muito maior
Algumas ideias me ocorrem
O que aconteceria se alterássemos artificialmente o valor de uma célula? Parece que surgiria caos e a mudança acabaria se propagando por todos os níveis; eu gostaria de ver isso na prática
E será que dá para fazer cada célula ser uma simulação diferente e, ainda assim, em um zoom maior, continuar se comportando como o Jogo da Vida de Conway? Se ela mantiver as bordas e ligar e desligar nos momentos certos, parece possível, e fico curioso para saber onde estão os limites
O nível em que a célula foi alterada seria destruído por uma onda de caos se espalhando para fora a partir do ponto inicial de dano, deixando para trás um padrão tedioso de “cinzas”
Os níveis abaixo não seriam afetados e, com a técnica intacta, simulariam fielmente o caos acontecendo acima
Os níveis acima deixariam de simular o Jogo da Vida
A parte danificada do nível inferior pareceria um ponto turvo, nem branco nem preto, e cresceria para sempre, exponencialmente mais devagar conforme se sobe
Se alterar artificialmente o valor de uma célula gera caos e a mudança se propaga por todos os níveis, isso seria uma analogia parecida com câncer?
Seria interessante ver como isso se desenrola e se surge algum efeito de “correção” ou de “sistema imunológico”
Foi implementado de forma realmente linda
O Jogo da Vida provavelmente foi a primeira simulação que tentei fazer como programador, e depois voltei a ele ao longo de muitos anos
Ainda hoje ele me vem à mente sempre que as pessoas refletem sobre algo como consciência
Existe em nós algo como um pó mágico, ou somos apenas o resultado de regras simples se desenrolando em um palco gigantesco?
Talvez seja divertido ver o comportamento emergente que aparece na execução deste programa de 256 bytes
É a cena em que uma mente nasce: https://www.youtube.com/watch?v=sWblpsLZ-O8
Assim como as leis da física não param na fronteira do crânio, também não existe algo como soberania do eu
Mas ninguém se importa se um pensamento se considera o sujeito pensante de si mesmo
Para começo de conversa, não há ninguém; há apenas pensamentos
Talvez as próprias regras simples sejam o “pó mágico”
Essas estruturas Turing-completas aparecem por toda parte e, em muitos aspectos, são equivalentes entre si
Talvez essa estrutura subjacente seja a base da nossa metafísica, e a realidade seja apenas um nó entre suas possibilidades permutacionais
As regras simples do Jogo da Vida podem ser um reflexo emergente da natureza fundamental de uma metarrealidade
A presença desse reflexo em nossa estrutura neural e em nossa estrutura de significado talvez seja o “pó mágico” necessário para o surgimento da consciência
Também há uma versão legal que visualiza o Jogo da Vida em 3D
Os frames de tempo anteriores vão se empilhando em ordem para baixo, como raízes crescendo, e aparecem em animação numa perspectiva isométrica
Não é fractal como esta obra, mas certamente compartilha o clima de encontro entre arte e ciência
AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/
1 comentários
Opiniões no Hacker News
Acho que a coisa mais legal nesta obra é a forma como o tempo funciona
Como uma etapa de cada nível é calculada a partir de inúmeras etapas do nível logo abaixo, quanto mais você dá zoom out, mais parece cair em um redemoinho exponencial em que uma etapa leva dias, anos ou milhares de anos
Mas é inteligente o fato de o simulador ajustar suavemente a velocidade conforme o zoom, apagando a própria existência do tempo
Eu gostaria que houvesse uma indicação de quanto tempo de jogo passa por 1 segundo real, mas, para isso, seria preciso escolher algum nível como o nível “base”, ou seja, o nível que roda em tempo real, e isso provavelmente quebraria a natureza fractal do todo
É algo como: “o período deste padrão é 35328, portanto, ao avançar 35328 gerações, a geração do metanível avança em 1”
Dá até para dizer que esse atraso temporal é necessário, porque, se a autossimilaridade do padrão se estende ao longo do tempo e dois níveis operam com clocks diferentes, então é preciso desacelerar o próximo nível quando ele sobe para se alinhar à visão animada autossimilar do nível anterior
Ou seja, a estrutura do nível n exige 35328 repetições da estrutura autossimilar do nível n+1; portanto, ao puxar n+1 para a visão autossimilar de n, o n+1 também precisa desacelerar para alinhar a autossimilaridade baseada no tempo
Isso me faz pensar se existe algo como uma constante invariante no tempo em que a “complexidade computacional” de alguma visão se mantém constante em todos os níveis de zoom
Por isso, não parece um fractal comum que simplesmente se repete; fica a sensação de ver várias partes da máquina de ângulos temporais diferentes
Quanto mais alto você sobe, menos sofre a influência da gravidade e mais rápido o tempo passa
Referência: https://en.wikipedia.org/wiki/Gravitational_time_dilation
Então todos os níveis poderiam ser identificados uns com os outros e, na prática, vistos como o mesmo nível, tornando tanto o espaço quanto o tempo circulares em escala
Esse nível único ainda assim poderia não se repetir nem no espaço nem no tempo
Quando dei zoom pela primeira vez, minha reação inconsciente foi “que diabos é isso?”
Isso virou completamente do avesso algo com que eu estava familiarizado havia mais de 20 anos, e está entre as coisas mais legais que vi em muito tempo
Este é o tipo de coisa que você não deve apenas ler nos comentários: precisa executar por conta própria
Eu quase fechei a página, mas entrei e fiquei completamente hipnotizado
É realmente incrível
Eu também normalmente leio os comentários primeiro para ver se há paywall, perda de tempo, banners enormes ou se parece um site fraudulento, e só então decido se clico
Por outro lado, sou muito grato às pessoas que leem o artigo e deixam comentários para o resto de nós
A cada nova linguagem que aprendo, já implementei o Jogo da Vida de Conway pelo menos uma dúzia de vezes, e já estou pensando em como isso foi implementado
Dependendo da implementação, já é trabalhoso incluir apenas alguns padrões de exemplo para o usuário começar, mas este site parece combinar naturezas-mortas, osciladores e espaçonaves em um número infinito de camadas
Os padrões parecem se repetir, mas só a composição da camada base já é muito impressionante
Vou tentar de novo daqui a alguns dias
É interessante que tenha sido escrito em Haxe
Eu nunca tinha ouvido falar dessa linguagem, mas estava procurando uma “linguagem de hacker” que pudesse se encaixar em praticamente qualquer nicho, e talvez seja esta
Com tipagem estática opcional e compilação para vários alvos, especialmente C++, não entendo bem por que ela não é mais popular
Parece uma linguagem muito prática, criada por designers que entendem bem as necessidades dos desenvolvedores
Não sei por que não é mais popular, mas há bastante gente usando na comunidade de jogos
Ainda assim, é completamente excelente
Ela também tem macros capazes de transformar a árvore sintática abstrata (AST), o que permite fazer coisas surpreendentes em tempo de compilação
Pouquíssimas linguagens oferecem suporte maduro a esse tipo de recurso
Se você não gosta de Lisp, mas quer uma linguagem de hacker, vale a pena experimentar Haxe
Pessoas que fazem coisas legais bem feitas costumam ser ruins em promovê-las, enquanto, por outro lado, pessoas boas de bravata criam coisas complexas, porém fáceis de vender, e geram atenção exagerada
Como não faço jogos, não usei muito, mas dá a sensação de “e se ActionScript 3 tivesse continuado a evoluir fora do mundo Flash?”
Algum dia quero usar mais e talvez fazer algo como um jogo
Eu passava por isso com frequência especialmente ao criar formulários baseados em HTML: mesmo definindo o formulário em PHP, como uma experiência sem recarregar a página é melhor para o usuário, normalmente eu definia objetos TypeScript e enviava o formulário via Ajax
Ter que definir os nomes dos campos dos dois lados era horrível para manutenção, então, em vez disso, fiz o TypeScript pedir ao servidor via Ajax a lista de entradas necessárias
Com Haxe, parece que esse tipo de trabalho poderia ficar muito mais limpo: https://haxe.org/use-cases/web/
Realmente impressionante
Há mais detalhes sobre como funciona aqui: http://b3s23life.blogspot.com/2006_09_01_archive.html?m=1
Muito legal
Link do GitHub para quem quiser ver como funciona: https://github.com/saharan/works/tree/main/life
A ideia mais surpreendente de Jogo da Vida que vi em muito tempo
Às vezes penso se o nosso universo não seria assim
Continuamos procurando as partículas mais fundamentais, mas talvez elas nem existam
Talvez tudo possa receber zoom infinitamente, e nós só percebamos o nosso próprio nível
A matéria é feita de outra matéria, que por sua vez é feita de outra matéria, e assim por diante, infinitamente
E pode haver vida em outros níveis também
Dentro de um elétron, por exemplo, ou talvez nós vivamos dentro de um ser vivo muito maior
Algumas ideias me ocorrem
O que aconteceria se alterássemos artificialmente o valor de uma célula? Parece que surgiria caos e a mudança acabaria se propagando por todos os níveis; eu gostaria de ver isso na prática
E será que dá para fazer cada célula ser uma simulação diferente e, ainda assim, em um zoom maior, continuar se comportando como o Jogo da Vida de Conway? Se ela mantiver as bordas e ligar e desligar nos momentos certos, parece possível, e fico curioso para saber onde estão os limites
Os níveis abaixo não seriam afetados e, com a técnica intacta, simulariam fielmente o caos acontecendo acima
Os níveis acima deixariam de simular o Jogo da Vida
A parte danificada do nível inferior pareceria um ponto turvo, nem branco nem preto, e cresceria para sempre, exponencialmente mais devagar conforme se sobe
Seria interessante ver como isso se desenrola e se surge algum efeito de “correção” ou de “sistema imunológico”
Foi implementado de forma realmente linda
O Jogo da Vida provavelmente foi a primeira simulação que tentei fazer como programador, e depois voltei a ele ao longo de muitos anos
Ainda hoje ele me vem à mente sempre que as pessoas refletem sobre algo como consciência
Existe em nós algo como um pó mágico, ou somos apenas o resultado de regras simples se desenrolando em um palco gigantesco?
É a cena em que uma mente nasce: https://www.youtube.com/watch?v=sWblpsLZ-O8
Mas ninguém se importa se um pensamento se considera o sujeito pensante de si mesmo
Para começo de conversa, não há ninguém; há apenas pensamentos
Essas estruturas Turing-completas aparecem por toda parte e, em muitos aspectos, são equivalentes entre si
Talvez essa estrutura subjacente seja a base da nossa metafísica, e a realidade seja apenas um nó entre suas possibilidades permutacionais
As regras simples do Jogo da Vida podem ser um reflexo emergente da natureza fundamental de uma metarrealidade
A presença desse reflexo em nossa estrutura neural e em nossa estrutura de significado talvez seja o “pó mágico” necessário para o surgimento da consciência
Também há uma versão legal que visualiza o Jogo da Vida em 3D
Os frames de tempo anteriores vão se empilhando em ordem para baixo, como raízes crescendo, e aparecem em animação numa perspectiva isométrica
Não é fractal como esta obra, mas certamente compartilha o clima de encontro entre arte e ciência
AlecsForum: https://www.instagram.com/reel/C2hoRnFsmQW/