<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Pragma Zero</title>
	<atom:link href="http://wouwlabs.com/blogs/braga/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://wouwlabs.com/blogs/braga</link>
	<description></description>
	<pubDate>Fri, 16 Oct 2009 19:30:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Circuit Bending no Continuum</title>
		<link>http://wouwlabs.com/blogs/braga/?p=30</link>
		<comments>http://wouwlabs.com/blogs/braga/?p=30#comments</comments>
		<pubDate>Fri, 16 Oct 2009 19:30:29 +0000</pubDate>
		<dc:creator>braga</dc:creator>
		
		<category><![CDATA[categorialess]]></category>

		<category><![CDATA[circuit-bending]]></category>

		<category><![CDATA[diy]]></category>

		<category><![CDATA[hardware-hacking]]></category>

		<guid isPermaLink="false">http://wouwlabs.com/blogs/braga/?p=30</guid>
		<description><![CDATA[
A primeira edição do Continuum está acontecendo no Recife desde semana passada e conta com um bocado de atividades super empolgantes para qualquer um interessado na combinação de Arte e Tecnologia, seja para bater um bom papo, colocar a mão na massa ou curtir os mais variados experimentos audio-táctil-visuais.
O feriado em Recife talvez tenha afastado [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-33 alignright" title="chip" src="http://wouwlabs.com/blogs/braga/wp-content/uploads/2009/10/post-chip.png" alt="microchip" width="443" height="230" /></p>
<p>A primeira edição do <a href=" http://continuumfestival.com/" target="_blank">Continuum</a> está acontecendo no Recife desde semana passada e conta com um bocado de atividades super empolgantes para qualquer um interessado na combinação de Arte e Tecnologia, seja para bater um bom papo, colocar a mão na massa ou curtir os mais variados experimentos audio-táctil-visuais.<br />
O feriado em Recife talvez tenha afastado o público de um interessantíssimo woskshop realizado por<a href="http://panetone.net/"> Cristiano Rosa (panetone)</a> tratando de <a href="http://en.wikipedia.org/wiki/Circuit_bending">Circuit Bending</a>. Apesar da lotada pré-inscrição, poucas pessoas se apresentaram para trocar idéias e aprender um pouco sobre como dar voz à nossa aparentemente inutilizável sucata eletrônica. As coisas começaram com Cristiano mostrando um pouco do que tinha feito, como um hacking para um <a href="http://en.wikipedia.org/wiki/Furby">Furby</a> (um gremlin-like robot toy) e alguns módulos que atuavam como filtros para um sequenciador, tudo feito de uma maneira muito simples. Ao contrário da maioria dos tutoriais sobre “como montar sua própria buginganga-eletrônico”, ninguém precisou ter um background sólido sobre componentes eletrônicos para começar a desmontar os toca-fitas, joysticks e teclados e criar os efeitos mais inesperados.</p>
<p>É incrível a diversidade do potencial de criação que temos à mão se não esperarmos pela prateleiras. Sem sombra de dúvida vale à pena dar uma olhada no <a href="http://books.google.com/books?id=frF6r8BaspsC&amp;pg=PA1&amp;lpg=PA1&amp;dq=*+Circuit-Bending+:+Build+Your+Own+Alien+Instruments.&amp;source=bl&amp;ots=CX8wyXWb_K&amp;sig=qh740w4_1UxomTlMQ1aTLaunAEs&amp;hl=en&amp;ei=5E3WSv63MMOklAf3v82cCQ&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=3&amp;ved=0CA0Q6AEwAg">livro</a> do<a href="http://en.wikipedia.org/wiki/Reed_Ghazala"> Reed Ghazala</a>, pioneiro e difusor no Circuit Bending para começar com umas boas (des)montagens.</p>
<p><em>p.s: o próprio panetone irá se apresentar no Continuum, na Torre Malakoff, no próximo Domingo, tocando nos instrumentos que ele criou.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://wouwlabs.com/blogs/braga/?feed=rss2&amp;p=30</wfw:commentRss>
		</item>
		<item>
		<title>projection mapping + vvvv!</title>
		<link>http://wouwlabs.com/blogs/braga/?p=23</link>
		<comments>http://wouwlabs.com/blogs/braga/?p=23#comments</comments>
		<pubDate>Thu, 05 Mar 2009 21:29:11 +0000</pubDate>
		<dc:creator>braga</dc:creator>
		
		<category><![CDATA[categorialess]]></category>

		<category><![CDATA[projection vvvv]]></category>

		<guid isPermaLink="false">http://wouwlabs.com/blogs/braga/?p=23</guid>
		<description><![CDATA[ 
Há um tempo, quando vi uns vídeos do AntiVJ (técnica, live painting e building projection) sobre Projection Mapping, fiquei muito instigado com a quantidade de possibilidades que aquilo abria e com o impacto visual. Naquela hora aquilo parecia muito distante, pois supostamente utilizava técnicas obscuras e muito avançadas de projeção, de forma que eu mantive [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p class="MsoNormal">Há um tempo, quando vi uns vídeos do AntiVJ (<a href="http://www.youtube.com/watch?v=_9y1Tesw4YY " target="_blank">técnica</a>, <a href="http://vimeo.com/2690618" target="_blank">live painting</a> e <a href="http://www.youtube.com/watch?v=Zmq2q4u8Y2s&amp;feature=related" target="_blank">building projection</a>) sobre Projection Mapping, fiquei muito instigado com a quantidade de possibilidades que aquilo abria e com o impacto visual. Naquela hora aquilo parecia muito distante, pois supostamente utilizava técnicas obscuras e muito avançadas de projeção, de forma que eu mantive minha cabeça com outros focos, vez por outra pensando em como seria bom dar umas projetadinhas por aí.</p>
<p class="MsoNormal"><span>Ontem, eu e <a href="http://jeraman.wordpress.com/" target="_blank">jeraman</a> projetamos. E, como acontece com a maioria das coisas que experimentamos, não é nada de mais. O vídeo abaixo tenta mostrar o que fizemos ontem: a gente arrasta os pontos e especifica onde queremos projetar. O efeito que aplicamos foi o de uma luz que rotaciona ao redor da caixa, mas as coisas podem ser BEM mais elaboradas (vide links de vídeos acima).</span></p>
<p><object width="480" height="295" data="http://www.youtube.com/v/oszGxC7bvL0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/oszGxC7bvL0&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal">A técnica é bem simples. Para direcionar a projeção, você projeta o que quiser onde quiser e “projeta preto” – ou seja, não projeta - onde não quiser que nada seja projetado. Utilizamos o <a href="http://vvvv.org/tiki-index.php">vvvv</a>, um framework bastante interessante para trabalhar com síntese de vídeo/animação/áudio em tempo real. O legal dela é que é BEM fácil de usar e MUITO modular. Mesmo para quem <strong>não é</strong> programador. A programação é totalmente visual, daí que nós não escrevemos If-elses e whiles, mas simplesmente ligamos caixinhas. Além disso, muita coisa já está pronta para facilitar nosso tratamento de câmera, iluminação, interação etc. E mais! Você quer uma partezinha de outro projeto que lidava com, digamos, a fonte de luz? É só dar um copia-e-cola que você importa para o seu projeto na hora, depois é só ligar os fiozinhos. Se você não entende uma “caixinha”, dá um F1 que ele abre uma janela explicando e ainda com uma aplicação-exemplo.</p>
<p class="MsoNormal"> </p>
<p><div class="wp-caption aligncenter" style="width: 347px"><img title="parte do codigo VVVV" src="http://wouwlabs.com/blogs/braga/files/vvvv.GIF" alt="parte do codigo VVVV" width="337" height="334" /><p class="wp-caption-text">parte do codigo VVVV</p></div></p>
<p> </p>
<p class="MsoNormal"><span>Daí, mais uma para o saco das técnicas-super-empolgantes-aparentemente-complicadas desmistificadas. </span></p>
<p class="MsoNormal"><span>O código tá <a href="http://wouwlabs.com/blogs/braga/files/mapping4.v4p">aqui</a>, mas no próprio site do vvvv você pode achar muita coisa que o pessoal coloca.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://wouwlabs.com/blogs/braga/?feed=rss2&amp;p=23</wfw:commentRss>
		</item>
		<item>
		<title>Processing - intro</title>
		<link>http://wouwlabs.com/blogs/braga/?p=3</link>
		<comments>http://wouwlabs.com/blogs/braga/?p=3#comments</comments>
		<pubDate>Thu, 05 Feb 2009 18:27:14 +0000</pubDate>
		<dc:creator>braga</dc:creator>
		
		<category><![CDATA[categorialess]]></category>

		<category><![CDATA[interactivity]]></category>

		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://wouwlabs.com/blogs/braga/?p=3</guid>
		<description><![CDATA[
Não sei ao certo quão válido seria escrever palavras introdutórias a um blog que não sabe dele próprio o que será. Assim, dispenso algumas voltas, algumas ilusões, entusiasmos e até talvez inconsistências de roteiro. Mas, para uma escassez de introdução, melhor que não me perca tanto introduzindo o que não vou introduzir e, assim, vou [...]]]></description>
			<content:encoded><![CDATA[<p><!--[endif]--></p>
<p class="MsoNormal"><span>Não sei ao certo quão válido seria escrever palavras introdutórias a um blog que não sabe dele próprio o que será. Assim, dispenso algumas voltas, algumas ilusões, entusiasmos e até talvez inconsistências de roteiro. Mas, para uma escassez de introdução, melhor que não me perca tanto introduzindo o que não vou introduzir e, assim, vou direto ao ponto. </span></p>
<p class="MsoNormal"><span>Há um tempo comecei a estudar uma linguagem chamada <a href="http://processing.org/" target="_blank">Processing</a>, que me traria facilidades para programar visualmente, lidando com imagens, animações e interação. A motivação de ter tal linguagem e ambiente (ainda mais <em>open-source</em>) já era o bastante, mas as coisas só melhoraram quando vi que aquilo era realmente uma mão na roda: fácil de programar e com resultados rápidos em poucas linhas de código.</span></p>
<p class="MsoNormal"><span>Segundo seus fundadores, Processing foi desenvolvida para que qualquer pessoa interessada chegasse e construísse seus projetos: estudantes, artistas ou entusiastas. Instalações artísticas e projetos de visualização de dados têm sido grandes usuários. A linguagem é realmente fácil de programar, sendo bastante acessível a qualquer pessoa que tenha alguma noção de lógica de programação. Além disso, é uma potencial alternativa para aprender um pouco de programação, produzindo resultados quase instantâneos e de maneira divertida. Mais informações sobre ela estão no site, no qual o ambiente+linguagem está disponível para download. <a href="http://wouwlabs.com/blogs/anniec" target="_blank">Aninha</a> também escreveu mais coisas sobre Processing e sua ligação com outras tecnologias (Arduino e Wiring).</span></p>
<p class="MsoNormal"><span>No exemplo que fiz pra esse post, ilustro a utilização de animação e interatividade para apresentar a linguagem. Uma linha percorre um pedaço da tela e nós podemos controlar a cor da parte em movimento, adicionando azul, vermelho ou verde (só clicar nas bolinhas).</span></p>
<p class="MsoNormal"><span>Uma breve explicação do funcionamento geral:</span></p>
<ul>
<li><!--[if !supportLists]--><span style="font-family: Symbol;"><span><span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span>A função <em>setup()</em> é chamada uma vez, quando a aplicação é carregada. Nela criei a tela e desenhei os “botões” das cores;</span></li>
</ul>
<ul>
<li><span style="font-family: Symbol;"><span><span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span>A função <em>draw() </em>é acionada repetidamente durante a execução do programa. Assim, para a linha se mover, eu apenas precisei alterar a posição de sua extremidade na tela (e essa alteração é feita repetidamente, resultando na animação);</span></li>
</ul>
<ul>
<li><span style="font-family: Symbol;"><span><span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><em><span>mousePressed</span></em><span>() é chamada <span> </span>quando (adivinhem!) pressionamos o mouse. No exemplo, eu altero a cor atual de forma modular (quando chega ao máximo de verde, volta para o “nenhum verde”).</span></li>
</ul>
<p><em>ps: Algumas pessoas estavam tendo dificuldades em colocar um applet do Processing pra rodar no Wordpress. Para colocar este aqui, precisei apenas do seguinte HTML, indicando onde está o arquivo JAR e o nome da classe:</em></p>
<pre id="line51">&lt;<span class="start-tag">div</span>&gt;
&lt;<span class="start-tag">p</span>&gt;
&lt;<span class="start-tag">APPLET</span><span class="attribute-name"> name</span>=<span class="attribute-value">"mouse_and_animation" </span><span class="attribute-name">WIDTH</span>=<span class="attribute-value">"400" </span><span class="attribute-name">HEIGHT</span>=<span class="attribute-value">"400"  </span><span class="attribute-name">standby</span>=<span class="attribute-value">"Loading Processing software..." </span><span class="attribute-name">
archive</span>=<span class="attribute-value">"http://wouwlabs.com/blogs/braga/files/mouse_and_animation.jar"
</span><span class="attribute-name">codebase</span>=<span class="attribute-value">"http://www.wouwlabs.com/blogs/braga" </span><span class="attribute-name">code</span>=<span class="attribute-value">"mouse_and_animation" </span><span class="attribute-name">mayscript</span>=<span class="attribute-value">"true" </span><span class="attribute-name">
scriptable</span>=<span class="attribute-value">"true" </span><span class="attribute-name">boxmessage</span>=<span class="attribute-value">"Loading Processing software..."</span>&gt;&lt;/<span class="end-tag">APPLET</span>&gt;
&lt;/<span class="end-tag">p</span>&gt;
&lt;/<span class="end-tag">div</span>&gt;</pre>
<div>
<p align="center">
<APPLET name="mouse_and_animation" WIDTH="400" HEIGHT="400"  standby="Loading Processing software..." archive="http://wouwlabs.com/blogs/braga/files/mouse_and_animation.jar" codebase="http://www.wouwlabs.com/blogs/braga" code="mouse_and_animation" mayscript="true" scriptable="true" boxmessage="Loading Processing software..."></APPLET>
</p>
</div>
<p><strong>código-fonte</strong>:</p>
<blockquote><p>int X_LEFT_BOUND = 200;<br />
int X_WIDTH = 150;<br />
int y = height/2;<br />
int xspd = 1;<br />
int yspd = 1;<br />
int objR = 255;<br />
int x, objG, objB;<br />
color objColor;</p>
<p>void drawCircles(){</p>
<p>fill(0, 0, 255);<br />
ellipse(80, 90, 70, 70);</p>
<p>fill(0, 255, 0);<br />
ellipse(80, 200, 70, 70);</p>
<p>fill(255, 0, 0);<br />
ellipse(80, 310, 70, 70);<br />
}</p>
<p>void setup(){<br />
size(400, 400);<br />
background(0, 0, 0);<br />
noStroke();<br />
fill(50, 90, 50);<br />
rect(0, 140, 400, 120);<br />
fill(255, 255, 255);<br />
rect(X_LEFT_BOUND, 0, X_WIDTH, 400);<br />
x = X_LEFT_BOUND;<br />
frameRate(50);<br />
drawCircles();<br />
}</p>
<p>void draw(){<br />
objColor = color(objR, objG, objB);<br />
fill(objColor);<br />
rect(x, y, 10, 10);<br />
x += xspd;<br />
y += yspd;</p>
<p>if((x &gt;= X_LEFT_BOUND + X_WIDTH -10) || (x &lt;= X_LEFT_BOUND)){<br />
xspd = -xspd;<br />
}</p>
<p>if(y &gt;= height || y &lt;= 0){<br />
yspd = -yspd;<br />
}</p>
<p>}</p>
<p>void mousePressed(){<br />
if(mouseX &lt;= 115 &amp;&amp; mouseX&gt;= 45){</p>
<p>if(mouseY &gt;= 55 &amp;&amp; mouseY &lt;= 125) {<br />
objB = (objB + 10)%255;<br />
}<br />
else if(mouseY &gt;= 165 &amp;&amp; mouseY &lt;= 235) objG = (objG + 10)%255;<br />
else if(mouseY &gt;= 275 &amp;&amp; mouseY &lt;= 345) objR = (objR + 10)%255;<br />
}<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://wouwlabs.com/blogs/braga/?feed=rss2&amp;p=3</wfw:commentRss>
		</item>
	</channel>
</rss>
