terça-feira, 4 de outubro de 2011

Projeto Amoreiras

Processo do Projeto

Cinco pequenas amoreiras foram plantadas em grandes vasos, na Avenida Paulista, em São Paulo. A captação da "poluição" é feita através de um microfone, que mede as variações e discrepâncias de ruídos, como um sintoma dos diversos poluentes e poluidores. O balançar dos galhos é provocado por uma "prótese motorizada" (disposta ao redor do tronco de cada árvore, a prótese vibra, causando movimentos nas folhas e nos galhos). A observação e o amadurecimento do comportamento das "árvores" são possibilitados a partir de um algoritmo de aprendizado artificial. Ao longo dos dias, as árvores vibram em diálogo com a variação dos fatores de poluição, numa dança de árvores, próteses e algoritmos, tornando aparente e poético o balançar, às vezes (in)voluntário-maquínico, às vezes conduzido pelo balanço do próprio vento sobre as folhas.

O Projeto Amoreiras é composto basicamente pelos seguintes elementos:

- 5 amoreiras;
- 3 microfones, que captarão os ruídos (um dos quais é responsável pela leitura da trepidação do chão, decorrente da passagem do metrô e de outras interferências) e funcionarão como sensores e coletores dos dados para as árvores;
- 1 computador, que gerencia os dados das 5 árvores e retransmite as informações;
- 5 placas arduino bluetooth (uma para cada árvore);


- 5 caixas de acrílico com 3 motores independentes, varetas e mecanismo de transmissão (uma para cada árvore).

O comportamento de cada árvore é autônomo e se dá em resposta à intensidade do som ambiente, também sendo influenciado pela "personalidade" de cada árvore. A captura do som é realizada diretamente por um patch escrito no Pure Data, que envia as informações para a aplicação principal, desenvolvida em Java, via OSC. Já a "personalidade" de cada árvore, é definida por duas variáveis, sorteadas no início de cada dia, que definem o quanto cada árvore irá buscar imitar as suas companheiras e o quanto o seu comportamento será perturbado de forma aleatória.

Cada árvore tem um algoritmo que determina como ativar seus motores (via arduíno) de acordo com a atividade sonora. De uma maneira geral, quanto maior o ruído, maior a atividade. É importante ressaltar que há regras adicionais, como, por exemplo, a intensidade e a extensão da vibração, para que os movimentos sejam suaves, ou o limite de duração de tempo, período em que se pode balançar as árvores sem que elas sejam danificadas.

As árvores podem "ver" o comportamento das outras árvores, de modo que cada uma é influenciada pelo comportamento das vizinhas. Essa capacidade é utilizada pelo algoritmo do trabalho para avaliar o "comportamento" de cada árvore. Por "comportamento", entendemos o nível de ativação dos motores: quanto mais parecido for o comportamento de uma árvore com o comportamento das demais, melhor avaliado será seu comportamento.

Inicialmente, o algoritmo é "não habituado", o que leva a comportamentos "sem sentido" (por exemplo, as árvores balançarem mesmo sem que haja ruído). Um algoritmo de aprendizado monitora o banco de dados e observa constantemente o comportamento de cada árvore, comparando-o com a atividade sonora, e tenta adaptar o algoritmo para que este possa agir de maneira similar. Isto é: o algoritmo de aprendizado tenta fazer com que o algoritmo de cada árvore chegue ao mesmo nível de ativação que os das demais em uma dada intensidade sonora.

Existe uma grande variedade de algoritmos de aprendizagem; alguns tão complexos, que podem ser aplicados até mesmo à simulação de processos mentais humanos. Para este projeto, basta um algoritmo simplificado, que atinja um nível de complexidade suficiente para que o resulta do final seja interessante e emergente. O funcionamento seria basicamente o seguinte: para as cinco árvores aprendizes, haveria equações similares que guiariam seus comportamentos, com apenas uma variável adicional para cada uma. O aprendizado seria o processo de modificar o valor dessa variável, até que as equações se aproximassem em reação à excessiva poluição. De acordo com o resultado prático dessa abordagem, os parâmetros poderiam ser regulados, de forma a obter o comportamento desejado, que é indeterminado a priori para cada uma das distintas árvores, gerando uma "dança da chuva" espontânea e coletiva.

Para a realização do algoritmo das amoreiras, nos orientamos pelos princípios do jogo da vida, de John Conway. Isto é: temos um conjunto de regras simples, que dão origem a um resultado complexo.

Entretanto, devemos observar que o comportamento final não é especificado pelas regras, apesar de derivar delas.

O que fazemos é aplicar princípios de vizinhança ao processo de autoavaliação das amoreiras. Quer dizer: o comportamento de duas (ou de apenas uma, se a amoreira estiver em uma das extremidades) amoreiras adjacentes possui um peso maior do que o das amoreiras mais distantes (o que poderia facilitar a ocorrência de comportamentos com possíveis combinações de acionamento dos motores).

Todos os algoritmos citados acima são a princípio programados em Java, rodando no computador7. Por conta das limitações de processamento da Arduíno e da sua incapacidade de armazenar dados, a placa só será usada como uma interface entre a aplicação desenvolvida em Java e os motores. Também estão sendo utilizados o banco de dados MySQL, para registrarmos o comportamento de cada amoreira ao longo da exposição, e um pequeno sistema de monitoramento, escrito em PHP, que é acionado pela aplicação em Java, em caso de erro8. Ao ser acionado, o sistema de monitoramento envia e-mails aos integrantes do grupo, relatando o erro ocorrido.

Na prática, o resultado esperado é o seguinte:

• As árvores irão balançar isoladamente, de vez em quando, de acordo com o ruído ambiente, de forma a se livrar da poluição em suas folhas.

• As árvores irão agir de maneira inicialmente arbitrária e ao longo do dia passarão também a dialogar entre si, entrando cada vez mais em uma sintonia emergente.

Algumas observações:

• As árvores são todas jovens e cada uma delas é tratada como um indivíduo. Seus motores e caixas-próteses são similares, mas não idênticas, adaptando-se de forma adequada a cada uma delas, sem machucá-las.

• Ao término de cada dia, as "personalidades" das árvores são alteradas de maneira randômica, de forma a reiniciar o processo de aprendizagem. Isso impede que, a partir do primeiro dia, todas as árvores já estejam "em sintonia fechada" e não mudem mais de comportamento; ao contrário, permite que construam ciclos e ritmos emergentes e que continuem buscando distintas aproximações entre si, como numa dança de folhas e árvores, com suas próteses poéticas, que se rebelam contra a fuligem, em meio a barbárie urbana. Como se as árvores da cidade se agitassem para denunciar a sujeira do ar9, lembrando-nos também do perigo em que vivemos e da situação que ajudamos a gerar.






Nenhum comentário:

Postar um comentário