14 setembro 2010




começando a programar para
artes visuais
marlus araujo
de calculadoras aos computadores
algoritmos
frequentemente ilustrado pelo exemplo de
 uma receita, embora muitos tenham mais
               complexidade

podem repetir passos ou necessitar decisões
         (comparações lógicas)

a lógica booleana define tanto o modelo de
     microchips quanto o de softwares
linguagem
    é a primeira interface entre nós e os
               computadores

existem em vários níveis: binário, hexadecimal,
 assembler, linguagens baixo nível (C) e alto
                 nível (AS3)

    evolução metodológica: programação
    orientada a objetos e design patterns




                                                  scratch.mit.edu - a programming language for everyone
interfaces
          gráficas
1963 sketchpad
1973 xerox alto / filme ‘westworld’
1979 apple lisa
1982 autocad
1984 macintosh
1985 windows 1.0
1987 photoshop / quark
imagens em
 tempo real
  software playlist+effects
         modul8, isadora


software drag, drop, connect
   max-msp, puredata, vvvv, fnk

    software ide+code
  adobe flash, silverlight, unity3D

   programming libraries
   open frameworks, processing
processing
 criado por Casey Reas e Ben Fry (MIT)para
facilitar a criação de peças gráficas interativas

     sketching with code, 1 peça por vez

estimula a prototipagem para explorar maior
     número de idéias em pouco tempo

             foco na flexibilidade
programação
variáveis
guardam valores na memória para          int a; // declarando
serem usadas posteriormente num          a = 5; // definindo valor de ‘a’
programa                                 int a = 10; // erro ao declarar 2a vez

podem ser usadas várias vezes e seu      int x = 10; // inteiro
                                         int y = 20;
valor modificado durante o programa
                                         float z = 1.5; // fração
servem para evitar repetição no código
                                         boolean visivel = true;

                                         String evento = “Convescote”;




 tipos de variáveis do Processing
operadores
símbolos que o compilador usa para   int x = 10; // 10 é valor de x
executar cálculos e comandos no      int y = 20;
                                     int z = x + y * 2; // 50
programa
                                     // x é igual a y?
                                     boolean teste = (x == y); // false

                                     // x+y diferente de z?
                                     boolean teste2 = (x+y) != z; // true
métodos/funções




são os blocos básicos de todos os        int x = 10;
                                         int y = triplica(x); //30
programas
                                         void setup() {
foco na modularidade: funcionam como        aumentaX( 40 ); // x = 50
software independentes dentro dos           y = triplica( y ); // 90
                                         }
programas
                                         void aumentaX(int n){
podem retornar valores ou apenas            x = x + n; // ou (x += n;)
executar uma série de operações (void)   }

                                         int triplica (int n){
                                            return n*3;
                                         }
condições
if / else são métodos que avaliam se
uma expressão é verdadeira (true) ou
falsa (false)

condições são a base dos algoritmos e
teorias formais de lógica, fornecem aos
programas momentos de decisão em
que caminho percorrer: verdadeiro e
falso, ligado e desligado, válido e
inválido
condições e repetição
array
é uma coleção / lista de variáveis

possibilita o uso de muitas variáveis de
mesmo tipo e evita a criação de um
nome para cada

utilizada para maioria de operações de
repetição
objetos e classes   OOP concept: programação orientada
                    a objetos

                    divide as idéias em blocos menores: ex.
                    órgãos são feitos de tecidos, tecidos
                    são feitos de células, e por aí vai
livros
protótipos
links
http://processing.org/
http://processing.org/exhibition/
http://processing.org/reference/
http://processing.org/learning/

http://sketch.processing.org/
http://www.luckybite.com/iprocessing/
http://www.openprocessing.org/

http://sanchothefat.com/labs/161/pjsbox
http://9elements.com/io/projects/html5/canvas/
http://www.theantenna.net/
http://www.wefeelfine.org/
http://universe.daylife.com/
http://www.escapemotions.com/experiments.html

http://www.openframeworks.cc/

http://scratch.mit.edu/
vídeos

         aquascript
         http://youtu.be/XZki5lGhHII



         I Want You To Want Me
         by Jonathan Harris and Sep Kamvar
         http://youtu.be/GZUaXDm4qik

         ACCESS
         an interactive art installation by Marie Sester
         http://youtu.be/678EaXPekFo


         hand from above
         http://vimeo.com/7042266
obrigado!
marlus@marlus.com

Processing: programação para artes visuais