Arte Computacional com Ruby...e amigos!

Post on 12-Jun-2015

600 views 0 download

description

Apresesentação feita com dupla com Carlos Villela (@cv) para a Ruby Masters Conf 2011.

Transcript of Arte Computacional com Ruby...e amigos!

Arte Computacional com Ruby...e amigos.

© 2011 ThoughtWorks, Ltd. All rights reserved.

Carlos Villela (@cv)

ThoughtWorks há 6 anos (Londres, Porto Alegre)Ruby desde 2004Java, Ruby, Smalltalk, Io, Ioke, etc...

Twitter, GitHub, Flickr: cvBlog: http://lixo.org

© 2011 ThoughtWorks, Ltd. All rights reserved.

Thiago Bueno (@tbueno)

ThoughtWorks há 1+ ano (Porto Alegre)Ruby desde 2005Java, Ruby, Clojure, etc

Twitter, GitHub, Flickr: tbuenoBlog: http://tbueno.org

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπ

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

1

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

10

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

10

Adição

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

10

Adição

Multiplicação

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπIdentidade de Euler

Número de EulerUnidade Imaginária

Pi

10

Adição

Multiplicação

Exponenciação

© 2011 ThoughtWorks, Ltd. All rights reserved.

e + 1 = 0iπ

“most beautiful theorem in mathematics”

“greatest equation ever”

© 2011 ThoughtWorks, Ltd. All rights reserved.

“Beauty depends on size as well as symmetry.” – Aristotle (384 B.C.-322 B.C.), Poetics

© 2011 ThoughtWorks, Ltd. All rights reserved.

“the mathematician is only complete in so far as he feels within himself the beauty of the true.” – Goethe

© 2011 ThoughtWorks, Ltd. All rights reserved.

“... who is not at the same time a bit of a poet will never be a full mathematician..”

– O. Spengler, in J. Newman, The World

of Mathematics, Simon & Schuster, 1956

© 2011 ThoughtWorks, Ltd. All rights reserved.

Por que Ruby?

© 2011 ThoughtWorks, Ltd. All rights reserved.

Beleza

© 2011 ThoughtWorks, Ltd. All rights reserved.

Simplicidade

© 2011 ThoughtWorks, Ltd. All rights reserved.

Sintaxe

© 2011 ThoughtWorks, Ltd. All rights reserved.

“Beauty depends on size as well as symmetry.” - Aristotle (384 B.C.-322 B.C.),

Poetics

Beleza

© 2011 ThoughtWorks, Ltd. All rights reserved.

“Beauty depends on size as well as symmetry.” - Aristotle (384 B.C.-322 B.C.),

Poetics

Simplicidade

Beleza

© 2011 ThoughtWorks, Ltd. All rights reserved.

“Beauty depends on size as well as symmetry.” - Aristotle (384 B.C.-322 B.C.),

Poetics

Simplicidade

Beleza

Sintaxe

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

Proporção Áurea (Phi)• Aprox.1.6180339887A proporção de a+b para a é a mesma de a para bAlega-se ser a proporção mais esteticamente aplasível ao ser humano.

a b

a+b

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

© 2011 ThoughtWorks, Ltd. All rights reserved.

Matemática e a Arte

Nota LogaritmoFrequência

Música Física Matemática

© 2011 ThoughtWorks, Ltd. All rights reserved.

A Matemática é Sua Amiga

Álgebra• Curvas, retas, transformações

Geometria

• Quadriláteros, círculos...Geometria

• Senos, cosenos, tangentes... Propriedades dos números

• Naturais, inteiros, racionais, primos...

© 2011 ThoughtWorks, Ltd. All rights reserved.

Ver

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

Processing• Linguagem/ambiente de programação para imagens,

animações e projetos multimídia• MIDI, OpenGL, Arduino...

ruby-processing• É um wrapper Ruby do framework • Beleza do Ruby + as bibliotecas gráficas do Java

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing posição e ângulo de uma “raiz”

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

PI, Cos e Sen

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

Chamadas Recursivas

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

Desenha “folhas”

© 2011 ThoughtWorks, Ltd. All rights reserved.

ruby-processing

© 2011 ThoughtWorks, Ltd. All rights reserved.

Context-free Art

Geração de imagens através de uma gramática livre de contexto e regras não determinísticas

Escrito em C++ e Objective-C

Parcialmente re-escrito com uma DSL em Ruby para o ruby-processing

© 2011 ThoughtWorks, Ltd. All rights reserved.

Context-free Art

© 2011 ThoughtWorks, Ltd. All rights reserved.

Context-free Art

© 2011 ThoughtWorks, Ltd. All rights reserved.

Visualização de Dados - Exemplo Real

Base de Dados de 100 corais de Johann S. BachSalvos em um arquivo Lisp

(1 ((st 8) (pitch 67) (dur 4) (keysig 1) (timesig 12) (fermata 0))((st 12) (pitch 67) (dur 8) (keysig 1) (timesig 12) (fermata 0)) ((st 20) (pitch 74) (dur 4) (keysig 1) (timesig 12) (fermata 0))((st 24) (pitch 71) (dur 6) (keysig 1) (timesig 12) (fermata 0)) ((st 30) (pitch 69) (dur 2) (keysig 1) (timesig 12) (fermata 0))((st 32) (pitch 67) (dur 4) (keysig 1) (timesig 12) (fermata 0)) ((st 36) (pitch 67) (dur 6) (keysig 1) (timesig 12) (fermata 0))((st 42) (pitch 69) (dur 2) (keysig 1) (timesig 12) (fermata 0)) ((st 44) (pitch 71) (dur 4) (keysig 1) (timesig 12) (fermata 0))((st 48) (pitch 69) (dur 8) (keysig 1) (timesig 12) (fermata 1)) ((st 56) (pitch 71) (dur 4) (keysig 1) (timesig 12) (fermata 0))((st 60) (pitch 74) (dur 8) (keysig 1) (timesig 12) (fermata 0)) ((st 68) (pitch 72) (dur 4) (keysig 1) (timesig 12) (fermata 0))((st 72) (pitch 71) (dur 4) (keysig 1) (timesig 12) (fermata 0)) ((st 76) (pitch 69) (dur 8) (keysig 1) (timesig 12) (fermata 0))((st 84) (pitch 67) (dur 8) (keysig 1) (timesig 12) (fermata 1))

© 2011 ThoughtWorks, Ltd. All rights reserved.

Visualização de Dados - Exemplo Real

Uso de Ruby devido à facilidade para parsing de stringsRuby + JRuby + Processing

Reconhecimento de padrõesTransformação de música em imagem

© 2011 ThoughtWorks, Ltd. All rights reserved.

Ouvir

© 2011 ThoughtWorks, Ltd. All rights reserved.

Básico do básico

C = 261.626 HzD = 293.665 HzE = 329.628 HzF = 349.228 HzG = 391.995 HzA = 440.000 HzB = 493.883 Hz

C D E F G A B = escala C Maior

© 2011 ThoughtWorks, Ltd. All rights reserved.

Básico do básico

C# = 277.183 HzD# = 311.127 HzE# = 349.228 HzF# = 369.994 HzG# = 415.305 HzA# = 466.164 HzB# = 523.251 Hz

© 2011 ThoughtWorks, Ltd. All rights reserved.

Básico do básico

C♭ = 246.942 Hz

D♭ = 277.183 Hz

E♭ = 311.127 Hz

F♭ = 329.628 Hz

G♭ = 369.994 Hz

A♭ = 415.305 Hz

B♭ = 466.164 Hz

© 2011 ThoughtWorks, Ltd. All rights reserved.

Básico do básico

C D E F G A B = C maiorC G D A E = pentatônica em CF G A C D = pentatônica em FC E♭ F F♯ G B♭ C = Blues!

© 2011 ThoughtWorks, Ltd. All rights reserved.

MIDI, OSC

Protocolos de comunicação como quaisquer outrosUbíquos• Ok, OSC nem tanto...SimplesLatência é o fator mais importante• Antigamente, hardware/cabos especiais• Hoje, Ethernet, USB e até Wi-Fi

© 2011 ThoughtWorks, Ltd. All rights reserved.

OSC

UDPSimplesPequenos pacotesBaixa latênciahttps://github.com/maca/ruby-oschttps://github.com/aberant/osc-ruby

© 2011 ThoughtWorks, Ltd. All rights reserved.

OSC

Suporte nativo no MonomeQuartz ComposerÓtimo para iniciantes!

© 2011 ThoughtWorks, Ltd. All rights reserved.

MIDI

Padrão indústriaSuporte pelo OSGarageBand, Logic, Reason, Ableton Live!, etcMuita coisa legada• Meio gambiarrento• Protocolo ainda bastante atrelado a hardware

© 2011 ThoughtWorks, Ltd. All rights reserved.

Midiator

Biblioteca Ruby para iteração com MIDIhttps://github.com/bleything/midiator• gem install midiatorExtremamente simplesMulti-plataforma• Software synth incluído para a versão Mac

© 2011 ThoughtWorks, Ltd. All rights reserved.

Midiatorrequire 'rubygems'require 'midiator' midi = MIDIator::Interface.newmidi.use :dls_synth

include MIDIator::Notes

2.times do [C3, D3, E3, C3].each{ |note| midi.play note, 0.5 }end

2.times do midi.play E3, 0.5 midi.play F3, 0.5 midi.play G3, 1 end

2.times do [G3, A3, G3, F3].each { |note| midi.play note, 0.250 } midi.play E3, 0.5 midi.play C3, 1end

2.times do midi.play C3, 0.5 midi.play G3, 0.5 midi.play C3, 1.0end

Mac Only!

© 2011 ThoughtWorks, Ltd. All rights reserved.

Archaeopteryx

Gerador de MIDI real-time, usando live codinggithub.com/gilesbowkett/archaeopteryxSequenciador de batidas que permite a criação de ritmos como Drum’n’Bass, Techno e Ambient Probabilidade para gerar comportamentos randômicos e “improvisações”

© 2011 ThoughtWorks, Ltd. All rights reserved.

A seguir, algumas palavras soltas...

...para você se divertir no Google

© 2011 ThoughtWorks, Ltd. All rights reserved.

sierpinski - chiptunes - mandelbrot - fibonacci - fractals - hypercube - game of life - arduino - monome - chuck - circuit bending - escher - sistemas de particulas - supercollider - pure data - quartz composer - reactable - c’74 max

© 2011 ThoughtWorks, Ltd. All rights reserved.

Livros

The Computational Beauty of NatureGödel, Escher, Bach: An Eternal Golden BraidProgramming Interactivity: A Designer's Guide to Processing, Arduino, and OpenframeworksProcessing: A Programming Handbook for Visual Designers and Artists

© 2011 ThoughtWorks, Ltd. All rights reserved.

Websites - Matemática e Arte

http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibInArt.html • Proporção áurea e Números de Fibonacci nas artes,

arquitetura e música.http://www.2dcurves.com/• Coleção de curvas matemáticashttp://www.cut-the-knot.org/manifesto/index.shtml• Manifesto matemática-arte

© 2011 ThoughtWorks, Ltd. All rights reserved.

Websites - Visuais

http://www.complexification.net/• Exemplos de obras feitas com Processing (incluindo a

imagem da capa desta apresentação)http://openprocessing.org• Agregador de animações feitas com Processing(incluindo a

imagem mostrada no último slide desta apresentação)http://www.contextfreeart.org/• Site sobre context-free art

© 2011 ThoughtWorks, Ltd. All rights reserved.

Websites - Áudio

http://upload.wikimedia.org/wikipedia/commons/9/97/Fibonacci.ogg• Composição musical feita com os números de Fibonaccihttp://botverse.com/music-and-mathematics-finding-the-natural-and-the-pentathonic-scales/5http://thinkzone.wlonk.com/Music/12Tone.htm• Explicação matemática para as escalas musicais

Entre em contatoCarlos Villelacv@lixo.org

Thiago Buenotbueno@gmail.com

Obrigado!”Mathematics, as much as music or any other art, is one of the means by

which we rise to a complete self-consciousness. The significance of Mathematics resides precisely in the fact that it is an art; by informing us of the nature of our own minds it informs us of much that depends on our

minds.” - J.W.N.Sullivan (1886-1937), Aspects of Science, 1925.