<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chris Teso &#187; code</title>
	<atom:link href="http://www.christeso.com/blog/index.php/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.christeso.com/blog</link>
	<description>Chris Teso is Director of Interactive Media, Flash Designer Developer and Portland Photographer.</description>
	<lastBuildDate>Sun, 06 Jun 2010 04:59:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Music Visualization Engine and Generative Drawing</title>
		<link>http://www.christeso.com/blog/index.php/lab/music-visualization-engine-and-generative-drawing/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/music-visualization-engine-and-generative-drawing/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 20:53:45 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[Actionscript Sound Visualization]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Music Visualization & Generative Drawing]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bytearray]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[floating-point value]]></category>
		<category><![CDATA[generative drawing]]></category>
		<category><![CDATA[portishead]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[SoundMixer.computeSpectrum]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.christeso.com/?p=608</guid>
		<description><![CDATA[The Neural Orb from chris teso on Vimeo.
130 seconds of a music visualization engine and generative drawing built in AS3 using particles and physics engine.
See it in it&#8217;s 4:02 entirety HERE.
512 particles are released with instructions to randomly disperse throughout the scene. Variants include friction and wander. Particle location is constantly tracked and more particles [...]]]></description>
			<content:encoded><![CDATA[<p><object width="600" height="348"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3191128&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3191128&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="348"></embed></object><br /><a href="http://vimeo.com/3191128">The Neural Orb</a> from <a href="http://vimeo.com/user824020">chris teso</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>130 seconds of a music visualization engine and generative drawing built in AS3 using particles and physics engine.</p>
<p>See it in it&#8217;s 4:02 entirety <a href="http://www.christeso.com/labs/actionscript-3-sound-visualization-generative-drawing.asp">HERE</a>.</p>
<p>512 particles are released with instructions to randomly disperse throughout the scene. Variants include friction and wander. Particle location is constantly tracked and more particles are drawn at that location. These particles are sized and alpha&#8217;d according to stage location creating a &#8220;corridor&#8221;.</p>
<p>Music visualization occurs by looping through SoundMixer.computeSpectrum and creating a ByteArray. Each of the 512 particles are controlled the ByteArray which conveniently contains 512 bytes of data. Each byte contains a floating-point value. This value determines the individual particles scale and glow.</p>
<p>I hope to make this more interesting if/when I get some free time.</p>
<p>Music: All Mine | Portishead </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=Music%20Visualization%20Engine%20and%20Generative%20Drawing%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F&amp;t=Music%20Visualization%20Engine%20and%20Generative%20Drawing" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F&amp;title=Music%20Visualization%20Engine%20and%20Generative%20Drawing&amp;bodytext=The%20Neural%20Orb%20from%20chris%20teso%20on%20Vimeo.%0D%0A%0D%0A130%20seconds%20of%20a%20music%20visualization%20engine%20and%20generative%20drawing%20built%20in%20AS3%20using%20particles%20and%20physics%20engine.%0D%0A%0D%0ASee%20it%20in%20it%27s%204%3A02%20entirety%20HERE.%0D%0A%0D%0A512%20particles%20are%20released%20with%20instructions%20to%20r" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F&amp;title=Music%20Visualization%20Engine%20and%20Generative%20Drawing&amp;notes=The%20Neural%20Orb%20from%20chris%20teso%20on%20Vimeo.%0D%0A%0D%0A130%20seconds%20of%20a%20music%20visualization%20engine%20and%20generative%20drawing%20built%20in%20AS3%20using%20particles%20and%20physics%20engine.%0D%0A%0D%0ASee%20it%20in%20it%27s%204%3A02%20entirety%20HERE.%0D%0A%0D%0A512%20particles%20are%20released%20with%20instructions%20to%20r" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F&amp;title=Music%20Visualization%20Engine%20and%20Generative%20Drawing&amp;annotation=The%20Neural%20Orb%20from%20chris%20teso%20on%20Vimeo.%0D%0A%0D%0A130%20seconds%20of%20a%20music%20visualization%20engine%20and%20generative%20drawing%20built%20in%20AS3%20using%20particles%20and%20physics%20engine.%0D%0A%0D%0ASee%20it%20in%20it%27s%204%3A02%20entirety%20HERE.%0D%0A%0D%0A512%20particles%20are%20released%20with%20instructions%20to%20r" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fmusic-visualization-engine-and-generative-drawing%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/music-visualization-engine-and-generative-drawing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AS3 Polar Coordinates and Radians</title>
		<link>http://www.christeso.com/blog/index.php/lab/as3-polar-coordinates-and-radians/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/as3-polar-coordinates-and-radians/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 06:21:44 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[AS3 Polar Coordinates and Radians]]></category>
		<category><![CDATA[Actionscript Classes]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[polar coordinates]]></category>
		<category><![CDATA[radians]]></category>

		<guid isPermaLink="false">http://www.christeso.com/?p=577</guid>
		<description><![CDATA[
Many times I&#8217;ve set up interfaces where I need to place different objects equidistant around a central object. The solution to this problem is to first calculate the angle of each object by converting Radians to Degrees. This can be expressed by the following formula



So, you simply need to loop through your collection of objects [...]]]></description>
			<content:encoded><![CDATA[<p><object  width="700" height="700"><param name="movie" value="/flash/radians.swf" /><embed src="/flash/radians.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="700" height="700"></embed></object></p>
<p>Many times I&#8217;ve set up interfaces where I need to place different objects equidistant around a central object. The solution to this problem is to first calculate the angle of each object by converting <a href="http://en.wikipedia.org/wiki/Radian" target="_blank">Radians</a> to Degrees. This can be expressed by the following formula</p>
<dl>
<dd><img class="tex" src="http://upload.wikimedia.org/math/c/5/7/c57a77f5af3b16eae6b37447051d9684.png" alt="1 \mbox{ rad} = 1 \cdot \frac {180^\circ} {\pi} \approx 57.2958^\circ " /></dd>
</dl>
<p>So, you simply need to loop through your collection of objects and assign each a different angle. After that you plug that angle into a new Polar Point.</p>
<pre><code>for(var i=0;i&lt;array.length;i++)
{
	var angle:Number = i*( 180/Math.PI )
	var coord:Point = Point.polar( circumference, angle )
}</code></pre>
<p>Here&#8217;s the complete source: <a href="http://www.christeso.com/labs/code/radians.zip">radians.zip</a></p>
<pre><code>package
{
	import flash.ui.*;
	import flash.display.*;
	import flash.events.*;
	import flash.geom.*;

	public class Main extends Sprite
	{

		/*
		========================================================
		| Private Variables                         | Data Type
		========================================================
		*/

		private var array:Array = new Array()
		private var circumference:int;

		/*
		========================================================
		| Constructor
		========================================================
		*/

		public function Main ()
		{
			stage.align = StageAlign.TOP_LEFT;

			// make some balls
			addParticle( 100 )

			menu.txtParticles.text = 'Particles: 100';

			stage.addEventListener( Event.ENTER_FRAME, runParticle )

			menu.slideCircumference.addEventListener( Event.CHANGE, changeCircumference );
			menu.particles.addEventListener( Event.CHANGE, changeParticles );

		}

		private function addParticle( num )
		{
			stage.removeEventListener( Event.ENTER_FRAME, runParticle )

			var tot:Number = array.length

			// kill mc's
			for( var t=0;t&lt;tot;t++ )
			{
				removeChild( array[t].mc );
			}

			// kill array
			for( var r=0;r&lt;tot;r++ )
			{
				array.shift();
			}

			trace( 'removed particles '+array.length )

			for( var d=0;d&lt;num;d++ )
			{
				var c:MovieClip = new MovieClip()
				c.name = "particle"
				c.graphics.beginFill( 0xffffff, 1 )
				c.graphics.drawCircle( 0, 0, 1 )
				c.graphics.endFill()
				addChild( c )

				array.push( { mc:c } )
			}

			trace( 'added particles '+array.length )

			changeCirc( circumference )

			stage.addEventListener( Event.ENTER_FRAME, runParticle )
		}

		private function runParticle( e:Event )
		{
			//trace( 'running' )
			graphics.clear()
			graphics.lineStyle( 1, 0xffffff, .1 )

			for(var i=0;i&lt;array.length;i++)
			{
				graphics.moveTo( stage.stageWidth/2, stage.stageHeight/2 )
				graphics.lineTo( array[i].mc.x, array[i].mc.y )
			}

		}

		private function changeCirc( c:int )
		{
			for(var i=0;i&lt;array.length;i++)
			{
				var angle:Number = i*( 180/Math.PI )
				var coord:Point = Point.polar( c, angle )

				array[i].mc.x = ( stage.stageWidth/2 ) + coord.x
				array[i].mc.y = ( stage.stageHeight/2 ) + coord.y
			}

			circumference = c
		}

		private function changeCircumference( e:Event ):void
		{
			menu.txtCircumference.text = 'Circumference: ' + e.target.value;
			changeCirc( e.target.value )
		}

		private function changeParticles( e:Event ):void
		{
			menu.txtParticles.text = 'Particles: ' + e.target.value;
			addParticle( e.target.value )
		}
	}
}</code></pre>
<p>Permalink: http://www.christeso.com/index.php/lab/as3-polar-coordinates-and-radians</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=AS3%20Polar%20Coordinates%20and%20Radians%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F&amp;t=AS3%20Polar%20Coordinates%20and%20Radians" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F&amp;title=AS3%20Polar%20Coordinates%20and%20Radians&amp;bodytext=%0D%0A%0D%0AMany%20times%20I%27ve%20set%20up%20interfaces%20where%20I%20need%20to%20place%20different%20objects%20equidistant%20around%20a%20central%20object.%20The%20solution%20to%20this%20problem%20is%20to%20first%20calculate%20the%20angle%20of%20each%20object%20by%20converting%20Radians%20to%20Degrees.%20This%20can%20be%20expressed%20by%20" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F&amp;title=AS3%20Polar%20Coordinates%20and%20Radians&amp;notes=%0D%0A%0D%0AMany%20times%20I%27ve%20set%20up%20interfaces%20where%20I%20need%20to%20place%20different%20objects%20equidistant%20around%20a%20central%20object.%20The%20solution%20to%20this%20problem%20is%20to%20first%20calculate%20the%20angle%20of%20each%20object%20by%20converting%20Radians%20to%20Degrees.%20This%20can%20be%20expressed%20by%20" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F&amp;title=AS3%20Polar%20Coordinates%20and%20Radians&amp;annotation=%0D%0A%0D%0AMany%20times%20I%27ve%20set%20up%20interfaces%20where%20I%20need%20to%20place%20different%20objects%20equidistant%20around%20a%20central%20object.%20The%20solution%20to%20this%20problem%20is%20to%20first%20calculate%20the%20angle%20of%20each%20object%20by%20converting%20Radians%20to%20Degrees.%20This%20can%20be%20expressed%20by%20" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-polar-coordinates-and-radians%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/as3-polar-coordinates-and-radians/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AS3 Drop Down Menu Class</title>
		<link>http://www.christeso.com/blog/index.php/lab/as3-drop-down-menu-class/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/as3-drop-down-menu-class/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 05:23:21 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[AS3 Drop Down Menu Class]]></category>
		<category><![CDATA[Actionscript Classes]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[drop down]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.christeso.com/?p=455</guid>
		<description><![CDATA[lab]]></description>
			<content:encoded><![CDATA[<p>I briefly Googled for a drop down class to no avail. I say briefly as I only went one page deep. I&#8217;m sure there are others out there, but I instead got impatient as usual and just wrote my own. I thought I&#8217;d share it for other impatient people&#8217;s benefit. Without further ado here&#8217;s the AS3 Drop Down Class code. It&#8217;s a work in progress and most likely will be updated when I give it any more thought.</p>
<p>You can see the drop down in use on my <a href="http://www.christeso.com">homepage</a>.</p>
<p>Edit [ 12.16.08 ] : added directional code.</p>
<pre><code>
//usage
// array for drop
var dropOtherArray:Array = new Array()
dropOtherArray.push( {title:"<i>i</i>Work", name:"folio"} )
dropOtherArray.push( {title:"<i>i</i>Experiment", name:"lab"} )
dropOtherArray.push( {title:"<i>i</i>Write", name:"blog"} )
dropOtherArray.push( {title:"<i>i</i>Photograph", name:"photo"} )
dropOtherArray.push( {title:"<i>i</i>Flickr", name:"flickr"} )
dropOtherArray.push( {title:"<i>i</i>Record", name:"vimeo"} )
dropOtherArray.push( {title:"<i>contact</i>Me", name:"contact"} )

fmat.color = 0xffffff
fmat.font = font.fontName
fmat.size = 11

addChild( _dropOther = new DropDown( 180, 25, "<i>i</i>LiveElsewhere:", fmat, 0x000033, dropOtherArray, "down", other ) )

package com.teso.ui
{
	import com.gskinner.motion.*
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import flash.utils.*;
	import flash.text.*;
	import fl.transitions.*;
	import fl.transitions.easing.*;

	public class DropDown extends Sprite
	{
		private var _items:Array = new Array()
		private var _overC:uint;
		private var _backC:uint;
		private var _w:Number;
		private var _h:Number;
		private var _timer:Timer;
		private var _open:Boolean = false;
		private var _defaultText:TextField;
		private var _title:String;
		private var _direction:String;
		private var _fmt:TextFormat;

		public function DropDown( w:Number, h:Number, title:String, fmt:TextFormat, colorBack:uint, itemArray:Array, direction:String, callback )
		{
			// timer
			_timer = new Timer( 300 );
			_timer.addEventListener( TimerEvent.TIMER, closeDrop )

			// vars
			_w = w
			_h = h
			_backC = colorBack
			_items = itemArray
			_title = title
			_direction = direction
			_fmt = fmt

			// create a back for the holder
			var holder:MovieClip = new MovieClip();
			holder.name = "holder"
			holder.graphics.beginFill( _backC, 1 );
			holder.graphics.drawRoundRect( 0, 0, _w, _h, 2, 2 )
			holder.graphics.endFill()

			// add the drop
			addChild( holder )

			// set listeners
			holder.buttonMode = true;
			holder.addEventListener( MouseEvent.MOUSE_OVER, openDrop )
			holder.addEventListener( MouseEvent.MOUSE_OVER, cancelClose )
			holder.addEventListener( MouseEvent.MOUSE_OUT, startClose )

			// create a text field
			var t:TextField = new TextField()
			t.name = "holderText"
			t.selectable = false;
			t.autoSize = TextFieldAutoSize.LEFT;
			t.htmlText = title
			t.setTextFormat( fmt )
			t.y = ( holder.height/2 ) - ( t.height/2 )

			_defaultText = t

			// add the text
			holder.addChild( t )

			// create children
			for( var i=0; i&lt;_items.length; i++ )
			{
				// create a back
				var back:MovieClip = new MovieClip()
				back.name = _items[i].name;
				back.graphics.beginFill( _backC, 1 )
				back.graphics.drawRoundRect( 0, 0, _w, _h, 10, 10 )
				back.graphics.endFill()

				// create a text field
				t = new TextField();
				t.name = "t"
				t.x = 5
				t.selectable = false;
				t.autoSize = TextFieldAutoSize.LEFT;
				t.htmlText = _items[i].title;
				t.setTextFormat( fmt )
				t.y = ( back.height/2 ) - ( t.height/2 )

				if( _items[i].d )
				{
					_defaultText.htmlText = _title+" "+_items[i].title
					_defaultText.setTextFormat( _fmt )
				}

				// make them invisible for now
				back.visible = false;

				// set a listener
				back.buttonMode = true;
				back.addEventListener( MouseEvent.CLICK, closeDrop )
				back.addEventListener( MouseEvent.CLICK, setDefaultText )
				back.addEventListener( MouseEvent.CLICK, callback )
				back.addEventListener( MouseEvent.MOUSE_OUT, startClose )
				back.addEventListener( MouseEvent.MOUSE_OVER, cancelClose )

				// add the text
				back.addChild( t )

				// add it to the holder
				addChildAt( back, 0 )

				_items[i].mc = back
			}
		}

		private function openDrop( e:Event )
		{
			if( !_open )
			{

				for( var i=0; i&lt;_items.length; i++ )
				{
					// set a var
					var item:DisplayObject = _items[i].mc

					// set the items alpha to zero
					item.alpha = 0;

					// make the item visible
					item.visible = true

					// fade it in
					var tweenIn:GTween;

					if( _direction == "down" )
					{
						tweenIn = new GTween( item, .3, {y:_h + ( _h * i ),  alpha:1} )
					}
					else
					{
						tweenIn = new GTween( item, .3, {y:-_h - ( _h * i ),  alpha:1} )
					}
					tweenIn.ease = Regular.easeOut
				}
			}
			_open = true;

		}
		private function cancelClose( e:Event )
		{
			if( e.currentTarget.name != "holder" )
			{
				e.currentTarget.alpha = .8
			}
			_timer.stop()
		}
		private function startClose( e:Event )
		{
			e.currentTarget.alpha = 1
			_timer.start()
		}
		private function setDefaultText( e:Event )
		{
			_defaultText.htmlText = _title+" "+e.currentTarget.getChildByName( "t" ).text
			_defaultText.setTextFormat( _fmt )
		}
		private function closeDrop( e:Event )
		{
			closeIt()
		}
		private function closeIt()
		{
			if( _open )
			{
				for( var i=0; i&lt;_items.length; i++ )
				{
					// set a var
					var item:DisplayObject = _items[i].mc

					// make the item visible
					item.visible = true

					// fade it in
					var tweenOut:GTween = new GTween( item, .3, {y:0, alpha:0}, {completeListener:done, data:item} )
					tweenOut.ease = Regular.easeOut
				}
			}

			_timer.stop()

			_open = false;
		}
		private function done( e:Event )
		{
			e.currentTarget.data.visible = false

		}

	}
}
</code><strong>Permalink:</strong>
<span id="sample-permalink">http://www.christeso.com/index.php/lab/<span id="editable-post-name" title="Click to edit this part of the permalink">as3-drop-down-menu-class</span><span id="editable-post-name-full">as3-drop-down-menu-class</span>/</span></pre>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=AS3%20Drop%20Down%20Menu%20Class%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F&amp;t=AS3%20Drop%20Down%20Menu%20Class" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F&amp;title=AS3%20Drop%20Down%20Menu%20Class&amp;bodytext=lab" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F&amp;title=AS3%20Drop%20Down%20Menu%20Class&amp;notes=lab" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F&amp;title=AS3%20Drop%20Down%20Menu%20Class&amp;annotation=lab" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-drop-down-menu-class%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/as3-drop-down-menu-class/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Equilibrium The Human Mashup: A Follow Up</title>
		<link>http://www.christeso.com/blog/index.php/lab/equilibrium-the-human-mashup-a-follow-up/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/equilibrium-the-human-mashup-a-follow-up/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 18:14:18 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[Autodraw]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Webcam Motion Detection]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[code = art]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[motion detection]]></category>
		<category><![CDATA[sao]]></category>

		<guid isPermaLink="false">http://www.christeso.com/index.php/life/equilibrium-the-human-mashup-a-follow-up/</guid>
		<description><![CDATA[lab]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="650" height="433" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2334635&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="650" height="433" src="http://vimeo.com/moogaloop.swf?clip_id=2334635&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/2334635">Untitled</a> from <a href="http://vimeo.com/user824020">chris teso</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/nymphobrainiac/2969093511/">Equilibrium The Human Mashup: A Follow Up</a>, originally uploaded by <a href="http://www.flickr.com/people/nymphobrainiac/">NymphoBrainiac</a>.</span></p>
<p class="flickr-yourcomment">Equilibrium: A Follow Up</p>
<p>Last week I had a showing at <a href="http://www.christeso.com/index.php/life/equilibrium-the-human-mashup/">Equilibrium, the Human Mashup</a>. The show&#8217;s goal was to ask &#8220;How can art and technology and the synergy of the two address humanity&#8217;s next evolutionary step?&#8221;. Being a staunch singularitarian this was right up, or is it down, my proverbial alley. I built an <a href="http://www.christeso.com/labs/actionscript-3-AutoDraw-Interactive-Art-Installation.asp">application</a> that allows a user to take a self portrait photograph and then draw themselves on a wall simply by using and moving their hand. The premise was to use the human as the sole interface to draw themselves, exploring the convergence of man and technology. A one day only installation, I didn&#8217;t have to high of hopes for it&#8217;s exposure. On the flip side, this being my first showing ever I was like a greedy 8 year old on Christmas morning, and extremely anxious to see how people would interact and respond to the installation. The methodology of controlling an interface without the normal peripherals such as a mouse, keyboard, touch screen, kiosk, or otherwise was foreign to all that attended. What transpired blew me away. The attendance, response and exposure far exceeded my hopes. I barely had to explain at all to users how to run the application. People just stepped right up to the installation and began to interact with it. They were actually learning on their own while performing the drawing. People were actually converging with the technology. Furthermore, those that were done performing their drawing became evangelists, telling those who followed them their idea of how best to use the application. At that moment it became cemented in my mind that I had succeeded in my experiment. People had invested themselves in the piece to the point of bringing out their own inner artist. Several times I stepped in to &#8216;coach&#8217; people on how to get the most out of the motion detection while drawing their portrait. The response I got was unexpected. People took personal offense that I was pushing my artistic ideas on their own drawing. Again, success. I was also sent to the floor several times by attendees who said they had come to the event specifically to see my work which they had been following online. There were even several people who mentioned that they had hooked my work up to projectors at parties they were holding. Wha?! Seriously, amazed.</p>
<p>I&#8217;d like to thank several people for the night. <a href="http://www.flickr.com/people/studionumbernine/">Steve Benoit</a> for all his help with testing the application, videography and film editing of the event. The result is the shweet movie posted above. Rachel Kjack and Adrienne Fritze from <a href="http://www.sao.org/">SAO</a> and <a href="http://www.workingartistsonline.com/">Working Artists Online</a> respectively for their organization and inviting me to submit my work. All that attended, I met some inspirational folk. And finally, my wife <a href="http://www.flickr.com/people/ms_boomer/">Lisa</a> for her unending support and diggin&#8217; me even when I have late night dreaded &#8216;code eyes&#8217;.</p>
<p>Looking forward to the next event.</p>
<p>Related:</p>
<p><a href="http://www.christeso.com/autodraw">the online version of the installation</a></p>
<p><a href="http://www.flickr.com/photos/nymphobrainiac/sets/72157608140818546/show/">the flickr gallery of finished drawings</a></p>
<p><a href="http://www.christeso.com/index.php/life/equilibrium-the-human-mashup/">previous blog post</a></p>
<p><a href="http://www.workingartistsonline.com/">working artists online</a></p>
<p><a href="http://www.sao.org/">software association of oregon</a></p>
<p>Permalink: http://www.christeso.com/index.php/lab/equilibrium-the-human-mashup-a-follow-up/</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=Equilibrium%20The%20Human%20Mashup%3A%20A%20Follow%20Up%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F&amp;t=Equilibrium%20The%20Human%20Mashup%3A%20A%20Follow%20Up" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F&amp;title=Equilibrium%20The%20Human%20Mashup%3A%20A%20Follow%20Up&amp;bodytext=lab" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F&amp;title=Equilibrium%20The%20Human%20Mashup%3A%20A%20Follow%20Up&amp;notes=lab" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F&amp;title=Equilibrium%20The%20Human%20Mashup%3A%20A%20Follow%20Up&amp;annotation=lab" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fequilibrium-the-human-mashup-a-follow-up%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/equilibrium-the-human-mashup-a-follow-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actionscript Sound Visualization with Drawing Api</title>
		<link>http://www.christeso.com/blog/index.php/lab/actionscript-sound-visualization-with-drawing-api/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/actionscript-sound-visualization-with-drawing-api/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 22:13:29 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[Actionscript Sound & Drawing Api]]></category>
		<category><![CDATA[Actionscript Sound Visualization]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[sound visualization]]></category>
		<category><![CDATA[soundmixer]]></category>

		<guid isPermaLink="false">http://www.christeso.com/index.php/life/drawr/</guid>
		<description><![CDATA[lab]]></description>
			<content:encoded><![CDATA[<div style="text-align: left; padding: 3px;">
<a href="http://www.christeso.com/labs/actionscript-3-sound-visualization-drawing.asp" target="_blank"><img src="http://farm4.static.flickr.com/3235/2871342272_d009b0775c.jpg" style="border: solid 2px #000000;" alt="" /></a><br />
<br />
<span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/nymphobrainiac/2871342272/"></a>, originally uploaded by <a href="http://www.flickr.com/people/nymphobrainiac/">NymphoBrainiac</a>.</span>
</div>
<p>
drawn entirely with code, with an assist from radiohead.</p>
<p>Think of code as the &#8216;painter&#8217;. The &#8216;painter&#8217; analyzes the the color of each pixel in the image you pass it. Other code analyzes Mp3 data and controls the &#8216;painter&#8217;. Thus, the  &#8216;painting&#8217; is performed using music as the artist.</p>
<p><a href="http://www.christeso.com/labs/actionscript-3-sound-visualization-drawing.asp" target="_blank">go here to draw your own</a>
</p>
<p>Permalink: http://www.christeso.com/index.php/lab/actionscript-sound-visualization-with-drawing-api/</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=Actionscript%20Sound%20Visualization%20with%20Drawing%20Api%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F&amp;t=Actionscript%20Sound%20Visualization%20with%20Drawing%20Api" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F&amp;title=Actionscript%20Sound%20Visualization%20with%20Drawing%20Api&amp;bodytext=lab" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F&amp;title=Actionscript%20Sound%20Visualization%20with%20Drawing%20Api&amp;notes=lab" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F&amp;title=Actionscript%20Sound%20Visualization%20with%20Drawing%20Api&amp;annotation=lab" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Factionscript-sound-visualization-with-drawing-api%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/actionscript-sound-visualization-with-drawing-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Motion Detection Drawing Installation</title>
		<link>http://www.christeso.com/blog/index.php/lab/as3-motion-detection-drawing-installation/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/as3-motion-detection-drawing-installation/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 21:28:03 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[Drawing]]></category>
		<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Webcam Motion Detection]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[inverge]]></category>
		<category><![CDATA[motion detection]]></category>
		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.christeso.com/index.php/life/actionscript-motion-detection-and-drawing/</guid>
		<description><![CDATA[lab]]></description>
			<content:encoded><![CDATA[<p><object width="650" height="488"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2339145&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2339145&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="650" height="488"></embed></object><br /><a href="http://vimeo.com/2339145">AS3 Webcam Drawing</a> from <a href="http://vimeo.com/user824020">chris teso</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>You have to admire a job that allows you to make a bumble-bee/owl (a bumblowl?) fly around a mural merely by waving your finger&#8230; all while drinking beer.</p>
<p>This is an elaboration on my <a href="http://www.christeso.com/index.php/category/lab/webcam-motion-detection/" target="_blank">actionscript webcam motion detection experiments</a>, built as an installation for the <a href="http://www.inverge.com/" target="_blank">Inverge</a> party hosted by North. The idea was to take motion detection and combine it with art in the form of digital drawing and 2d space in the form of a wall mural. The concept is to allow human interaction to affect physical space, freeing oneself from all traditional user interface. The application works by constantly monitoring a webcam, taking snapshots of each frame every millisecond. The pixels in the current frame are compared to pixels in the previous. The difference in brightness within each section determines whether or not motion had occurred in this area of the screen. If motion is detected the coordinates of a rectangular grid around said motion is recorded and the owl is ordered to go to that point. The line drawings begin and follow the owl recording a &#8216;flight path&#8217;. A mask is drawn to prevent the owl and its drawing trail from going in front of some of the trees giving the mural a sense of dimension.</p>
<p>Thanks to the great <a href="http://www.flickr.com/photos/natzke/" target="_blank">Eric Natzke</a> for the drawing inspiration and open source, and <a href="http://www.north.com/blog" target="_blank">NORTH</a> for being forward thinking enough to encourage digital experimentation.</p>
<p>Permalink: http://www.christeso.com/index.php/lab/as3-motion-detection-drawing-installation/</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=AS3%20Motion%20Detection%20Drawing%20Installation%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F&amp;t=AS3%20Motion%20Detection%20Drawing%20Installation" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F&amp;title=AS3%20Motion%20Detection%20Drawing%20Installation&amp;bodytext=lab" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F&amp;title=AS3%20Motion%20Detection%20Drawing%20Installation&amp;notes=lab" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F&amp;title=AS3%20Motion%20Detection%20Drawing%20Installation&amp;annotation=lab" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fas3-motion-detection-drawing-installation%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/as3-motion-detection-drawing-installation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Minority Report Actionscript Webcam Interface</title>
		<link>http://www.christeso.com/blog/index.php/lab/minority-report-actionscript-webcam-interface/</link>
		<comments>http://www.christeso.com/blog/index.php/lab/minority-report-actionscript-webcam-interface/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 21:59:16 +0000</pubDate>
		<dc:creator>chris teso</dc:creator>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Minority Report]]></category>
		<category><![CDATA[Webcam Motion Detection]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[creative code]]></category>
		<category><![CDATA[environmental interaction]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.christeso.com/index.php/uncategorized/minority-report/</guid>
		<description><![CDATA[lab]]></description>
			<content:encoded><![CDATA[<p><object type="application/x-shockwave-flash" width="650" height="488" data="http://www.flickr.com/apps/video/stewart.swf?v=63881" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=c672c2822d&amp;photo_id=2723721564"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=63881"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=63881" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;photo_secret=c672c2822d&amp;photo_id=2723721564" height="488" width="650"></embed></object></p>
<p>Expanding on my <a href="http://www.christeso.com/index.php/lab/actionscript-30-webcam-motion-detection-with-interaction-physics/" target="_blank">Actionscript Webcam Motion Detection</a> experiments, I&#8217;ve built a rudimentary &#8216;Minority Report&#8217;-inspired interface.</p>
<p>The concept is to create a new type of user interface rebuking the typical peripherals of the keyboard and mouse. Instead, a user would merely stand in front of a wall and control the interface with their movements. I&#8217;ve seen other attempts at doing this. See <a href="http://www.microsoft.com/surface/index.html" target="_blank">Microsoft Surface</a>, iphone, <a href="http://gizmodo.com/gadgets/minority-report/minority-report-touch-interface-for-real-229464.php" target="_blank">this thing</a> et. al. All cool for sure, but all done using touch screens. Touch screens are so 2006. Even Tom Cruise used <a href="http://www.codinghorror.com/blog/images/minority-report-ui.jpg" target="_blank">gloves</a>. Pfft. The idea is to free oneself from all physical interface. To use human gestures.</p>
<p>I haven&#8217;t tried it properly installed and projected on a wall yet.</p>
<p>You can try it here: <a href="http://www.christeso.com/labs/actionscript-3-webcam-minority-report.asp">actionscript webcam minority report interface</a> (webcam required obv)</p>
<p>Like everything that exists, this is a work in progress.</p>
<p>Permalink: http://www.christeso.com/index.php/lab/minority-report-actionscript-webcam-interface/</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow" id="twitter"  target="_blank" href="http://twitter.com/home?status=Minority%20Report%20Actionscript%20Webcam%20Interface%20-%20http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F" title="Twitter"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="facebook"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F&amp;t=Minority%20Report%20Actionscript%20Webcam%20Interface" title="Facebook"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="digg"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F&amp;title=Minority%20Report%20Actionscript%20Webcam%20Interface&amp;bodytext=lab" title="Digg"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="del.icio.us"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F&amp;title=Minority%20Report%20Actionscript%20Webcam%20Interface&amp;notes=lab" title="del.icio.us"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" id="google"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F&amp;title=Minority%20Report%20Actionscript%20Webcam%20Interface&amp;annotation=lab" title="Google Bookmarks"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow" id="print"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.christeso.com%2Fblog%2Findex.php%2Flab%2Fminority-report-actionscript-webcam-interface%2F&amp;partner=sociable" title="Print"><img src="http://www.christeso.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.christeso.com/blog/index.php/lab/minority-report-actionscript-webcam-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
