<?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>CreativeApplications.Net &#187; opensource</title>
	<atom:link href="http://www.creativeapplications.net/tag/opensource/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.creativeapplications.net</link>
	<description>Apps that Inspire..</description>
	<lastBuildDate>Thu, 09 Feb 2012 12:41:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Augmented Reality with Processing [Tutorial, Processing]</title>
		<link>http://www.creativeapplications.net/processing/augmented-reality-with-processing-tutorial-processing/</link>
		<comments>http://www.creativeapplications.net/processing/augmented-reality-with-processing-tutorial-processing/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 13:34:58 +0000</pubDate>
		<dc:creator>Amnon Owed</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AR]]></category>
		<category><![CDATA[au]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[GSVideo]]></category>
		<category><![CDATA[NyArtoolkit]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=20933</guid>
		<description><![CDATA[All of the visuals in the above video were created using NyArtoolkit for Processing. NyARToolkit is an augmented reality toolkit built with 100% pure Java. It is derived from ARToolkit-2.72.1. Like Processing itself it’s open source and free! In this tutorial you will learn how to use it to place computer generated imagery correctly onto [...]]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/34047128?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="640" height="360"></iframe></p>
<p>All of the visuals in the above video were created using <a href="http://nyatla.jp/nyartoolkit/wiki/index.php?NyAR4psg.en">NyArtoolkit</a> for Processing. <a href="http://nyatla.jp/nyartoolkit/wiki/index.php?NyAR4psg.en">NyARToolkit</a> is an augmented reality toolkit built with 100% pure Java. It is derived from ARToolkit-2.72.1. Like Processing itself it’s open source and free! In this tutorial you will learn how to use it to place computer generated imagery correctly onto real world footage. To do this in real-time NyArtoolkit uses markers &#8211; black and white images &#8211; to determine the three-dimensional position and orientation in the real world. Most likely you will have seen something like this before, but now you will learn how to do it yourself using freely available software.</p>
<p>All right so let’s start with the general setup. What do you need to get started?</p><p><a href="http://www.creativeapplications.net/processing/augmented-reality-with-processing-tutorial-processing/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... Augmented Reality with Processing [Tutorial, Processing]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/processing/augmented-reality-with-processing-tutorial-processing/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>AntiMap [oF, Android, iPhone, Javascript, Processing]</title>
		<link>http://www.creativeapplications.net/android/antimap-of-android-iphone-javascript-processing/</link>
		<comments>http://www.creativeapplications.net/android/antimap-of-android-iphone-javascript-processing/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 10:39:00 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[record]]></category>
		<category><![CDATA[Trent Brooks]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=20693</guid>
		<description><![CDATA[The AntiMap by Trent Brooks is an Open Source creative toolset for recording and visualising your own data. The project currently consists of a phone utility application (AntiMap Log &#8211; iOS/Android) for data capture, and a couple of web/desktop applications (AntiMap Simple (Javascript) and AntiMap Video (oF)) for post analysis and data visualisation. The mobile application [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap06.png"><img class="alignnone size-large wp-image-20698" title="antimap06" src="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap06-640x313.png" alt="" width="640" height="313" /></a></p>
<p>The AntiMap by Trent Brooks is an Open Source creative toolset for recording and visualising your own data. The project currently consists of a phone utility application (AntiMap Log &#8211; iOS/Android) for data capture, and a couple of web/desktop applications (AntiMap Simple (Javascript) and AntiMap Video (oF)) for post analysis and data visualisation.</p>
<p>The mobile application uses the GPS and Compass sensors on your phone to extract and store the following data: latitude, longitude, compass direction, speed (kph), distance (kms), time (milliseconds), and finally an input field for optional points of interest. Recorded data is saved to a CSV file at 30 FPS with filenames matching the date &amp; time they were created. Eg: ‘150811_1230_08.csv’, was created on the 15th August 2011, at 12:30pm and 8 seconds. For Android users, files can be retrieved from the ‘AntiMap’ folder on the SD card. For iPhone users, files can be retrieved from your device in iTunes/Apps/AntiMap Log Documents (just under the ‘File Sharing’ heading). The mobile applications are free and Open Source, with Processing (Android) and Openframeworks (iPhone). Source code is provided in hope that users can learn from and find interesting ways to visualise their data.</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap03.png"><img class="alignnone size-medium wp-image-20701" title="antimap03" src="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap03-320x178.png" alt="" width="320" height="178" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap04.png"><img class="alignnone size-medium wp-image-20700" title="antimap04" src="http://www.creativeapplications.net/wp-content/uploads/2011/12/antimap04-320x179.png" alt="" width="320" height="179" /></a></p><p><a href="http://www.creativeapplications.net/android/antimap-of-android-iphone-javascript-processing/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... AntiMap [oF, Android, iPhone, Javascript, Processing]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/android/antimap-of-android-iphone-javascript-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bandwidth [openFrameworks, Mac, Windows, Sound]</title>
		<link>http://www.creativeapplications.net/mac/bandwidth-openframeworks-mac-windows/</link>
		<comments>http://www.creativeapplications.net/mac/bandwidth-openframeworks-mac-windows/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 19:16:50 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[balldroppings]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Joshua T Nimoy]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[osc]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=19767</guid>
		<description><![CDATA[Latest by Joshua Nimoy is this synaesthetic, interactive musical experience provides six original modes in which the player may produce music. Advanced configuration is possible by editing the contents of the bundled settings.yml. By changing the values of that file, you can control the window properties, startup behaviour, user interface detail, and OSC network parameters. When set [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/10/bandwidth_screenshot3.png"><img class="alignnone size-large wp-image-19772" title="bandwidth_screenshot3" src="http://www.creativeapplications.net/wp-content/uploads/2011/10/bandwidth_screenshot3-640x400.png" alt="" width="640" height="400" /></a></p>
<p>Latest by Joshua Nimoy is this <em>synaesthetic, interactive musical experience provides six original modes in which the player may produce music.</em></p>
<p>Advanced configuration is possible by editing the contents of the bundled settings.yml. By changing the values of that file, you can control the window properties, startup behaviour, user interface detail, and OSC network parameters. When set up on multiple machines, Bandwidth&#8217;s &#8216;grid&#8217; mode will broadcast OSC messages and most other modes will receive.</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/10/bandwidth_screenshot2.png"><img class="alignnone size-large wp-image-19771" title="bandwidth_screenshot2" src="http://www.creativeapplications.net/wp-content/uploads/2011/10/bandwidth_screenshot2-640x400.png" alt="" width="640" height="400" /></a></p><p><a href="http://www.creativeapplications.net/mac/bandwidth-openframeworks-mac-windows/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... Bandwidth [openFrameworks, Mac, Windows, Sound]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/mac/bandwidth-openframeworks-mac-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realtime Dithered Screen Capture [openFrameworks]</title>
		<link>http://www.creativeapplications.net/openframeworks/realtime-dithered-screen-capture-openframeworks/</link>
		<comments>http://www.creativeapplications.net/openframeworks/realtime-dithered-screen-capture-openframeworks/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 20:15:39 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[dither]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[Jesus Gollonet]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[real time]]></category>
		<category><![CDATA[screen capture]]></category>
		<category><![CDATA[wondow]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=19445</guid>
		<description><![CDATA[Using code that Zach Lieberman posted on the oF forums which allows you to show the pixels directly below the OF app window in a texture, Jesus Gollonet created this little experiment which converts all content below the window into dithered image. This allows you to move the window around the screen exploring the dithered space in color image/video/etc. &#160;Continue [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/10/realtimedeither03.png"><img class="alignnone size-full wp-image-19451" title="realtimedeither03" src="http://www.creativeapplications.net/wp-content/uploads/2011/10/realtimedeither03.png" alt="" width="640" height="428" /></a></p>
<p>Using code that Zach Lieberman posted on the oF forums which allows you to show the pixels directly below the OF app window in a texture, Jesus Gollonet created this little experiment which converts all content below the window into dithered image. This allows you to move the window around the screen exploring the dithered space in color image/video/etc.</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/10/realtimedeither02.jpg"><img title="realtimedeither02" src="http://www.creativeapplications.net/wp-content/uploads/2011/10/realtimedeither02-640x474.jpg" alt="" width="640" height="474" /></a></p>
<p>&nbsp;</p><p><a href="http://www.creativeapplications.net/openframeworks/realtime-dithered-screen-capture-openframeworks/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... Realtime Dithered Screen Capture [openFrameworks]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/openframeworks/realtime-dithered-screen-capture-openframeworks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Making of the Mill Touch [Cinder]</title>
		<link>http://www.creativeapplications.net/featured/the-making-of-the-mill-touch-cinder/</link>
		<comments>http://www.creativeapplications.net/featured/the-making-of-the-mill-touch-cinder/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 14:03:01 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[cinder]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Andrew Bell]]></category>
		<category><![CDATA[glass]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[multitouch]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[rearprojection]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[the mill]]></category>
		<category><![CDATA[tweening]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=18924</guid>
		<description><![CDATA[Last week The Mill unrevealed their rear projected, 5’x 3’ interactive touch screen which is an interactive visualization of their portfolio (spanning 20 years) developed in Cinder. What makes this screen unique is extensive effort behind design and software development by the NY Digital team comprising Andrew Bell and an incredible group designers, flash developers and digital [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/gallery_2.jpg"><img class="alignnone size-large wp-image-18944" title="gallery_2" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/gallery_2-640x359.jpg" alt="" width="640" height="359" /></a></p>
<p>Last week The Mill unrevealed their rear projected, 5’x 3’ interactive touch screen which is an interactive visualization of their portfolio (spanning 20 years) developed in Cinder. What makes this screen unique is extensive effort behind design and software development by the NY Digital team comprising Andrew Bell and an incredible group designers, flash developers and digital artists. For those that may be unaware, Andrew Bell is the main person behind Cinder, powerful, intuitive toolbox for creative programming, previously an in-house tool at the Barbarian Group where Andrew worked, now open sourced and developed by Andrew as part of the Mill&#8217;s R+D. We got a chance to to ask Andrew about the project including some making-of details and  features we will see in future releases of Cinder, including the forthcoming Cinder Timeline API &#8211; tweening library.</p><p><a href="http://www.creativeapplications.net/featured/the-making-of-the-mill-touch-cinder/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... The Making of the Mill Touch [Cinder]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/featured/the-making-of-the-mill-touch-cinder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Super Recursion Toy [Javascript]</title>
		<link>http://www.creativeapplications.net/javascript-2/super-recursion-toy-javascript/</link>
		<comments>http://www.creativeapplications.net/javascript-2/super-recursion-toy-javascript/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 18:54:04 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Justin Windle]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[recursion]]></category>
		<category><![CDATA[WebApp]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=18862</guid>
		<description><![CDATA[Latest by Justin Windle is this &#8216;Super Recursion Toy&#8217; created using Canvas. He writes: Revisiting one of my favorite topics &#8211; recursion. This canvas based tool allows you to explore branching algorithms &#38; rendering techniques, as well as save a snapshot of your creations. It&#8217;s also open source, which is always nice…Continue reading.... Super Recursion Toy [Javascript]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/recursiontoy01.png"><img class="alignnone size-large wp-image-18865" title="recursiontoy01" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/recursiontoy01-640x297.png" alt="" width="640" height="297" /></a></p>
<p>Latest by Justin Windle is this &#8216;Super Recursion Toy&#8217; created using Canvas. He writes:</p>
<p><em>Revisiting one of my favorite topics &#8211; recursion. This canvas based tool allows you to explore branching algorithms &amp; rendering techniques, as well as save a snapshot of your creations. It&#8217;s also open source, which is always nice…</em></p><p><a href="http://www.creativeapplications.net/javascript-2/super-recursion-toy-javascript/?utm_source=feed&utm_campaign=rss-mo-more&utm_medium=rss">Continue reading.... Super Recursion Toy [Javascript]</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/javascript-2/super-recursion-toy-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plask [Scripts]</title>
		<link>http://www.creativeapplications.net/scripts/plask-scripts/</link>
		<comments>http://www.creativeapplications.net/scripts/plask-scripts/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 14:14:54 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[Scripts]]></category>
		<category><![CDATA[creativecode]]></category>
		<category><![CDATA[Dean McNamee]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[v8]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=18622</guid>
		<description><![CDATA[Plask is a programming environment for multimedia and computational design. Created by Dean McNamee, Plask was built objC, V8 Javascript Engine, Skia rasterization library, NodeJS, Cocoa and OpenGL, FreeImage and Syphon. Currently available for Mac OSX only. The download includes the &#8220;PlaskLauncher.app&#8221; and a number of basic examples to get you started. Released under the BSD [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-18627" title="plaskmain" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/plaskmain-640x213.png" alt="" width="640" height="213" /></p>
<p>Plask is a programming environment for <em>multimedia and computational design</em>. Created by <a href="http://www.deanmcnamee.com/">Dean McNamee</a>, Plask was built objC, V8 Javascript Engine, Skia rasterization library, NodeJS, Cocoa and OpenGL, FreeImage and Syphon.</p>
<p>Currently available for Mac OSX only. <a href="http://www.plask.org/">The download</a> includes the &#8220;PlaskLauncher.app&#8221; and a number of basic examples to get you started.</p>
<p><img class="alignnone size-full wp-image-18624" title="Screen Shot 2011-08-16 at 15.01.26" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/Screen-Shot-2011-08-16-at-15.01.26.png" alt="" width="580" height="356" /></p>
<p>Released under the BSD license, source is available on <a href="http://github.com/deanm/plask">github.com/deanm/plask</a><br />
Credits: code and ideas from: Nicolas Garcia Belmonte, Thatcher Ulrich, Ryan Alexander and Marcin Ignac</p>
<p>-</p>
<p><iframe src="http://player.vimeo.com/video/27737392?title=0&amp;byline=0&amp;portrait=0" frameborder="0" width="640" height="360"></iframe><a href="http://www.plask.org/"><img class="alignnone size-large wp-image-18628" title="Screen Shot 2011-08-16 at 15.04.58" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/Screen-Shot-2011-08-16-at-15.04.58-640x406.png" alt="" width="640" height="406" /></a></p>
<p>Projects below: <a href="http://marcinignac.com/projects/roskilde-festival-activity/">Roskilde Festival Activity</a> by Marcin Ignac and <a href="http://www.deanmcnamee.com/native-instruments-razor">Native Instruments Razor</a> by Dean McNamee.</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/roskilde-activity1.jpg"><img class="alignnone size-large wp-image-18630" title="roskilde-activity1" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/roskilde-activity1-640x286.jpg" alt="" width="640" height="286" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/roskilde-activity3-1.png"><img class="alignnone size-large wp-image-18629" title="roskilde-activity3 (1)" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/roskilde-activity3-1-640x286.png" alt="" width="640" height="286" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/99002.jpg"><img class="alignnone size-large wp-image-18631" title="99002" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/99002-640x426.jpg" alt="" width="640" height="426" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/08/102003.jpg"><img class="alignnone size-large wp-image-18632" title="102003" src="http://www.creativeapplications.net/wp-content/uploads/2011/08/102003-640x426.jpg" alt="" width="640" height="426" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/scripts/plask-scripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Muze [Arduino, Sound]</title>
		<link>http://www.creativeapplications.net/sound/muze-arduino-sound/</link>
		<comments>http://www.creativeapplications.net/sound/muze-arduino-sound/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 13:38:44 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[instrument]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[teaguelabs]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=17092</guid>
		<description><![CDATA[Muze is the latest creation of Teaugue Labs, a collective operating alongside Teague, a long established industrial design agency and a name behind products for companies such as samsung and microsoft. The device itself is a musical instrument that &#8216;plays with you&#8217; and aims to provoke a two way dialog between musicians. The device reads a palette [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/Muze_TechCloseup.jpg"><img class="alignnone size-large wp-image-17095" title="Muze_TechCloseup" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/Muze_TechCloseup-640x285.jpg" alt="" width="640" height="285" /></a></p>
<p>Muze is the latest creation of<a href="http://labs.teague.com/"> Teaugue Labs</a>, a collective operating alongside <a href="http://www.teague.com/">Teague</a>, a long established industrial design agency and a name behind products for companies such as samsung and microsoft. The device itself is a musical instrument that &#8216;plays with you&#8217; and aims to provoke a <em>two way dialog</em> between musicians.</p>
<p>The device reads a palette of notes that it can in-turn interpret and compose into various rhythms and phrases that are strung together to form something musical. The user can then influence these strings of notes and rhythms to create entirely new compositions using a simple collection of 8 triggers/knobs which are manually inserted. No single knob controls a single function, but rather a blend of functions derived from it&#8217;s rotation.</p>
<p>The team explains the thinking:</p>
<p><em><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/MuzeProgramLogic-01_jm.png"><img class="size-thumbnail wp-image-17100 alignleft" title="MuzeProgramLogic-01_jmx" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/MuzeProgramLogic-01_jmx1-160x160.png" alt="" width="160" height="160" /></a>A couple of us started talking about the state of musical instruments, digital music creation, and how so much of it buckles under the weight of heavy user interfaces and the desire for more knobs, buttons and faders. What if we were to create a device that sings to you and has its own musical inclinations, yet can also engage in a two way dialog with another musician? Not something that can be controlled as much as be guided and influenced – and as a result guides and influences the user.</em></p>
<p><em>But Muze also has its own desire to explore and will continually improvise on the melodies it creates with you. It is out of this ability for it to self-create that Muze becomes a partner and not just an instrument. For instance, we have played with it and then left it to play over lunch. When we return it has come-up with something completely new, yet derivative. Sometimes what Muze creates is enjoyable, sometimes not. At which point you give Muze a little nudge and it creates something new.<br />
</em></p>
<p>All of the code and circuits are open source. You can check out the Arduino code and Eagle circuit schematic on the <a href="http://labs.teague.com/?p=1045">site</a>. The team is planning to make it more musical, robust, and simple and would love to hear your thoughts, suggestions.</p>
<p><a href="http://labs.teague.com/?p=1045">Project Page</a></p>
<p><iframe src="http://player.vimeo.com/video/25106513?byline=0" width="640" height="360" frameborder="0"></iframe><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/MuzeProgram11.png"><img class="alignnone size-large wp-image-17096" title="MuzeProgram11" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/MuzeProgram11-640x359.png" alt="" width="640" height="359" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/sound/muze-arduino-sound/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Polycode [c++, Framework]</title>
		<link>http://www.creativeapplications.net/c/polycode-c-framework/</link>
		<comments>http://www.creativeapplications.net/c/polycode-c-framework/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 19:06:49 +0000</pubDate>
		<dc:creator>Filip</dc:creator>
				<category><![CDATA[c++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[creativecode]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[ivansafrin]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=16926</guid>
		<description><![CDATA[Designed and developed by Ivan Safrin, Polycode is a new free, open-source, cross-platform framework for creative code. You can use it as a C++ API or as a standalone scripting language to get easy and simple access to accelerated 2D and 3D graphics, hardware shaders, sound and network programming, physics engines and more. On top of the core C++ API, Polycode offers a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-16934" title="polycode000" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode000-640x190.png" alt="" width="640" height="190" /></p>
<p>Designed and developed by <a href="http://www.ivansafrin.com/" target="_blank">Ivan Safrin</a>, Polycode is a new free, open-source, cross-platform framework for creative code. You can use it as a C++ API or as a standalone scripting language to get easy and simple access to accelerated 2D and 3D graphics, hardware shaders, sound and network programming, physics engines and more.</p>
<p><em>On top of the core C++ API, Polycode offers a Lua-based scripting system with its own set of compilation tools. The Lua API mirrors the C++ API and can be used to easily create prototypes and even publish complete applications to multiple platforms without compiling C++.</em></p>
<p>Polycode is made possible by <a href="http://www.lua.org/" target="_blank">Lua</a>, <a href="http://www.freetype.org/" target="_blank">Freetype</a>, <a href="http://www.libpng.org/pub/png/libpng.html" target="_blank">libpng</a>, <a href="http://icculus.org/physfs/" target="_blank">PhysicsFS</a>, <a href="http://jsoncpp.sourceforge.net/" target="_blank">JSONCpp</a>,<a href="http://www.grinninglizard.com/tinyxml/" target="_blank">tinyxml</a>, <a href="http://www.vorbis.com/" target="_blank">Ogg Vorbis</a>, <a href="http://www.box2d.org/" target="_blank">Box2D</a>, <a href="http://bulletphysics.org/" target="_blank">Bullet Physics</a> and many people and projects which inspired the effort.</p>
<p>More information at <a href="http://polycode.org/">polycode.org</a> and <a href="http://github.com/ivansafrin/Polycode">github</a>. For full list of features see <a href="http://polycode.org/features/">here</a>.</p>
<p>For more tools, see our new <a href="http://www.creativeapplications.net/tools/">tools page</a>.</p>
<p>&#8211;</p>
<p><a title="Permanent Link to The color of space" rel="bookmark" href="http://www.ivansafrin.com/the-color-of-space/">The color of space</a> by <a href="http://www.ivansafrin.com/" target="_blank">Ivan Safrin</a> using <em>Polycode.</em></p>
<p><em>One idea is to use color as a simple, abstract representation of the personal perception of geographical location. My original plan was to map New York City in such a manner, but collecting this kind of information locally seemed like an insurmountable task, so the data was collected via the internet for the entire country using a google form posted to reddit.com, with zip codes serving as geographical anchors to place data into context.</em></p>
<p><em><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode01.jpg"><img class="alignnone size-large wp-image-16930" title="polycode01" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode01-640x481.jpg" alt="" width="640" height="481" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode02.jpg"><img class="alignnone size-large wp-image-16929" title="polycode02" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode02-640x481.jpg" alt="" width="640" height="481" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode03.jpg"><img class="alignnone size-large wp-image-16928" title="polycode03" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode03-640x411.jpg" alt="" width="640" height="411" /></a></em></p>
<p><em><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode03.jpg"></a></em>&#8220;MNDR &#8211; Cut Me Out&#8221; Music video.</p>
<p><em> Official music for MNDR&#8217;s Cut me out directed by Timothy Saccenti. Polycode and the Polycode Kinect module were used to capture and render live 3D data from a Microsoft Kinect device for this music video.</em></p>
<p><em><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode04.png"><img class="alignnone size-large wp-image-16933" title="polycode04" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode04-640x271.png" alt="" width="640" height="271" /></a><a href="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode05.png"><img class="alignnone size-large wp-image-16932" title="polycode05" src="http://www.creativeapplications.net/wp-content/uploads/2011/06/polycode05-640x266.png" alt="" width="640" height="266" /></a><iframe width="640" height="390" src="http://www.youtube.com/embed/sQE2u0-fYtA" frameborder="0" allowfullscreen></iframe><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/c/polycode-c-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Toxiclibs [Processing, Tutorial]</title>
		<link>http://www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/</link>
		<comments>http://www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/#comments</comments>
		<pubDate>Thu, 05 May 2011 21:41:21 +0000</pubDate>
		<dc:creator>Amnon Owed</dc:creator>
				<category><![CDATA[Processing]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[colour]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[particles]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[springs]]></category>
		<category><![CDATA[toxiclibs]]></category>

		<guid isPermaLink="false">http://www.creativeapplications.net/?p=16361</guid>
		<description><![CDATA[Would you like to create what you see in those videos? Well, read on! Because in this article I will show you how you can do just that using Processing and Toxiclibs. As Processing’s biggest open source collection of libraries, Toxiclibs can assist you in areas like geometry, physics, math and color. With so much [...]]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/23319820?title=0&amp;byline=0&amp;portrait=0&amp;autoplay=0" width="640" height="360" frameborder="0"></iframe><iframe src="http://player.vimeo.com/video/22772055?title=0&amp;byline=0&amp;portrait=0&amp;autoplay=0" width="640" height="360" frameborder="0"></iframe></p>
<p>Would you like to create what you see in those videos? Well, read on! Because in this article I will show you how you can do just that using Processing and <a href="http://toxiclibs.org/">Toxiclibs</a>. As Processing’s biggest open source collection of libraries, Toxiclibs can assist you in areas like geometry, physics, math and color. With so much code candy for the taking, the libs can still be a bit daunting for many people, especially Processing beginners. That’s why – in addition to great functionality and documentation – clear and inspiring examples on how to use the library are so important. Fortunately the collection of code examples bundled with the libs is growing steadily. I hope my examples can add to that and be helpful to those learning how to use this wonderful collection of code which is shared and continuously developed by <a href="http://postspectacular.com/" target="_blank">Karsten Schmidt</a>.</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-BreakCircle-by-Amnon-Owed.jpg"><img class="alignnone size-large wp-image-16370" src="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-BreakCircle-by-Amnon-Owed-640x360.jpg" alt="" width="640" height="360" /></a></p>
<p>I’ve already shared the two code examples from the first video on my <a href="http://amnonp5.wordpress.com/" target="_blank">blog</a>. As the video shows these concern creating, picking and dragging polygon shapes (<strong>example 1</strong>) and the destruction of voronoi tesselated circles (<strong>example 2</strong>). The full source code and a more detailed explanation of those two examples can be found <a href="http://amnonp5.wordpress.com/2011/04/23/working-with-toxiclibs/" target="_blank"><strong>HERE</strong></a>. In this follow-up I will share the source code for the two brand new examples you see in the second video. This time I’m venturing a little deeper into the physics capabilities of Toxiclibs, more specifically the <a href="http://toxiclibs.org/docs/verletphysics/toxi/physics2d/VerletSpring2D.html" target="_blank">VerletSpring2D</a> class (<strong>example 3</strong>) and we will explore a whole new area of the libs, namely the color library (<strong>example 4</strong>). All of the examples are commented as much as possible. So by running them and looking through the code, you should be able to understand what’s going on. The rest of this blog post can be considered additional background information ranging from general description to specific pointers. Note (06/05/2011): Karsten came up with some useful suggestions to further improve the code, which of course I was happy to apply. This explains why the visuals when running the code may differ ever so slightly from what you see in the movie.</p>
<p><span style="text-decoration: underline"><strong>Example 3: The Infinite Rope</strong></span></p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-Spring2D-v2-by-Amnon-Owed.jpg"><img class="alignnone size-large wp-image-16380" src="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-Spring2D-v2-by-Amnon-Owed-640x360.jpg" alt="" width="640" height="360" /></a></p>
<p>What’s better than a rope? Exactly. An INFINITE rope! This example demonstrates both the creation and efficient removal of particles, springs and behaviors. The three pillars of the physics system. Specifically it uses the <a href="http://toxiclibs.org/docs/verletphysics/toxi/physics2d/VerletSpring2D.html" target="_blank">VerletSpring2D</a> class, which can connect two <a href="http://toxiclibs.org/docs/verletphysics/toxi/physics2d/VerletParticle2D.html" target="_blank">VerletParticles</a> in space. For simplicity it’s kept 2D, but everything with regard to physics in Toxiclibs also has a 3D equivalent. Let me describe the way it works and some of the specific choices and solutions. When the mouse is dragged a new particle is created and connected to the last one, effectively making a digital rope. Release the mouse to start a new rope. Push behavior is added to each particle to make it look a little more realistic. For aesthetic reasons, the color of every segment is determined by the direction of each spring.</p>
<p>The most important part of the sketch however, is the code that removes off-screen objects. This is absolutely imperative to keep things running smoothly. Let me elaborate on two specific aspects with regard to the removeOffscreen() function. First, it’s running backwards through the for loop! This is because we are removing things from the list. Meaning the list is getting shorter while you are going through it. Therefore you need to go backwards to prevent problems and to make sure you cover every item in the list. Second, notice that I remove behavior(i+1) for particle(i). The reason is that the first behavior on the list is the gravity we added in setup(). Therefore the behavior of particle 1 can be found in position 2 of the behavior list and so on.</p>
<pre class="crayon-plain-tag"><code>//  Toxiclibs Code Example: The Infinite Rope
//  by Amnon Owed (05/05/2011)
//  minor refactorings by Karsten Schmidt (06/05/2011)

import processing.opengl.*;

import toxi.physics2d.behaviors.*;
import toxi.physics2d.*;
import toxi.geom.*;
import toxi.color.*;

VerletPhysics2D physics;
VerletParticle2D prev;

int continuous,current; // variables to create a new continuous line on each mouse drag
 
void setup() {
  size(1280,720,OPENGL);
  physics = new VerletPhysics2D();
  // add gravity in positive Y direction
  physics.addBehavior(new GravityBehavior(new Vec2D(0,0.1)));
  // set the stroke weight of the line
  strokeWeight(2);
}
 
void draw() {
  background(255);
  // update all the physics stuff (particles, springs, gravity)
  physics.update();
 
  // draw a line segment for each spring and change the color of it based on the x position
  for(VerletSpring2D s : physics.springs) {
    // map the direction of each spring to a hue
    float currHue=map(s.b.sub(s.a).heading(),-PI,PI,0,1);
    // define a color in HSV and convert into ARGB format (32bit packed integer)
    stroke(TColor.newHSV(currHue,1,1).toARGB());
    line(s.a.x,s.a.y,s.b.x,s.b.y);
  }
 
  // remove stuff that is off the screen to keep things running smoothly ;-)
  removeOffscreen();
}
 
void removeOffscreen() {
  // remove off-screen springs
  for (Iterator&lt;VerletSpring2D&gt; i=physics.springs.iterator(); i.hasNext();) {
    VerletSpring2D s=i.next();
    if (s.a.y &gt; height+100 || s.b.y &gt; height+100) {
      i.remove();
    }
  }
 
  // remove off-screen particles &amp; behaviors
  for (int i=physics.particles.size()-1; i&gt;=0; i--) {
    VerletParticle2D p = physics.particles.get(i);
    if (p.y &gt; height+200) {
      physics.removeParticle(p);
      ParticleBehavior2D b = physics.behaviors.get(i+1);
      physics.removeBehavior(b);
    }
  }
}
 
void mouseDragged() {
  // create a locked (unmovable) particle at the mouse position
  VerletParticle2D p = new VerletParticle2D(mouseX,mouseY);
  p.lock();
  // if there is at least one particle and this is the current continuous line
  if (physics.particles.size() &gt; 0 &amp;&amp; continuous == current) {
    // get the previous particle (aka the last in the list)
    VerletParticle2D prev = physics.particles.get(physics.particles.size()-1);
    // create a spring between the previous and the current particle of length 10 and strength 1
    VerletSpring2D s = new VerletSpring2D(p,prev,10,1);
    // add the spring to the physics system
    physics.addSpring(s);
  } else {
    current = continuous;
  }
  // unlock previous particle
  if (prev!=null) {
    prev.unlock();
  }
  // add the particle to the physics system
  physics.addParticle(p);
  // create a forcefield around this particle with radius 20 and force -1.5 (aka push)
  ParticleBehavior2D b = new AttractionBehavior(p,20,-1.5);
  // add the behavior to the physics system (will be applied to all particles)
  physics.addBehavior(b);
  // make current particle the previous one...
  prev=p;
}
 
void mouseReleased() {
  if (prev!=null) {
    prev.unlock();
  }
  continuous++;
}</code></pre>
<p><span style="text-decoration: underline"><strong>Example 4: NamedColors</strong></span></p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-NamedColors-by-Amnon-Owed.jpg"><img class="alignnone size-large wp-image-16373" src="http://www.creativeapplications.net/wp-content/uploads/2011/05/Toxiclibs-NamedColors-by-Amnon-Owed-640x360.jpg" alt="" width="640" height="360" /></a></p>
<p>Aesthetically somewhat similar, but technically completely different, this example is meant to demonstrate how to use <a href="http://toxiclibs.org/docs/colorutils/toxi/color/TColor.html" target="_blank">TColors</a> in general and <a href="http://toxiclibs.org/docs/colorutils/toxi/color/NamedColor.html" target="_blank">NamedColors</a> in particular. If Vec2D/Vec3D is the heart of the geometry lib, then you could say TColor is the heart of the color lib. It’s the basis for much greater possibilities such as color ranges, themes and gradients. But to grasp this part of Toxiclibs, I think it’s best to start with a basic example. For this I chose the NamedColors since they are less abstract than working with numbers alone. In the color portion of Toxiclibs there is a list of 143 NamedColors that you can use. They have names like azure, darkturquoise, lavender, orange and last but not least peachpuff. When working with TColors it’s important to remember that you need to convert them into something that can be used in a Processing fill() or stroke() function. In this example you can see that every time the color is actually used, it’s converted into a packed ARGB int using the toARGB() function.</p>
<p>So let me walk through the sketch real quick. In setup() all the names are loaded into an ArrayList of strings for the purpose of sorting them alphabetically. Running the sketch presents you with the full color palette. I’ve applied some <a href="http://toxiclibs.org/docs/core/toxi/math/ZoomLensInterpolation.html" target="_blank">ZoomLensInterpolation</a> to bring out the selected color (mouseX) and made it move up and down with the user (mouseY). There are some checks to make sure both the name and it’s background are kept within the boundaries of the screen. The right mouse button changes the background color, while the left mouse button creates a colorWorm at the mouse position. Press any key to toggle the palette on/off, the mouse functionality will keep working. The colorWorm is basically a list of up to 25 points, a direction and a certain color. It starts at the mouse position and then moves randomly, adding new points along the way. Since the directional change is limited to 30 degrees, it will generally keep going into a certain direction instead of wriggling around the same spot. To make it a little smoother all the points are loaded into a <a href="http://toxiclibs.org/docs/core/toxi/geom/Spline2D.html" target="_blank">Spline2D</a> which is then subdivided. From the vertices that come out, the line is drawn.</p>
<pre class="crayon-plain-tag"><code>//  Toxiclibs Code Example: NamedColors
//  by Amnon Owed (05/05/2011)
//  minor refactorings by Karsten Schmidt (06/05/2011)

import processing.opengl.*;
import toxi.geom.*;
import toxi.color.*;
import toxi.math.*;

ArrayList &lt;String&gt; names = new ArrayList &lt;String&gt; ();
ArrayList &lt;ColorWorm&gt; worms = new ArrayList &lt;ColorWorm&gt; ();

ZoomLensInterpolation zoomLens = new ZoomLensInterpolation();

boolean showColorPalette = true;
int selectedColorID;

// screen center
Vec2D center;

// background color (readonly colors can't be modified)
ReadonlyTColor bg;

void setup() {
  size(1280, 720, OPENGL);
  center = new Vec2D(width/2, height/2);
  // create a list of all the Toxiclibs NamedColors
  names = NamedColor.getNames();
  // sort it alphabetically
  Collections.sort(names);
  textFont(createFont(&quot;SansSerif&quot;, 28));
  // set zoom lens to a dilating characteristic
  // setting the first parameter to a negative value will create a bundling effect
  zoomLens.setLensStrength(0.45, 1);
  // set the background color to deepskyblue
  bg = NamedColor.getForName(&quot;deepskyblue&quot;);
}

void draw() {
  // convert the bg color into ARGB color format (32bit packed integer)
  background(bg.toARGB());

  // run through all the worms (backwards cause we are also removing some from the list)
  for (Iterator&lt;ColorWorm&gt; i=worms.iterator(); i.hasNext();) {
    ColorWorm w = i.next();
    // if the worm's last point is 'off the screen' remove the worm
    // distanceToSquared() is faster than distanceTo() since it avoids
    // the square root calculation and we don't need precise values here...
    if (w.points.get(0).distanceToSquared(center) &gt; 640000) {
      i.remove();
    } 
    else {
      // otherwise update and display the worm
      w.update();
      w.display();
    }
  }

  // set the zoom location based on the normalized mouseX (0.0 .. 1.0 interval)
  float normX=(float)mouseX / width;
  // interpolate focal point to new mouse position (15% step per frame)
  zoomLens.setLensPos(normX, 0.15);
  // determine the selected color based on mouseX
  // by finding which color area contains mouseX
  float focalX=zoomLens.interpolate(0, width, normX);
  for (int i=0, num=names.size()-1; i&lt;=num; i++) {
    float x=zoomLens.interpolate(0, width, (float)i/num);
    float x2=zoomLens.interpolate(0, width, (float)(i+1)/num);
    // select color if focalX is between x and x2
    if (focalX &gt;= x &amp;&amp; focalX &lt; x2) {
      selectedColorID=i;
      break;
    }
  }

  // toggle the color palette
  if (showColorPalette) {
    drawColorPalette();
  }

  if (mousePressed) {
    // Create worms with the LEFT mouse button
    if (mouseButton == LEFT) {
      Vec2D mouse = new Vec2D(mouseX, mouseY);
      ReadonlyTColor c = NamedColor.getForName(names.get(selectedColorID));
      worms.add(new ColorWorm(mouse, c));
      // Change the background color with the RIGHT or MIDDLE mouse button
    } 
    else {
      bg = NamedColor.getForName(names.get(selectedColorID));
    }
  }
}

// Press ANY key to toggle the color palette
void keyPressed() {
  showColorPalette = !showColorPalette;
}

class ColorWorm {
  List &lt;Vec2D&gt; points = new ArrayList &lt;Vec2D&gt; ();
  Vec2D direction;
  TColor c;

  ColorWorm(Vec2D origin, ReadonlyTColor c) {
    // at the origin point (mouseX,mouseY)
    points.add(origin);
    // create a copy of the readonly color for later manipulation
    this.c = c.copy();
    // create a random direction
    direction = Vec2D.randomVector();
  }

  void update() {
    // every second frame (not too fast, not too slow)
    if (frameCount % 2 == 0) {
      // create a new point given the last point's coordinates
      Vec2D p = points.get(points.size()-1).copy();
      // rotate the direction randomly somewhere between -30 and 30 degrees
      direction.rotate(radians(random(-30, 30)));
      // create a movement vector in that direction with a random magnitude between 15 and 30
      Vec2D move = direction.getNormalizedTo(random(15, 30));
      // move the point in that direction and with that distance
      p.addSelf(move);
      // add the new point to the list
      points.add(p);
    }

    // truncate at 25 points (remove the oldest point)
    while (points.size () &gt; 25) {
      points.remove(0);
    }
  }

  void display() {
    // need at least 3 points to construct a spline
    if (points.size()&gt;2) {
      // create Spline2D from the points
      Spline2D s = new Spline2D(points);
      // subdivide it by 8 into a list of vertices
      List &lt;Vec2D&gt; vertices = s.computeVertices(8);
      noFill();
      strokeWeight(2);
      // draw a line through all the vertices
      beginShape();
      for (int i=0,num=vertices.size()-1; i&lt;=num; i++) {
        Vec2D v = vertices.get(i);
        // the position in the list determines the transparency of the segment
        c.setAlpha(map(i, 0, num, 0, 1));
        // convert the color into ARGB color format (32bit packed integer)
        stroke(c.toARGB());
        vertex(v.x, v.y);
      }
      endShape();
    }
  }
}

void drawColorPalette() {
  noStroke();

  // display all the colors over the width of the screen
  for (int i=0,num=names.size()-1; i&lt;=num; i++) {
    // determine the color swatch's position &amp; width based on
    // it's relative position and the zoom location (mouseX)
    float x = zoomLens.interpolate(0, width, (float)i / num);
    float x2 = zoomLens.interpolate(0, width, (float)(i+1) / num);
    // convert the color into ARGB color format (32bit packed integer)
    fill(NamedColor.getForName(names.get(i)).toARGB());
    // move the colors vertically with mouseY
    rect(x, mouseY-15, x2-x, 30);
  }

  // get the name of the selectedColor
  String name = names.get(selectedColorID);
  float ascent = textAscent();
  float textwidth = textWidth(name);
  // keep the text and it's background fill within screen boundaries
  float x = min(mouseX, width-textwidth-8);
  float y = min(mouseY + 52, height-4);
  // draw a white text background
  fill(255);
  rect(x, y-ascent-4, textwidth+8, ascent+8);
  // draw a black text
  fill(0);
  text(name, x+4, y);
}</code></pre><p>
<p>That concludes this round of code sharing. For all things Toxiclibs go to <a href="http://toxiclibs.org/" target="_blank">toxiclibs.org</a>. A description of how to install contributed libraries for Processing can be found <a href="http://wiki.processing.org/w/How_to_Install_a_Contributed_Library" target="_blank">here</a>. If you would like to know if and how Toxiclibs can help you with your project, but are unsure of where to start, I suggest asking for help in the <a href="http://forum.processing.org/#Home" target="_blank">Processing forum</a>. There are quite a few people over there (including Karsten himself sometimes) who can help you out with advice and maybe even code examples. So good luck and get creative! ;-)</p>
<p><a href="http://www.creativeapplications.net/wp-content/uploads/2011/05/toxiclibscolour01.png"><img class="alignnone size-large wp-image-16385" src="http://www.creativeapplications.net/wp-content/uploads/2011/05/toxiclibscolour01-640x355.png" alt="" width="640" height="355" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

