marginalia 1.0 BETA - GestureMapping software

O software GestureMapping em sua versão 1.1.1, desenvolvido em Processing pelos integrantes do Projeto Marginalia, é responsável pela interpretação de dados que origina o vídeo projetado no ambiente da instalação planejada pelo projeto.

A interface visual/experiencial da instalação consiste, superficialmente, de uma projeção sobre a qual o espectador pode interferir através do uso de dispositivos de iluminação; e lanternas que serão fornecidas no ambiente expositivo para este fim. Na estrutura profunda, equipamentos interconectados possibilitam captura e exibição de vídeo em tempo real, bem como a interação do espectador com o sistema.

Relação dos equipamentos e interconexão.

Uma câmera filma uma determinada área e está conectada ao computador por FireWire possibilitando a captura do vídeo em tempo real; um computador, utilizando o software GestureMapping 1.1.1, processa as imagens e mescla o vídeo em tempo real com outro que é exibido em loop; por último, um projetor projeta o resultado também em tempo real exatamente sobre a mesma área captada pela câmera.

Neste processo, a interação entre todos os elementos de hardware é mediada pelo software GestureMapping 1.1.1, cujas funções são, em linhas gerais:
  • receber informações da câmera;
  • interpretar a imagem capturada seguindo parâmetros definidos a priori;
  • mesclar as informações visuais da imagem capturada em tempo real com frames de um vídeo exibido em loop;
  • fornecer output de vídeo para ser projetado em tempo real, perpetuando o ciclo.

Inicialmente, o software cria um conjunto de valores [array] cujo número de elementos é igual ao número de pixels do vídeo capturado, de modo que cada elemento deste array é indexado a um pixel da imagem. Então, ele interpreta a imagem capturada da câmera de vídeo frame a frame, fazendo uma triagem dos seus pixels de acordo com seu nível de brilho. Um valor-limite [threshold], estabelecido previamente pelo usuário, é comparado com o valor de brilho do pixel iluminado e, de acordo com o resultado [maior, menor ou igual] o programa determina qual função matemática seguir para alterar os valores do elemento correspondente no array criado. Se o valor de brilho do pixel for maior ou igual ao valor threshold [ou seja, se o espectador o tiver iluminado], o valor do elemento correspondente da array é aumentado; se ele for menor, o valor é diminuído [mas a um fator menor que o da primeira alternativa].

Este processo é repetido para todo pixel da imagem. Uma vez analisados todos os pixels, os valores do array são transpostos aos pixels da imagem de modo a determinarem o brilho de cada pixel desta imagem em uma escala de 0 [preto] a 255 [branco]. O processo se reinicia para o frame seguinte, porém mantidos os valores armazenados no array na análise do frame, como base para as operações do frame que segue. Desta forma, ao transpor os valores do array para os pixels correspondentes da imagem, forma-se a figura de um rastro de luz que se forma e desvanece gradativamente - à medida que as porções são iluminadas [ou deixam de ser iluminadas] pelo espectador.

Esquema simplificado de funcionamento do software.

A imagem produzida com base nas informações armazenadas no array é, então, mesclada - utilizando-se multiply - com um vídeo oculto reproduzido em loop constante. A mesma serve como uma máscara que define as áreas visíveis ou não do vídeo. O método de mesclagem multiply possibilita que as áreas pretas se mantenham pretas impossibilitando a visualização de qualquer camada inferior àquela em que o método foi aplicado, enquanto áreas claras definem o grau de transparência da camada, possibilitando, assim, a visualização - nestas áreas - de camadas inferiores.

Finalmente, a imagem projetada, após sofrer as interferências do software, é atualizada completando o ciclo.

Nenhum comentário: