• Nenhum resultado encontrado

Características do Processing

2.2 A LINGUAGEM DE PROGRAMAÇÃO PROCESSING

2.2.1 Características do Processing

Quando se excuta a linguagem Processing, na verdade se executa a linguagem de programa Java. Talvez pelo fato dessa plataforma conseguir fazer com que se escreva um código muito mais simples do que se precisaria escrever se se estivesse trabalhando em Java puro, ela passa a se tornar mais receptível a leigos e a não programadores.

Uma característica muito interessante nessa linguagem é o fato de se poder realizar praticamente qualquer coisa utilizando seus comandos, principalmente no contexto artístico. O Processing torna mais fácil escrever software para desenho e animação e reagir ao ambiente, e programas são facilmente estendidos para integrar com outros tipos de mídia, incluindo áudio, vídeo e eletrônicos. Versões modificadas do Processing existem em telefones móveis e programas de microcontroladores (REAS, FRY, 2007 p. 633).

35 John Maeda - designer e professor de Artes Midiáticas e Ciências no Massachussets Institute of Technology (MIT), é um dos mais conhecidos designers e pioneiros das artes digitais no mundo, influenciando a geração de “code artists”.

Sua interface é composta basicamente por um simples editor de texto para códigos escritos, uma área de mensagem, um console de texto, guias para gestão de arquivos, uma barra de ferramentas com botões para ações comuns e uma série de menus. Quando programas são executados, eles abrem em uma nova janela chamada janela de exibição (display window).

Segundo Reas e Fry (2007), o Processing pode ser utilizado em diversos segmentos:

• Entrada e resposta - podem-se executar linhas de programação, onde uma entrada (estímulo) resulta em alguma reação do hardware.

• Tipografia animada - a tipografia poderá ter movimentos cinéticos com o auxílio do Processing, sendo utilizado, por exemplo, em cinema e televisão.

• Processing de imagem - técnicas de manipulação e modificação de imagens no intuito de, por exemplo, corrigir um defeito, melhorar seu apelo estético ou facilitar sua comunicação, acessando diretamente os pixels36 .

• Movimento e matrizes - movimentos do tipo “motion” não lineares, sinusoides, curvos, que podem gerar “imprevisibilidade”.

• Formas cinéticas - desenhos do estilo cinético. Artistas exploram essa programação para posicionar seus desenhos em um novo patamar, pois conseguem integrar o tempo, a resposta e o comportamento com seus desenhos. • Interface - códigos usados para deixar os elementos de uma interface gráfica combinando com o mouse, tornando sua utilização intuitiva.

36 Menor unidade de uma imagem Bitmap

Fig. 61 e 62. Da esq. para a dir.: Tela de abertura e janela principal

do Processing .

• Estrutura e Interface: integração de elementos de software, incluindo variáveis de controle, estruturas, matrizes e objetos em conjunto com elementos visuais, movimento e resposta.

• 3D: ambientes interativos e simulados em 3D, como, por exemplo, em jogos, medicina, arquitetura, arte, engenharia e design industrial.

• Visão: algoritmos de visão computacional que podem criar em tempo real relatórios sobre as identidades das pessoas, localização, movimentos gestuais, expressões faciais, características dos passos, indicações do olhar e outros atributos cada vez mais incorporados dentro da arte educacional midiática e dentro da criação de jogos, obras de arte e muitas outras aplicações.

• Rede: tendo como exemplo a grande rede da internet, artistas incorporaram esta tecnologia em seu trabalho. Há duas tendências gerais: fazer arte onde a internet é usada como uma ferramenta para a difusão rápida e fácil da obra e fazer arte onde a internet é o meio efetivo do trabalho. Essas duas tendências, no entanto, não são mutuamente exclusivas. Alguns dos trabalhos mais interessantes on- line tecem as duas técnicas em conjunto e podem ultrapassar os de uma ou outra técnica.

• Música: pode-se usar uma variedade de técnicas e ferramentas que estão disponíveis para trabalhar computacionalmente o som, devido à integração estreita da tecnologia digital com criações sonoras, principalmente durante a última metade do século.

• Mobile: o Mobile Processing fornece uma maneira de escrever aplicativos de software personalizados para telefones celulares que podem utilizar suas características incorporadas ao hardware, bem como se conectar à internet e se comunicar com servidores que fornecem poder computacional e dados adicionais.

• Eletrônica: em conjunto com uma placa lógica de patente Arduino, podem- se realizar diversas atividades em objetos, como impressoras, elevadores, brinquedos, máquinas de lavar. Em obras artísticas – tal qual Marcel Duchamps utilizou motores elétricos em sua época –, podem realizar obras de arte interativas, sendo controladas por componentes eletrônicos e microcontroladores por software.

2.2.2 Funções randômicas

Para melhor entendimento de como o design gerativo se processa em uma linguagem de programação, buscou-se trazer as explicações sobre quais sintaxes da linguagem Processing37 estariam mais associadas com este conceito, através do livro

de Ben Fry e Casey Reas.

Os autores comparam a forma gerativa de uma criação artística ao caos, em que os computadores são máquinas que fazem cálculos consistentes e precisos e devem, portanto, simular números aleatórios para o tipo aproximado de operações casuais utilizados na arte não digital. Existe um evidente contraste entre a estrutura rígida e o caos completo, e algumas das experiências mais satisfatórias estéticas são criadas pela infusão de um no outro (p. 154).

De acordo com Valadares (2011, p. 82), os programas em Processing recebem a denominação de sketch. Um sketch possui uma estrutura básica, que pode ser modificada, mas que é utilizada na maioria dos projetos de artes visuais.

void setup( ) { }

void draw ( ) { }

A instrução setup( ) tem a função de efetuar configurações iniciais, que serão efetuadas sempre que o programa for executado. A instrução draw( ) executa continuamente o código escrito abaixo dela, condição necessária para a programação de animações e eventos interativos.

Entendemos, então, que o design gerativo, quando programado na linguagem Processing, possui, entre alguns fatores (se somados a outras linguagens de programação), sintaxes principais inseridas dentro dessa estrutura básica, que são:

Função aleatória (random)

Sintaxes

37 Cf.: REAS, Casey. Processing: a programming handbook for visual designers and artists / Casey Reas & Ben Fry ; foreword by John Maeda. USA: MIT Press books. 2007.

random( ), randomSeed( ), noise( ), noiseSeed( )

Essa função é usada para criar valores imprevisíveis dentro da faixa de especificação por seus parâmetros.

random(high) random(low, high)

Os valores atribuídos na sintaxe random( ) não são previsíveis. Cada vez que o programa é executado, o resultado é diferente. Os números desta função podem ser usados para controlar praticamente qualquer aspecto de um programa. Se colocarmos a sintaxe random( ) com dois parâmetros, existirá um maior controle sobre os resultados da função.

Usando-a em uma estrutura, podem ser gerados números aleatórios de uma maneira relativamente fácil. Às vezes, podem ser incluídos números imprevisíveis nos programas. A função randomSeed( ) é a sintaxe para a produção de tais números.

Sintaxe

randomSeed(value)

Alterando o valor do parâmetro determinado para randomSeed( ), pode ser gerado um conjunto diferente de números e, desse modo, por exemplo, alterar-se uma imagem produzida pelo programa.

A função noise( ) (ruído) é uma sintaxe mais controlável para criar valores inesperados. Ela usa a técnica Perlin Noise, desenvolvida por Ken Perlin, trabalhando por interpolação entre valores randômicos para criar transições suaves entre os números retornados da função random( ). A função noise ( ) tem entre um e três parâmetros:

Sintaxe noise(x) noise(x, y) noise(x, y, z)

A versão da função com um parâmetro é utilizada para criar uma única sequência de números aleatórios. A versão com dois parâmetros pode ser usada para criar uma textura bidimensional. A versão com três parâmetros pode ser utilizada para criar uma forma ou textura tridimensional, ou ainda uma textura animada bidimensional.

Segundo Siebra (2010, p. 7), as instruções do algoritmo devem estar em uma sequência lógica, ou seja, deve existir uma ordem de execução dos passos da sequência sem ambiguidades. Além disso, um algoritmo sempre produz um ou mais resultados (saídas ou outputs), podendo não exigir dados de entrada. Através da compreensão da operacionalidade de uma programação pode-se, então, compreender onde reside o design processo.

Vários são os artistas que têm utilizado esta nova linguagem em seus trabalhos: Jer Thorp, Yannick Mathey, Constanza Casas, Mark C Mitchell, Pieter Steyaert, Mark McKeague, Leonardo Solaas, Dimitre Lima, Binho Dias etc. Selecionamos dois deles no Brasil - Paulo Costa e Wilton Azevedo – e um profissional estrangeiro – Cédric Kiefer (Alemanha), por lidarem com este conceito na atualidade em seus trabalhos de repercussão internacional.

TERCEIRO CAPÍTULO

ANÁLISE DE TRABALHOS

Neste capítulo são analisados trabalhos de artistas selecionados que desenvolvem trabalhos com design processo. Tendo em vista a enorme quantidade de profissionais que lidam com essa categoria, o critério de seleção baseou-se em profissionais cujos trabalhos tivessem sido reconhecidos e/ou mencionados. Outro critério foi no sentido de se entender que seus trabalhos são gerados e exibidos a partir da execução de um algoritmo, escrito em alguma linguagem de programação (tendo preferencialmente a inclusão da linguagem Processing), e executados através de um sistema computacional, podendo ou não ter a participação direta de algum expectador, mas que tenha inequivocamente o caráter gerativo (ou seja, que não possua a percepção do que seja início ou fim e sim o processo como linguagem).

Foram escolhidos dois profissionais brasileiros – Paulo Costa e Wilton Azevedo – e um profissional estrangeiro – Cédric Kiefer (Alemanha). Apesar da diversidade de estilo de trabalho, os projetos desses artistas apresentam semelhança e conexão, em especial em relação ao conceito do design processo e intercodicidade.

3.1 PAULO COSTA

3.1.1 Dados

Artista desde 1992, com instalações, participações em mostras e prêmios conquistados, Costa38 comenta que seus primeiros trabalhos já apresentavam

imagens em movimento, integradas com o espaço físico. Utilizava projetores de filme (super-8 ou 16 mm) que funcionavam em looping. Eram trabalhos que estavam ligados à multimídia, ao cinema expandido e à cibernética. De uma forma oportuna e pelas facilidades de viabilização dos trabalhos, ele optou posteriormente pela programação como forma de controlar as exibições. Para Costa, nesse período não fazia sentido traçar questionamentos sobre a natureza do código e suas especificidades (como ele questionava com relação ao cinema).

Devido a seu contato com a performance através do grupo Neotao, Costa foi levado a uma pesquisa sobre a integração de outros dispositivos, como os sensores. Nesse caso, a necessidade sobre um certo tipo de controle e edição o levou ao planejamento sobre acoplamentos entre corpo-software-dispositivo-imagem. Essa transição resultou em seu afastamento dos suportes tradicionais e da pesquisa sobre o desenho e a fotografia. A prática do desenho sempre foi mais natural em termos de produção e atualmente o motiva a compreender as reais possibilidades do código enquanto formalização de um tipo de pensamento, visualidade ou estrutura. Hoje em dia, Costa utiliza as seguintes linguagens de programação: Processing, devido à facilidade de uso, à disponibilidade de tutoriais, bibliotecas de códigos e grande base de usuários e criadores com os quais se podem trocar informações; OpenFrameworks (baseados na linguagem C++) e Opencl, pela otimização de alguns de seus trabalhos. Para Costa, a programação contribui efetivamente para o processo projetual, visto que é um meio de se expandir o próprio pensamento criativo. Para ele, certos projetos de design (gráfico, industrial, digital, arquitetônico), principalmente aqueles que se confrontam com altos níveis de complexidade, que tomam um grande número

38 Paulo Costa é formado em Análise de Sistemas (PUCC - Puc Campinas), Artes Plásticas (UNICAMP - Universidade de Campinas) e mestre em Multimeios (ECA/USP - Escola de Comunicação e Artes - Universidade de São Paulo). Atualmente é professor nos cursos de Artes e Novas Mídias, Design Digital e Games da Escola de Artes, Arquitetura, Design e Moda (UAM -Universidade Anhembi Morumbi). No campo artístico, participou do grupo NeoTao, formado por colegas da UNICAMP, artistas provindos das artes visuais e cênicas. Produz trabalhos que integram festivais, como FILE (Festival Internacional de Linguagem Eletrônica) e GLI.TC/H. Entrevista realizada em fevereiro de 2013.

Fig. 63, 64 e 65. Telas de abertura de seu site http://www.navax.net.br onde se observa a

randomicidade de imagens a cada atualização de páginas.

de variáveis ou possibilidades de resultados, devem levar à programação como um facilitador, ou como um meio orgânico em que ideias e conceitos possam ser parametrizados com o intuito de se produzir protótipos, visualizações, simulações e experimentações.

Ele entende que o processo em design não descarta o conceito de produto final, isto é, sob uma perspectiva evolutiva, prevalece aquele resultado que mais se adapta. Nesse sentido, Costa acredita que o processo tem a ver com delineamento e registro de erros e acertos, efetivando a congruência entre referências múltiplas e escopos do projeto (ambiente). Descrever esses registros e rastros como possíveis soluções subscreve o teor da complexidade projetual. A aplicação crescente das tecnologias (em particular a programação) no design gerativo indica justamente uma dissolução da centralização autoral e reconhecimento do processo (geração) como “matéria-prima”.

Segundo Costa, muitos artistas discutem o uso de códigos ou algoritmos prontos de forma vazia ou arbitrária, os quais, segundo ele, devem ser utilizados para nossas próprias necessidades, seja na arte seja no design. De outra forma, não é interessante a mera utilização. Ele comenta que têm proliferado artistas que produzem imagens ou gráficos utilizando sempre o mesmo algoritmo, que muitos deles confundem design com a geração pura de ilustrações complexas. Ele prossegue dizendo que o design está conectado sim a um processo, que se conecta também a um projeto e que serve a um problema. Se o processo é gerativo ou não, vai depender muito desses fatores....e não de uma mera ilustração desvalorizada.

Documentos relacionados