Atratores Estranhos (Strange Attractors)
(blog.shashanktomar.com)- Projeto que visualiza atratores estranhos (Strange Attractors) com Three.js, mostrando como padrões complexos e belos são gerados a partir de equações matemáticas simples
- Explica os conceitos básicos de sistemas dinâmicos (Dynamical Systems) e teoria do caos (Chaos Theory), com foco no estado de um sistema que muda ao longo do tempo e nas regras que determinam sua evolução
- Atratores estranhos são definidos por quatro características: estrutura fractal, sensibilidade às condições iniciais, trajetórias aperiódicas e ordem dentro do caos
- Mostra o efeito borboleta por meio da visualização do Thomas Attractor, apresentando como pequenas mudanças no parâmetro
acriam padrões completamente diferentes - Implementa visualização em tempo real ao calcular e renderizar milhares de partículas com eficiência usando a técnica de ping-pong rendering baseada em GPU
Sistemas dinâmicos e teoria do caos
-
Sistemas dinâmicos são uma forma de modelar matematicamente fenômenos que mudam com o tempo, incluindo exemplos como movimento dos planetas, crescimento populacional e mercado de ações
- São compostos pelo espaço de fases (Phase Space), que representa todos os estados possíveis do sistema, e pela dinâmica (Dynamics), que desloca o sistema de um estado para o próximo
- Por exemplo, em um modelo de crescimento populacional, o tamanho da população e a taxa de crescimento formam os estados no espaço de fases, enquanto taxa de natalidade, taxa de mortalidade e capacidade de suporte ambiental determinam a dinâmica
-
Teoria do caos (Chaos Theory) é o campo que estuda sistemas imprevisíveis, e muitos fenômenos naturais pertencem a esses sistemas não lineares e sensíveis
- Explica situações em que existem regras, mas a previsão se torna impossível por causa de informações incompletas
- Uma característica representativa é o efeito borboleta, em que pequenas diferenças nas condições iniciais alteram drasticamente o resultado
Atrator (Attractor) e atrator estranho (Strange Attractor)
-
Um atrator (Attractor) é um conjunto de estados para os quais o sistema converge com o passar do tempo; por exemplo, o ponto de repouso de um pêndulo
- A convergência para um atrator ocorre por fatores como estabilidade, dissipação de energia (Dissipation) e contração (Contraction)
-
Um atrator estranho (Strange Attractor) é um atrator que apresenta trajetórias imprevisíveis devido a equações não lineares complexas, com as seguintes características
- Estrutura fractal: padrões complexos que se repetem em diferentes escalas
- Sensibilidade às condições iniciais: pequenas mudanças levam a resultados completamente diferentes
- Trajetórias aperiódicas: não repetem o mesmo caminho
- Ordem dentro do caos: embora pareça aleatório, existe uma estrutura interna consistente
Efeito borboleta e visualização do Thomas Attractor
- O efeito borboleta é o fenômeno em que pequenas mudanças produzem grandes diferenças no longo prazo, frequentemente explicado pela metáfora de que “o bater de asas de uma borboleta na China provoca um furacão no Caribe”
- Ao alterar o valor do parâmetro
ado Thomas Attractor para 0.10, 0.13, 0.19, 0.21 etc., as trajetórias das partículas e a forma geral mudam completamente - Ao mudar o estado inicial entre
cubeesphere surface, as partículas seguem caminhos diferentes, mas acabam convergindo para o mesmo estado de atrator
Detalhes de implementação
- A visualização usa Three.js para calcular e renderizar diretamente na GPU um grande número de partículas
- Com a técnica de ping-pong rendering, minimiza a transferência de dados entre CPU e GPU usando alternadamente dois objetos de framebuffer (FBO)
- Os buffers
pingepongarmazenam, respectivamente, o estado atual e o próximo estado - Um programa de shader atualiza a posição de cada partícula de acordo com a equação do atrator
- A cada frame, os buffers são alternados e o novo estado das partículas é renderizado
- Os buffers
Referências e materiais adicionais
- Como materiais relacionados, são citados visualizações de atratores de Maxim, Wikipedia: Attractor, List of Chaotic Maps e WebGLFundamentals: Ping Pong Rendering
- Como exemplos adicionais, são apresentados casos de visualização 3D de atratores em chaoticatmospheres.com, dynamicmath.xyz e Reddit r/generative
- O autor está recebendo feedback na página GitHub Discussion do blog, com integração ao blog prevista para o futuro
Ainda não há comentários.