Desenho junto com o Giovani Castelucci os cartazes para o IBR, evento de música experimental idealizado pelo Ibrasotope. A cada ano pensamos num tema ou partido projetual que irá guiar os cartazes do ano todo. Esse ano definimos que todos os cartazes vão ser com animação ou vídeo.
Simulação de cordas vibrando
O [ibr123] terá só participantes com instrumentos de corda. O Giovani lembrou do efeito da vibração das cordas ao serem tocadas sendo filmadas com captura em alta velocidade:
Nosso objetivo era então de certa forma reproduzir essas vibrações de uma forma bem gráfica para o cartaz. Iniciei algumas pesquisas sobre esse tipo de simulação física e achei várias coisas interessantes como a Equação de Schrödinger e esse vídeo épico de demonstração dela:
Pensei em tentar converte-la para o NodeBox, porém com minhas habilidades matemáticas seria bem complicado. Buscando mais referências encontrei três artigos bem interessantes:
- um sobre a vibração de uma corda com pontos fixos (The Vibration of a Fixed-Fixed String);
- na mesma página um sobre sobreposições de ondas (Superposition of Waves), e;
- outro sobre sobreposições de ondas (http://firsttimeprogrammer.blogspot.com/search?q=wave)
O segundo artigo e terceiro artigo mostram algo simples de fazer no NodeBox, que é a combinação de duas ondas de períodos diferentes. Utilizando os nó Wave, Add e Multiply é possível fazer diversas combinações de tipos ondas para chegar em resultados que lembram a vibração de cordas.
Ondas combinadas no NodeBox
Acho que um dos nós mais legais do NodeBox é o Wave, eu uso muito para criar animações onde preciso de um movimento suave e cíclico. Ele basicamente tem três entradas:
- Mínimo e máximo: controlam qual será o pico máximo e mínimo da onda;
- Período: é o comprimento da onda;
- Offset: é um momento específico na onda.
- Tipo: o tipo da onda, sinuosa, triangular, quadrado ou “serrote”
Fiz algumas animações para compreender como esses valores modificam o desenho da onda:
Não explorei as variações de tipo de onda, pois isso rende um outro post.
Analisando as animações anteriores e pensando apenas nas variáveis de entrada mínimo, máximo e período é possível desenhar e animar diversas ondas diferentes e sobrepô-las resultando em algo parecido com o vibrar de uma corda:
A partir disso a produção do cartaz foi criar uma série de ondas variando suas entradas e combina-las para obter cordas de diferentes “vibrações”. Além das ondas acrescentei uma fator de ruído para que as cordas ficassem menos uniformes, chegando no resultado final abaixo:
O código e arquivos finais podem ser visto no link: