P R O P O S T A D E T R A B A L H O Unidade Curricular Laboratório Multimedia - LM301 COMPOSIÇÃO AUDIO VISUAL ALGORÍTMICA ESTOCÁSTICA: 'GERAR E ORGANIZAR VARIEDADE' ANDRÉ RANGEL MACEDO DOUTORANDO E INVESTIGADOR EM CIÊNCIA E TECNOLOGIA DAS ARTES a@3kta.net F a c u l d a d e d e B e l a s A r t e s d a U n i v e r s i d a d e d o P o r t o
Introdução Resumo Processos algorítmicos geradores de formas artísticas gozam de uma longa e venerável tradição. Os exemplos incluem a partitura do compositor, o plano do arquitecto e as anotações do coreógrafo de dança. Focado na parte criativa do processo que é o algoritmo, esta proposta de trabalho abordará técnicas de composição audio visual algorítmica baseadas em regras e estocásticas. Objectivos Simplesmente explorar o espaço entre a visão criativa dos estudantes e a aleatoriedade. Aperfeiçoar as capacidades de expressão através do desenvolvimento de princípios e métodos que suportam a criação de sistemas de mapeamento de dados bem como transformar a algorítmia num meio de criação artística. Proporcionar aos estudantes o contacto com obras de Artistas que utilizaram técnicas de composição algorítmica. Duração 16 horas de contacto no total - 4 aulas de 240 minutos 240 min. para apresentação da proposta, técnicas e exemplos. 240 min. para os estudantes conceberem os seus algoritmos. 240 min. para os estudantes descreverem os algoritmos que criaram. 240 min. para os estudantes implementarem/executarem os algoritmos que criaram. Materiais Dados de jogar, baralhos de cartas, quaisquer outros sistemas capazes de gerar resultados aleatórios: papel, diversos materiais riscadores à escolha dos estudantes, tesouras, compassos, réguas, esquadros, cola, materiais para colorir, computador, impressora, bem como qualquer outro material que os estudantes considerem adequado. Conteúdos Esta proposta de trabalho envolve conteúdos relativos a Procedimentos, Sintaxe e Sentido, explorando aspectos básicos da manipulação algorítmica, de processos iterativos e estocásticos abordando-os como métodos de composição audio visual. Métodos Aplicação de metodologias e técnicas de organização de informação. Abordagem dos conteúdos teóricos mediante experimentação de exemplos práticos, permitindo aos estudantes criar e testar os seus próprios algoritmos. 1
Apresentação Nesta proposta os estudantes irão explorar o potencial artístico da utilização de processos algorítmicos e estocásticos nos seus trabalhos. Serão introduzidos e explorados os conceitos de algoritmo, estocástica e iteração. A matéria prima que será manipulada e modelada são algoritmos, programas que poderão ou não ser executados por computador. Os estudantes irão concebê-los, modelá-los e executá-los, transformando a programação num meio de criação artística. Ao colocar os estudantes no campo da programação, estes serão confrontados com uma dupla problemática da criação: por um lado o objecto com comportamento embebido no tempo, por outro o objecto que contém a sua própria descrição e representação. Pretende-se familiarizar os estudantes com a experiência de construir programas posicionando o seu trabalho artístico no campo da arte algorítmica. Descrição de conceitos Neste contexto torna-se imprescindível, uma resumida descrição do algoritmo, da iteração e da estocástica. Algoritmo Algoritmo tem origem na matemática, no processo de resolução de um problema passo por passo. Um exemplo clássico é o algoritmo Euclideano processo utilizado para encontrar o máximo denominador comum de dois números. O resultado é o mesmo quer o processo seja executado por um computador ou por uma pessoa. Assim, um algoritmo consiste em regras, operações, memória, e usualmente computadores, entradas e saídas. As operações transformam os valores das memórias, das entradas e das saídas. As regras definem que operações executar, dependendo das condições nos valores das entradas e memórias. Algoritmos são fundamentalmente determinísticos, finitos e não conhecem/fazem escolhas aleatórias. Consulte a nota [1] para uma descrição de algoritmo proposta pelo Dr. Carlos Guedes na sua tese de Doutoramento. Processos algorítmicos geradores de formas artísticas gozam de uma longa e venerável tradição. Os exemplos incluem a partitura do compositor, o plano do arquitecto e as anotações do coreógrafo [2] de dança. Artistas algorítmicos também conhecidos por algoristas, são aqueles que introduzem e controlam algoritmos originais no seu trabalho de criação. [3] Iteração Acto ou efeito de iterar; Repetição; tornar a fazer, repetir. Em matemática, a iteração refere-se ao acto de realizar um qualquer processo matemático - uma computação, algoritmo ou construção - sobre um valor inicial e depois repetir o mesmo processo sobre o resultado. Cada 2
repetição do processo é uma iteração do processo. Por exemplo a contagem de números inteiros (0, 1, 2, 3, 4,...) pode ser visto como iteração da operação 'somar 1' tendo como valor inicial '0'. A iteração aparece na matemática tanto nas operações aritméticas mais simples (como contagem) como em ideias mais recentes sobre fractais e caos. Nos currículos académicos, os processos iterativos estão presentes em processos aritméticos, em cálculos, em fractais, na Arte, no Design, na geometria, na estatística entre outras disciplinas. Fenómenos iterativos também são frequentemente observáveis na natureza e estudados pela física, química e biologia. A natureza repetitiva da iteração torna-a adequada para uma série de processos de produção, criação e resolução de problemas. Estocástica Diz-se dos processos que não estão submetidos senão a leis do acaso. Está relacionado com o aleatório, e com probabilidade, sujeito às incertezas do acaso. Dependente de circunstâncias, casuais, fortuitas ou incertas. Basicamente um sistema estocástico é um sistema não determinístico, e está normalmente associado à aleatoriedade e/ou à imprevisibilidade. Existem várias formas de gerar aleatoriedade por exemplo quando atiramos uma moeda ao ar, a probabilidade da moeda cair com a 'cara' para cima é a mesma que a moeda cair com a 'coroa' para cima, ou seja são equiprováveis. O mesmo acontece quando atiramos um dado, cada uma das seis faces tem igual probabilidade de ficar virada para cima. Muitas vezes recorremos a 'tirar às sortes' - aleatoriedade - para tomarmos uma decisão qualquer. A estocástica e a aleatoriedade também foram usadas esteticamente, por exemplo na literatura, música e artes visuais, mas são sem dúvida mais populares no mundo dos jogos de sorte ou azar. Algoritmo, Iteração, Estocástica e Computador O poder dos computadores eliminou o penoso trabalho de execução de certos algoritmos, deixando os humanos livres para se focarem na parte criativa do trabalho, nomeadamente no processo que é o algoritmo. O computador foi criado pelos seus inventores como uma máquina universal capaz de executar qualquer processo, desde que esse processo possa ser descrito. Se podemos descrever exaustivamente um sistema numa folha de papel, esse sistema pode ser incorporado e implementado num computador. Algoritmos podem ser escritos em qualquer linguagem. Mas para serem compreendidos pelos computadores, têm de ser expressos em linguagem computacional. Um computador ligado às máquinas apropriadas, pode executar instruções para tocar música, desenhar, etc. Hoje os artistas audiovisuais têm disponíveis diversas tecnologias para compor e executar trabalhos algorítmicos. 'No meu percurso artístico, interiorizei um processo simultâneo de aprendizagem: aprender a ver ao desenhar e aprender a desenhar ao ver. Todo o processo de escrever instruções para o meu computador levou-me de volta a novos começos tal como nos primeiros tempos académicos. Como exemplo didáctico refiro os algoritmos gráficos fundamentais que são a saída de primitivas tais como: desenhar uma linha, gerar um circulo, preencher uma figura fechada, etc.' (Macedo, 2002). Para um artista visual, o estudo destas primitivas pode ser muito instrutivo, especialmente para aqueles que manipulam transformações tais como deslocamento, rotação e escala. Quando concebemos um processo para gerar uma nova forma, somos forçados a pensar de modo elementar na natureza do processo do desenho. 'Posso afirmar que se aprende muito sobre desenho ao conceber um algoritmo para desenhar e que também se aprende muito sobre algoritmos quando desenhamos'(macedo, 2002). 3
Muitos dos programas criados na última década, permitem a computadores executarem algoritmos que geram directamente imagens. Aqui a noção da mente do artista a guiar a mão, tão crucial para as artes visuais ao longo da história é abandonada. As mãos são utilizadas para escrever programas, editá-los e fazer selecções de menus para correr programas. Será que se ganha alguma coisa com o desuso da mão? Segundo Bob Brill 'sim' [4], operamos agora noutro domínio do espírito humano. Outro talento da mente humana é aqui libertado e autorizado a falar graças ao computador. De acordo com Bob Brill, 'existem mundos de ordem e beleza, adormecidos nos nossos diversos sistemas matemáticos que os processos algorítmicos são capazes de tornar visíveis.' Um programa é um objecto dinâmico, o que não é o caso de uma imagem, um som, um filme ou uma escultura. Um programa age e reage, de acordo com os estados internos ou relativamente ao seu ambiente: o programa tem um ambiente. Esta propriedade dinâmica em conjunto com a maleabilidade universal do algoritmo, são a razão pela qual o computador é também um meio de criação e de expressão. Este dinamismo faz com que este meio difira radicalmente dos seus predecessores tais como pintura, fotografia, cinema ou vídeo. De facto, no computador, um trabalho artístico pode continuar a mudar enquanto o observamos, mesmo até por o observarmos. O trabalho artístico em computador, contém a sua própria abstracção e assim é capaz de se transformar a si próprio, ao actuar na sua própria descrição. O trabalho artístico em computador existe não apenas como uma forma activa mas também como uma linguagem de acção, e ao tratar a linguagem de acção como a própria forma, faz o programa activo e autónomo. De acordo com Antoine Schmitt, programar algoritmos, constitui a principal especificidade conceptual do computador como meio de criação artística, em oposição à utilização do computador como meio de comunicação. Por vezes no erro matemático descobrem-se os resultados mais inesperados e surpreendentes. Quer dizer que quando estamos na dimensão da programação algorítmica, muitas vezes confusos, por exemplo numa qualquer operação matemática, aritmética ou geométrica, certos erros podem apresentar-se como soluções inesperadas. Muitas vezes pela falta de compreensão, ao não compreendermos, descobrimos coisas... acidentes. Quando não compreendemos as coisas, estamos mais aptos a explorar e a compreender. Assim é mais gratificante explorar do que atingir conclusões. É mais compensador imaginar/sonhar do que saber. É mais excitante procurar e explorar do que ficar parado. Conforme já foi descrito os Algoritmos 'são fundamentalmente determinísticos, finitos e não conhecem/fazem escolhas aleatórias' mas podemos introduzir aleatoriedade num algoritmo de diversas formas. No computador a aleatoriedade pode ser simulada, ou o programa pode ter uma ramificação para a realidade externa de forma a introduzir aleatoriedade no algoritmo. Sugiro a consulta da obra 'Towards a Model for Artificial Aesthetics' de Miguel Carvalhais, disponível no seu sítio web http://carvalhais.org. Nesta obra, Carvalhais aborda em profundidade diversas técnicas e concepções relacionadas com a aleatoriedade e pseudo-aleatoriedade. 4
Composição Visual Algorítmica Estocástica - Exemplo Prático Descrição Trata-se de um algoritmo muito simples, simultaneamente baseado em regras e estocástico, que permite desenhar de forma aleatória diferentes composições visuais. Este algoritmo pode ser executado por um ser humano munido de um esquadro aristo e material riscador ou por um computador devidamente programado para tal. Este algoritmo controla o desenho de uma linha quebrada formada por diversos segmentos de recta cujas direcções e comprimentos são definidos de forma aleatória. Tanto a funcionalidade deste algoritmo, como a sua descrição e diagramas visam exemplificar aos estudantes uma das formas de responder a esta proposta de trabalho. Algoritmo: 1- Convenciona-se que a cada face de um dado corresponde uma determinada direcção num plano bidimensional (folha de papel). As seis direcções possíveis fazem entre si ângulos de 60º conforme ilustrado no diagrama à direita. Começa-se o desenho considerando o ponto central da folha de papel. A primeira regra do algoritmo é lançar o dado uma vez e obter uma das seis direcções possíveis. Essa será a direcção do segmento de recta ou seja para onde o material riscador se irá deslocar. 2- Convenciona-se que a cada face do mesmo dado corresponde um comprimento diferente para o segmento de recta conforme sugere o diagrama à direita. A segunda regra do algoritmo é lançar o dado pela segunda vez para determinar qual o comprimento que segmento de recta terá. Desenha-se o segmento de recta com a direcção e comprimento determinados respectivamente pelo primeiro e segundo lançamentos do dado. Itera-se este procedimento o número de vezes que considerarmos necessário. 5
Iterações 1ª Iteração 2ª Iteração 153ª Iteração 6
Melhoramento 3- Ao algoritmo apresentado nas duas páginas anteriores acrescentamos uma terceira regra. Convenciona-se que a cada face do mesmo dado corresponde uma espessura diferente para o segmento de recta conforme sugere o diagrama à direita. Agora com três regras, a cada iteração lança-se o dado três vezes determinando aleatoriamente respectivamente a direcção, comprimento e espessura de cada segmento de recta. 10ª iteração 50ª iteração Detalhe de composição visual gerada depois de diversas iterações do algoritmo apresentado. André Rangel, 2011 7
Tarefas para o estudante Pesquisa Cada estudante fará um levantamento de obras e autores que considere terem utilizado processos algorítmicos, iterativos e/ou estocásticos. Deste levantamento selecciona três obras que incluirá na apresentação/entrega do seu trabalho. Criação, Desenvolvimento e Apresentação Cada estudante criará e apresentará um algoritmo original, exequível cujas regras ou parte destas utilizem dados determinados por um ou vários processos estocásticos. O estudante escolhe a(s) fonte(s) de aleatoriedade que preferir podendo também recorrer a sistemas de simulação por computador. O estudante descreverá o seu algoritmo e a(s) fonte(s) de aleatoriedade de forma clara e objectiva utilizando para este fim os meios que considerar necessários (esquema, diagrama, fotografia, texto, desenho, registo de audio ou vídeo, etc). Cada estudante implementará o seu algoritmo utilizando os materiais e técnicas que considerar apropriados. A apresentação final do trabalho compreenderá tanto a exposição, de pelo menos uma obra, resultante do processo algorítmico criado, bem como do próprio algoritmo criado. Notas [1] Um algoritmo é um plano preciso para realizar uma sequência de acções tendo um objectivo bem determinado. Exemplos clássicos de algoritmos são as receitas de cozinha. Numa receita de cozinha encontramos um plano bem ordenado e preciso para cozinhar determinado prato. Um algoritmo tem de possuir as seguintes quatro propriedades: - Ser completo. Ou seja, todas as acções têm de ser definidas exactamente. Por exemplo num algoritmo para ir da Praça da Republica para a rotunda da Boavista não chega especificar descer a rua da Boavista até encontrar uma rotunda com a estátua de um leão em cima de uma águia. A rua que dá para o viaduto de Fernandes Tomás também desce e isso poderia induzir em erro um condutor menos informado. Por exemplo, seria necessário neste algoritmo especificar que a rua da Boavista desce, tem um sentido único na direcção este-oeste, e que para atingir a rotunda teríamos que descer nesse sentido. - Não ser ambíguo. Um conjunto de instruções não é ambíguo se só poder ser interpretado de forma possível. O algoritmo descer a rua da Boavista além de impreciso é também ambíguo pois enquanto que para uma pessoa com conhecimentos do percurso tal instrução bastasse, o que é certo é que quando se desce a rua da Boavista, nunca se chega à rotunda sem antes passar pela Av. Da Boavista onde o trânsito passa a ter dois sentidos. - Ser determinístico. Isto implica que se seguirem as instruções atinge-se sempre o mesmo resultado. O seguinte conjunto de instruções embora precisas e não ambíguas não satisfaz esta terceira condição: Algoritmo para ficar milionário - Levantar todo dinheiro do banco - Ir até ao casino de Espinho - Jogar o dinheiro nas slotmachines até ganhar 100 euros ou ficar completamente falido A condição de determinismo falha neste caso pois nem sempre se fica milionário se se seguir este conjunto de instruções - Ser finito. Esta propriedade inerente a todos os algoritmos implica que este conjunto de instruções tem de terminar após um determinado número de passos. A condição de uma algoritmo ser finito também implica que se use um número finito de varáveis para atingir o resultado desejado. [2] coreógrafo - do grego choreia-dança e graphein-escrever; Uma coreografia é portanto um conjunto de instruções que orientam ou guiam os bailarinos na execução da dança. [3] - Roman Verostko propõe a definição de algorista em http://verostko.com/algorithm.html [4] - http://homepages.digitalrealm.net/users/bobbrill/algart.htm 8