<?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>The Mega Super Awesome Visuals Company &#187; Lab, experiments, workshops and work in progress</title>
	<atom:link href="/category/work/lab/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.memo.tv</link>
	<description>Memo S. Akten</description>
	<lastBuildDate>Tue, 21 May 2013 00:45:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>V&amp;A &#8220;The Emperor&#8217;s New Robes&#8221;</title>
		<link>http://www.memo.tv/va-the-emperors-new-robes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=va-the-emperors-new-robes</link>
		<comments>http://www.memo.tv/va-the-emperors-new-robes/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 09:00:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Digital Shoreditch]]></category>
		<category><![CDATA[Imperial Chinese Robes Exhibition]]></category>
		<category><![CDATA[Raffael Ziegler]]></category>
		<category><![CDATA[Victoria & Albert Museum]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=507</guid>
		<description><![CDATA[Chinese Robe designer application to accompany the V&#038;A's digital activities. ]]></description>
				<content:encoded><![CDATA[<p>Memo Akten / MSA Visuals was commissioned by the Victoria &amp; Albert Museum to create an installation accompanying their <a href="http://www.vam.ac.uk/collections/asia/imperial-chinese-robes/" target="_blank">Imperial Chinese Robes from the Forbidden City</a> exhibition. Inspired by the beautiful designs, we created an application allowing families and visitors of all ages to easily design, create and save their own virtual robes based on material from the exhibition. Launched at the half-term <a href="http://www.vam.ac.uk/activ_events/courses/courses/digital_courses/index.html" target="_blank">drop-in week</a>, the activity received over a thousand visitors in just the first 3 days. Created in collaboration with <a href="http://www.elektropastete.de/the-emperors-new-robes/" target="_blank">Raffael Ziegler</a> and <a href="http://www.janelaurie.com/" target="_blank">Jane Laurie</a>.</p>
<p>See some of the robes created by visitors on <a href="http://www.flickr.com/photos/vandadigital/sets/72157625993542157/" target="_blank">flickr</a></p>
<p>This installation was exhibited by the V&amp;A at the Digital Shoreditch festival on Saturday 7 May 2011, Truman Brewery on Brick Lane.</p>
<p>http://vimeo/20323985</p>
<p>&nbsp;</p>
<p><img class="size-medium wp-image-543 alignnone" title="“The Emperor’s New Robes” for the V&amp;A" src="/wpdev/wp-content/uploads/2011/02/Imperial_Chinese_Robes_11-750x468.jpg" alt="" width="750" height="468" /></p>
<p><img class="size-medium wp-image-541 alignnone" title="“The Emperor’s New Robes” for the V&amp;A" src="/wpdev/wp-content/uploads/2011/02/Imperial_Chinese_Robes_3-750x468.jpg" alt="" width="750" height="468" /></p>
<p><img class="size-medium wp-image-540 alignnone" title="“The Emperor’s New Robes” for the V&amp;A" src="/wpdev/wp-content/uploads/2011/02/Imperial_Chinese_Robes_2-750x468.jpg" alt="" width="750" height="468" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/va-the-emperors-new-robes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metamapping</title>
		<link>http://www.memo.tv/metamapping/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=metamapping</link>
		<comments>http://www.memo.tv/metamapping/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 08:00:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Dance]]></category>
		<category><![CDATA[DMX]]></category>
		<category><![CDATA[Fluid Simulation]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Live Performance]]></category>
		<category><![CDATA[Mapping Festival]]></category>
		<category><![CDATA[Motion Tracking]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[Particles]]></category>
		<category><![CDATA[Projection Mapping]]></category>
		<category><![CDATA[Realtime]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=575</guid>
		<description><![CDATA[A workshop / residency at the Mapping festival 2010, Geneva, Switzerland. Many collaborators, artists, musicians, performers, visualists took over various [...]]]></description>
				<content:encoded><![CDATA[<p>A workshop / residency at the Mapping festival 2010, Geneva, Switzerland. Many collaborators, artists, musicians, performers, visualists took over various spaces at La Parfumerie to create audio-visual performances and installations. Constructing a large scaffold structure in the main hall, armed with DMX controlled lights, microphones, cameras, sensors and projectors; we converted the space into a giant audio-visual-light instrument for the audience to explore and play with, and be part of and experience a non-linear narrative performance. The project involved live projection mapping, motion tracking, audio-reactive visuals, piezo-reactive audio and visuals, DMX controlled lights, rope gymnasts, acrobats and much more!</p>
<p><iframe src="http://player.vimeo.com/video/15405093" width="500" height="331" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>More information can be found at <a href="http://www.mappingfestival.ch/metamapping/" target="_blank">Mapping festival</a> and <a href="http://www.1024architecture.net/en/2010/05/meta-mapping/" target="_blank">1024 Arcitecture</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/metamapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Co-Creating Tools for Touch for children affected by Autism Spectrum Conditions</title>
		<link>http://www.memo.tv/co-creating-tools-for-touch/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=co-creating-tools-for-touch</link>
		<comments>http://www.memo.tv/co-creating-tools-for-touch/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 16:55:00 +0000</pubDate>
		<dc:creator>Memo Akten</dc:creator>
				<category><![CDATA[frontpage]]></category>
		<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Kinect]]></category>
		<category><![CDATA[Motion Tracking]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Particles]]></category>
		<category><![CDATA[Realtime]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=1496</guid>
		<description><![CDATA[The Touch Trust Team, led by Dilys Price, OBE and Charlotte Aubrey, will host the first OpenFrameworks-ReacTickles design lab to be [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://www.touch-trust.org/">Touch Trust</a> Team, led by Dilys Price, OBE and Charlotte Aubrey, will host the first OpenFrameworks-ReacTickles design lab to be held in Wales. The Touch Trust is a centre that offers creative, touch-based, art, movement and dance programmes for individuals affected by Autism Spectrum Conditions (ASC) and Profound Learning Difficulties (PLD).<br />
Utilizing an inspire-play-create-appropriate methodology, the aim of the lab is to generate ideas for experiential interfaces that compliment the therapeutic activities offered at the Touch Trust. Central to ideation is the inclusion of end users and those who care for them in a rapid process of playful co-creation in authentic, real world settings. The OpenFrameworks Design Team, <a href="http://www.joelgethinlewis.com/">Joel Gethin Lewis</a>, <a href="/">Memo Akten</a>, <a href="http://www.mrkbrz.com/">Marek Bareza</a>, <a href="http://www.flickr.com/people/43290335@N05//">Ben Jones</a>, <a href="http://www.sacculi.co.uk/">Will Pearson</a>, <a href="http://www.lukesturgeon.co.uk/">Luke Sturgeon</a> worked with children from <a href="http://www.ashgroveschool.org.uk/">Ashgrove School</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/co-creating-tools-for-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opensource OKGo &#8216;wtf&#8217; effect in processing</title>
		<link>http://www.memo.tv/opensource-okgo-wtf-effect-in-processing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=opensource-okgo-wtf-effect-in-processing</link>
		<comments>http://www.memo.tv/opensource-okgo-wtf-effect-in-processing/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:15:03 +0000</pubDate>
		<dc:creator>Memo Akten</dc:creator>
				<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[OKGo]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Thomas Eakins]]></category>

		<guid isPermaLink="false">http://www.memo.tv/?p=2592</guid>
		<description><![CDATA[Inspired by the brilliant use of an age old concept in the recent OKGo 'WTF' video (which in turn was inspired by this photo by Thomas Eakins), I created this little open-source demo in processing. It works in real-time with a webcam.]]></description>
				<content:encoded><![CDATA[<p>Inspired by the brilliant use of an age old concept in the recent <a href="http://www.youtube.com/watch?v=TNeItlrTdvY" target="_blank">OKGo &#8216;WTF&#8217; video</a> (which in turn was inspired by <a href="http://upload.wikimedia.org/wikipedia/commons/0/0d/Eakins,_Thomas_%281844-1916%29_-_Study_in_the_human_motion.jpg" rel="lightbox2592" target="_blank">this photo</a> by Thomas Eakins), I created this little open-source demo in <a href="http://processing.org/" target="_blank">processing</a>. It works in real-time with a webcam. Check it out and download the source <a href="/files/OKGo_wtf_Effect.zip" target="_blank">here</a>.</p>
<p><iframe src="http://player.vimeo.com/video/8218843" width="500" height="375" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>&nbsp;</p>
<p>I tried to keep the source super minimal and as easy to read as possible. For better results, you can try running an erode on the subtracted image, do a contour analysis and smooth the edges slightly. It also helps to run it in front of an empty wall with stable lighting, and ideally a webcam which has manual exposure / shutterspeed / gain etc.</p>
<p>To run the source code you will need:<br />
- processing, which can be downloaded from <a href="http://processing.org/" target="_blank">www.processing.org</a><br />
- the ControlP5 library (to handle the UI) which can be downloaded from <a href="http://www.sojamo.de/libraries/controlP5/" target="_blank">www.sojamo.de/libraries/controlP5/</a></p>
<p>P.S. Everytime I see this effect I keep thinking of the idclip cheat in doom!</p>
<p>Update: Check out the King of Pop&#8217;s version from over 3 decades ago <a href="http://www.youtube.com/watch?v=vjW1iq4IO2k" target="_blank">here</a></p>
<p>Update: Anton aka <a href="http://abstrakt.vade.info/" target="_blank">Vade</a> has made a Quartz Composer version which can be downloaded from <a href="http://bit.ly/5v43tM" target="_blank">bit.ly/5v43tM</a></p>
<p>Update: goto10 also has a sweet Quartz Composer version which can be downloaded from<a href="http://www.hybridvisuals.nl/downloads/m8-trace-quartz-composer-effect/" target="_blank">www.hybridvisuals.nl/downloads/m8-trace-quartz-composer-effect/</a></p>
<p>Update: OKGo just released an &#8216;official&#8217; processing app to do the same (not related to mine, but developed by Jonathan Bobrow). Check that out at <a href="http://www.okgo.net/wtf_holidays.asp" target="_blank">www.okgo.net/wtf_holidays.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/opensource-okgo-wtf-effect-in-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSAPhysics</title>
		<link>http://www.memo.tv/msaphysics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=msaphysics</link>
		<comments>http://www.memo.tv/msaphysics/#comments</comments>
		<pubDate>Sat, 23 May 2009 00:32:04 +0000</pubDate>
		<dc:creator>Memo Akten</dc:creator>
				<category><![CDATA[frontpage]]></category>
		<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Cinder]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Particles]]></category>
		<category><![CDATA[Physics]]></category>

		<guid isPermaLink="false">http://www.memo.tv/?p=2619</guid>
		<description><![CDATA[ofxMSAPhysics is an opensource, C++ 3D particle/constraint based physics library for openFrameworks 006+ and Cinder. It uses a very similar api to [...]]]></description>
				<content:encoded><![CDATA[<p>ofxMSAPhysics is an opensource, C++ 3D particle/constraint based physics library for <a href="http://www.openframeworks.cc/" target="_blank">openFrameworks 006+</a> and <a href="http://www.libcinder.org" target="_blank">Cinder</a>. It uses a very similar api to the <a href="http://www.cs.princeton.edu/~traer/physics/" target="_blank">traer.physics</a> library for <a href="http://www.processing.org/" target="_blank">processing</a>, to make transferring code from processing / traer to C++ as painless as possible.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/3424218' width='800' height='450' frameborder='0'></iframe></div>
<p>The source code for the above demo is included with the library as an example to demonstrate how to use the features.</p>
<p>Main features include</p>
<ul>
<li>particles</li>
<li>springs</li>
<li>attractions (+ve or -ve)</li>
<li>collision</li>
<li>replay saving and load from disk (temporarily disabled in current alpha release)</li>
<li>custom particles (extend ofxMSAParticle and add to the system)</li>
<li>custom constraints (extend ofxMSAConstraint and add to the system)</li>
<li>custom force fields (extend ofxMSAParticleUpdater and add to the system)</li>
<li>custom drawing (extend ofxMSAParticleDrawer and add to the system)</li>
</ul>
<p>ofxMSAPhysics requires my <a href="https://github.com/memo/msalibs" target="_blank">ofxObjCPointer v1.1+</a> addon which makes memory management easier. It does not require ofxVectorMath anymore as the required functionality is now in the new OF core.</p>
<p>You can download ofxMSAPhysics from my <a href="https://github.com/memo/msalibs" target="_blank">github repo</a>.</p>
<p>List of new features (from changelog):</p>
<p>- a lot of new files in this one, so you&#8217;ll need to remove and re-add it to your project<br />
- no longer requires ofxVectorMath<br />
- attractors fully implemented<br />
- collision (between particles) fully implemented<br />
- you can enable/disable collision per particle, and it will collide with all other particles which have collisin enabled<br />
- AND/OR you can globally enable or disable collision<br />
- AND/OR you can manually create a collision constraint between any 2 (or more) specific particles<br />
- you can set world dimenensions for optimized collision (using Zach L.&#8217;s binning code) and particle world edge collision<br />
- particles have individual drag<br />
- particles have individual bounce (for collision)<br />
- particles have individual size (for collision and rendering)<br />
- all &#8216;setter&#8217; methods return the instance so you can chain them (e.g. myParticle-&gt;setMass(1)-&gt;setBonuce(0.5)-&gt;enableCollision()-&gt;makeFree(); )<br />
- replay functionality temporarily disabled while I fix stuff<br />
- intense testing of memory management so should be stable as a rock, lemme know if you see anything weird (turn verbose on to see whats going on)<br />
- using the super fast inverse square root approximation (attributed to john carmack but originally from Silicon Graphics)<br />
- lots of internal restructing and optimization</p>
<p>ofxMSAPhysics uses verlet integration and principles found in <a href="http://www.gamasutra.com/resource_guide/20030121/jacobson_01.shtml" target="_blank">this article at gamasutra</a> and binning code for collision optimization from <a href="http://www.thesystemis.com/" target="_blank">Zach Lieberman</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/msaphysics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSAFluid</title>
		<link>http://www.memo.tv/msafluid/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=msafluid</link>
		<comments>http://www.memo.tv/msafluid/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 23:41:17 +0000</pubDate>
		<dc:creator>Memo Akten</dc:creator>
				<category><![CDATA[frontpage]]></category>
		<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Cinder]]></category>
		<category><![CDATA[Fluid Simulation]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://www.memo.tv/?p=2605</guid>
		<description><![CDATA[An opensource library for solving and displaying real-time fluid simulations based on Navier-Stokes equations and Jos Stam's paper Real-Time Fluid Dynamics for Games]]></description>
				<content:encoded><![CDATA[<p>MSAFluid is an opensource library for solving and displaying real-time fluid simulations based on Navier-Stokes equations and Jos Stam&#8217;s paper <a href="http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/GDC03.pdf" target="_blank">Real-Time Fluid Dynamics for Games</a>. It was inspired by the brilliant <a href="http://en.wikipedia.org/wiki/Plasma_Pong" target="_blank">Plasma Pong</a> (even with some advice by the author, Steve Taylor)..</p>
<p>You can play with an online interactive Java version <a href="/files/msafluid_for_processing/index.html" target="_blank">here</a>.</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/1070621' width='800' height='450' frameborder='0'></iframe></div>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/4446798' width='800' height='450' frameborder='0'></iframe></div>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/3975324' width='800' height='450' frameborder='0'></iframe></div>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/4085335' width='800' height='450' frameborder='0'></iframe></div>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/4116950' width='800' height='450' frameborder='0'></iframe></div>
<p>&nbsp;</p>
<h2>Download</h2>
<p>Get the Java version (for processing) <a href="/files/msafluid_for_processing/download/msafluid_for_processing.zip" target="_blank">here</a>.</p>
<p>Get the C++ version (for openFrameworks or Cinder) <a href="http://github.com/memo/msalibs" target="_blank">here</a>.</p>
<p>It has also been ported to Flash AS3 by Eugene Zatepyakin. Get it <a href="http://blog.inspirit.ru/?p=248" target="_blank">here</a>.</p>
<p>&nbsp;</p>
<div>
<h2>Reference</h2>
<p>The javadoc reference can be found <a href="/docs/msafluid_for_processing/" target="_blank">here</a>. A copy of the reference is also included in the .zip.</p>
<p>&nbsp;</p>
<h2>License</h2>
<p>This library is released under the <a href="http://www.opensource.org/licenses/bsd-license.php" target="_blank">new BSD License</a></p>
</div>
<p>&nbsp;</p>
<h2>Acknowledgements</h2>
<p>A lot of the fluid solving algorithms are from Jos Stam&#8217;s paper. I tried to wrap it up in an easy to use API to provide methods for adding &amp; getting forces and color at any position. Other useful resources and implementations I looked at while building this lib are:<br />
* Mike Ash (C) - <a title="http://mikeash.com/?page=pyblog/fluid-simulation-for-dummies.html" href="http://mikeash.com/?page=pyblog/fluid-simulation-for-dummies.html">http://mikeash.com/?page=pyblog/fluid-simulation-for-dummies.html</a><br />
* Alexander McKenzie (Java) - <a title="http://www.multires.caltech.edu/teaching/demos/java/stablefluids.htm" href="http://www.multires.caltech.edu/teaching/demos/java/stablefluids.htm">http://www.multires.caltech.edu/teaching/demos/java/stablefluids.htm</a><br />
* Pierluigi Pesenti (AS3 port of Alexander&#8217;s) - <a title="http://blog.oaxoa.com/2008/01/21/actionscript-3-fluids-simulation/" href="http://blog.oaxoa.com/2008/01/21/actionscript-3-fluids-simulation/">http://blog.oaxoa.com/2008/01/21/actionscript-3-fluids-simulation/</a><br />
* Gustav Taxen (C) - <a title="http://www.nada.kth.se/~gustavt/fluids/" href="http://www.nada.kth.se/~gustavt/fluids/">http://www.nada.kth.se/~gustavt/fluids/</a><br />
* Dave Wallin (C++) - <a title="http://nuigroup.com/touchlib/" href="http://nuigroup.com/touchlib/">http://nuigroup.com/touchlib/</a> (uses portions from Gustav&#8217;s)</p>
<p>and some other Stam solver implementations I&#8217;ve come across since writing this are:<br />
* Chris Sugrue &amp; Arturo Castro (C++) - <a title="http://csugrue.com/code/?p=15" href="http://csugrue.com/code/?p=15">http://csugrue.com/code/?p=15</a><br />
* Alain Ramos (C++) - <a title="http://code.google.com/p/ofxding/downloads/list" href="http://code.google.com/p/ofxding/downloads/list">http://code.google.com/p/ofxding/downloads/list</a><br />
* Mick West - <a title="http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part_1.php" href="http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part_1.php">http://www.gamasutra.com/view/feature/1549/practical_fluid_dynamics_part&#8230;</a><br />
* Mick West - <a title="http://www.gamasutra.com/view/feature/1615/practical_fluid_dynamics_part_2.php" href="http://www.gamasutra.com/view/feature/1615/practical_fluid_dynamics_part_2.php">http://www.gamasutra.com/view/feature/1615/practical_fluid_dynamics_part&#8230;</a><br />
* NVidia (C / Cg) - <a title="http://developer.download.nvidia.com/SDK/9.5/Samples/gpgpu_samples.html" href="http://developer.download.nvidia.com/SDK/9.5/Samples/gpgpu_samples.html">http://developer.download.nvidia.com/SDK/9.5/Samples/gpgpu_samples.html</a> - <strong>gpgpu is the future</strong></p>
<p>&#8230;and you can find a brilliant AS3 port of this library at <a href="http://blog.inspirit.ru/?p=248" target="_blank">blog.inspirit.ru/?p=248</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/msafluid/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>UDP TCP Bridge</title>
		<link>http://www.memo.tv/udp-tcp-bridge/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=udp-tcp-bridge</link>
		<comments>http://www.memo.tv/udp-tcp-bridge/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 00:18:18 +0000</pubDate>
		<dc:creator>Memo Akten</dc:creator>
				<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OSC]]></category>

		<guid isPermaLink="false">http://www.memo.tv/?p=2600</guid>
		<description><![CDATA[An opensource cross platform, C++ UDP-TCP Bridge.]]></description>
				<content:encoded><![CDATA[<p>An opensource cross platform, C++ UDP-TCP Bridge.</p>
<p>Originally created to forward UDP TUIO (OSC) messages straight to TCP to be read from within Flash.</p>
<p>This application forwards all incoming UDP messages straight to TCP without touching the data, just a straight forward.(Since version 0.2.1 there is the option to prefix the size of the packet before sending the data to comply with OSC / TCP specifications). This enables applications that don&#8217;t support UDP (e.g. Flash) to receive the data. Since OSC / <a href="http://www.tuio.org/" target="_blank">TUIO</a> are generally sent via UDP, this enables Flash to receive those messages in their raw binary form.</p>
<p>Settings can be edited from data/settings.xml.</p>
<p>Source and binaries at <a href="http://code.google.com/p/udp-tcp-bridge/" target="_blank">http://code.google.com/p/udp-tcp-bridge/</a></p>
<p>&nbsp;</p>
<h3>Isn&#8217;t that what flosc does?</h3>
<p>Nope. Flosc is specific to OSC, and converts the incoming data to XML and sends that over TCP. Flash then receives and parses that XML. While this is an ingenious solution, it isn&#8217;t the most efficient way to do this currently as we now have flash.net.Socket&#8217;s in flash allowing us to open a TCP Socket and read raw binary data.</p>
<p>&nbsp;</p>
<h3>Can&#8217;t I just send TUIO over TCP in CCV/tbeta?</h3>
<p>While it&#8217;s great that <a href="http://ccv.nuigroup.com/" target="_blank">CCV/tbeta </a>sends data over TCP so flash clients can listen directly, and we can cut out the middle man (e.g. flosc), the data is still sent as XML, not as binary TUIO. In fact the data sent by CCV/tbeta isn&#8217;t TUIO at all, it&#8217;s just an XML string with the touch data.</p>
<p>&nbsp;</p>
<h3>So how can I receive this data in Flash?</h3>
<p>Using flash.net.Socket <a href="http://livedocs.adobe.com/flex/2/langref/flash/net/Socket.html" target="_blank">http://livedocs.adobe.com/flex/2/langref/flash/net/Socket.html</a></p>
<h3></h3>
<h3>Can I still use the NUIGroup Flash touchapi?</h3>
<p>Yes, but you need to replace a few files. If you have a tracker sending TUIO over UDP (e.g. almost any tracker), and you use udp-tcp-bridge to forward that to TCP, the data being sent to TCP is raw TUIO, not an XML. So the<a href="http://www.nuigroup.com/" target="_blank">NUIGroup</a> flash touchapi cannot parse it out of the box. Thankfully there are a few replacement classes (TUIO.as, TUIOCursor.as etc.) at <a title="http://www.touchgateway.com/?p=70" href="http://www.touchgateway.com/?p=70">http://www.touchgateway.com/?p=70</a> which do all the nessecary binary parsing and generates the same TUIO events so you can carry on using the rest of the NUIGroup touchapi. So if you overwrite those AS3 files with the ones in that zip, you can carry on using your flash multitouch apps seamlessly.</p>
<p>&nbsp;</p>
<h3>Building the source</h3>
<p>The application was written with <a href="http://www.openframeworks.cc/" target="_blank">openframeworks 006</a> and uses the addons:</p>
<ul>
<li>ofxNetwork</li>
<li>ofxThread</li>
<li>ofxXMLSettings</li>
</ul>
<p>&nbsp;</p>
<h3>Also worth mentioning</h3>
<p><a href="http://benchun.net/flosc/" target="_blank">flosc</a> - Java app which forwards incoming OSC (UDP) messages to XML (over TCP).</p>
<p><a href="http://www.todo.to.it/blog/oscar/" target="_blank">oscar</a> - Native max osx app that does the same as above (osc-&gt;xml).</p>
<p><a href="http://code.google.com/p/tuio-tcp-proxy/" target="_blank">toxy</a> - native windows/linux app that forwards incoming TUIO to TCP in a custom binary format (as far as I understand).</p>
<p><a href="http://www.touchgateway.com/" target="_blank">touchgateway</a> - Java app which forwards all incoming UDP to TCP. Same as what my udp-tcp-bridge does, but in Java.</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/udp-tcp-bridge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSA QT Player &#8211; Fullscreen Quicktime player across multiple video-outs</title>
		<link>http://www.memo.tv/msa-qt-player/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=msa-qt-player</link>
		<comments>http://www.memo.tv/msa-qt-player/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 02:13:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[frontpage]]></category>
		<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=790</guid>
		<description><![CDATA[MSAQTPlayer is a Mega Super Awesome (&#038; mega super basic), fullscreen / multiple output Quicktime player with fast, greater-than-4096-pixels support.]]></description>
				<content:encoded><![CDATA[<p><strong>** Update 27/10/08 &#8211; Version 1.1 ** </strong></p>
<p><img class="alignleft size-full wp-image-2781" title="MSAQTPlayer-Icon" src="/wpdev/wp-content/uploads/2008/10/MSAQTPlayer-Icon.jpeg" alt="" width="100" height="100" /></p>
<p>** Update 27/10/08 &#8211; Version 1.1 **</p>
<p>Added loop mode configurable from the preferences.plist</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>MSAQTPlayer is a Mega Super Awesome (&amp; mega super basic), fullscreen / multiple output Quicktime player with fast, greater-than-4096-pixels support.</p>
<p>I wrote this app for an installation because I needed to play a 4,800 x 600 Quicktime file across 2 outputs on my graphics card, each feeding 3 triple heads to go into 6 projectors, and I couldn&#8217;t find a single application that could do it.</p>
<p>Most video applications which can output across multiple video-outs cannot play files larger than the maximum size of a texture (usually 4096 pixels). And even if the movie resolution fits in a texture, they are very slow because they convert each frame to a texture and upload to the graphics card. The only application I found which could play a large file is Quicktime Pro, but that cannot output across multiple video-outs.</p>
<p>MSA QTPlayer is a native Cocoa app which can do this (using QTKit and OSX 10.5) .</p>
<p>Assumes a simple physical screen layout &#8211; all screens are side by side and same height.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>MODES</p>
<p>The app has a &#8216;Stretch to fullscreen&#8217; mode (toggle with &#8216;s&#8217; key), which simply stretches the video to cover the entire desktop area. If you have 3 monitors / projectors this will stretch across all 3 monitors / projectors. It doesn&#8217;t preserve aspect-ratio, will add that later.</p>
<p>It also has a &#8216;in Front&#8217; mode (toggle with the &#8216;f&#8217; key). This brings the player window to the front of everything (including the dock and menubar).</p>
<p>For my installation I didn&#8217;t need the &#8216;stretch&#8217; option, just set my two output resolutions to 2400&#215;600 (3 x 800 x 600) giving a combined desktop size of 4800&#215;600 and output straight to all 6 projectors with a 1:1 pixel mapping for best quality. The app was in &#8216;front&#8217; mode, to cover the dock and menubar.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>STARTUP SETTINGS</p>
<p>There is a &#8216;preferences.plist&#8217; in the application bundle (right click on the MSAQTPlayer.app and select &#8216;Show package contents&#8217;, then navigate to contents &gt;&gt; Resources &gt;&gt; preferences.plist).</p>
<p>Double-clicking on this file should open it up with your default plist editor. If you do not have one installed you can either download one, or edit it with Text Edit &#8211; it will be ugly, but will still work.</p>
<p>Under Path, you can enter an absolute or relative (to the MSAQTPlayer.app) path. The default is mymovie.mov. If the movie is not found the app will just quit (see the system console for messages).</p>
<p>Stretch to fullscreen, Start in front, and Autoplay are all pretty self-explanatory. If you have a WYSIWYG plist editor they will appear as checkboxes, otherwise you need to type in true or false underneath them.</p>
<p>Save and close the file, next time the app runs it will use those settings.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>KEYS</p>
<p>esc &#8211; quit<br />
f &#8211; toggle &#8216;in Front&#8217; mode<br />
s &#8211; toggle &#8216;Stretch to fullscreen&#8217;<br />
space &#8211; toggle play<br />
j, k,l &#8211; control playback rate: slowdown (and play backwards) / stop / speed up (and play forwards)<br />
home, end &#8211; goto beginning / end<br />
left, right &#8211; frame advance back / forward<br />
[ ] &#8211; seek backward / forward 1/10th of the movie<br />
pgup, pgdn &#8211; goto previous / next chapter<br />
m &#8211; toggle Mute<br />
up, down &#8211; change volume</p>
<p>** WARNING **<br />
If the app crashes while in &#8216;front&#8217; mode, it might be a bit hard to get back to your desktop. So make sure your file works first while in normal mode, then you can set it to be in front.</p>
<p><a href="/archive/files/memotv/MSAQTPlayer%201.1.src.zip">MSAQTPlayer &#8211; The Source Code </a><br />
<a href="/archive/files/memotv/MSAQTPlayer%201.1.zip">MSAQTPlayer &#8211; The App</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/msa-qt-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roots</title>
		<link>http://www.memo.tv/roots/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=roots</link>
		<comments>http://www.memo.tv/roots/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 08:00:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[frontpage]]></category>
		<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[Bricktable]]></category>
		<category><![CDATA[Generative Music]]></category>
		<category><![CDATA[Generative Visuals]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=618</guid>
		<description><![CDATA[&#8220;Roots&#8221; is an interactive musical/visual installation for the Brick Table tangible and multi-touch interface, where multiple people can collaborate in [...]]]></description>
				<content:encoded><![CDATA[<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/1663988' width='800' height='450' frameborder='0'></iframe></div>
<p>&#8220;Roots&#8221; is an interactive musical/visual installation for the Brick Table tangible and multi-touch interface, where multiple people can collaborate in making generative music in a dynamic &amp; visually responsive environment. It is a collaborative effort between myself and the <a href="http://bricktable.wordpress.com/" target="_blank">Brick Table</a> creators Jordan Hochenbaum &amp; Owen Vallis. It will premiere at the Minitek Music + Innovation Festival September 12-14, 2008 in New York.</p>
<p>The essence of the interaction, is that you control parameters of a chaotic environment &#8211; which affect the behaviour of its inhabitants &#8211; which create and control music.</p>
<p>To breakdown very briefly without going into much detail:</p>
<ul>
<li>There are vinelike structures branching and wandering around on the table. They live and move in an environment governed by chaos.</li>
<li>Audio is triggered and controlled entirely by how and where the branches move.</li>
<li>You &#8211; the user &#8211; control various parameters of the chaotic environment. Parameters which range from introducing varying amounts of order, to simply changing certain properties to let the chaos evolve in different directions.</li>
</ul>
<p>There are varying levels of interaction, ranging from traditional one-to-one correlations &#8211; &#8216;this movement I make creates that sound&#8217;, but also to more complex relationships along the lines of &#8216;this movement I make affects the environment in this way which sends the music into that direction where it evolves with a life of its own&#8217;. The visuals are purely generative, as is the audio, and as user you can play with the parameters of that system and watch and listen to the results&#8230;</p>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/1662913' width='800' height='450' frameborder='0'></iframe></div>
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/1569676' width='800' height='450' frameborder='0'></iframe></div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/roots/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Glastonbury Pi</title>
		<link>http://www.memo.tv/glastonbury-pi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=glastonbury-pi</link>
		<comments>http://www.memo.tv/glastonbury-pi/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 08:00:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Lab, experiments, workshops and work in progress]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Fluid Simulation]]></category>
		<category><![CDATA[Gestural Music]]></category>
		<category><![CDATA[Glastonbury Festival]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Motion Tracking]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[Optical Flow]]></category>
		<category><![CDATA[Realtime]]></category>
		<category><![CDATA[Seeper]]></category>

		<guid isPermaLink="false">http://wpdev.msavisuals.com/?p=625</guid>
		<description><![CDATA[&#8220;Pi&#8221; is an interactive audio/visual installation commissioned by Trash City of the Glastonbury Festival to be shown at the festival [...]]]></description>
				<content:encoded><![CDATA[<p>&#8220;Pi&#8221; is an interactive audio/visual installation commissioned by Trash City of the Glastonbury Festival to be shown at the festival in June 2008.</p>
<p>Working with fellow techheads at Seeper, our concept was to take a 50ft tent, and convert it into a giant audio/visual instrument &#8211; all of the music, audio and visuals inside the tent are generated and controlled purely by the movements of the occupants.</p>
<p><iframe src="http://player.vimeo.com/video/1582964" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>The space was divided into 6 zones. Two of the zones were purely visual, this was the waiting area. Here people could dance, chill, run about and do what they pleased. Two cameras tracked their movement and applied it to the fluid/particles visuals &#8211; so people could &#8216;throw&#8217; plasma balls at each other, or send colorful waves propagating around the space. The other 4 zones had the same visual interactions, but in addition were also connected to an audio system. Each of these four zones was allocated an instrument type (drums/beats/percussion, pads, bass, strings etc.), and movement within these zones would also trigger notes or beats &#8211; depending on precisely where in the zone the movement was triggered. A lot of effort went into designing the sounds and notes triggered to make sure the end result would almost always sound pleasant and not be complete cacophony.</p>
<p>&nbsp;</p>
<p>The first psychedelic fluid/particles interaction prototype developed in processing.org:</p>
<p><iframe src="http://player.vimeo.com/video/1070621" width="500" height="250" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>&nbsp;</p>
<p>Camera -&gt; osc/midi interaction tests (developed in Quartz Composer):</p>
<p><iframe src="http://player.vimeo.com/video/948726" width="500" height="377" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>&nbsp;</p>
<p>The two concepts strung together and written in C++ with openFrameworks:</p>
<p><iframe src="http://player.vimeo.com/video/1219327" width="500" height="375" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>Just a reminder, this isn&#8217;t some random trippy visuals set to a piano soundtrack&#8230; I&#8217;m playing a virtual piano by waving my hands and fingers around in the air (which also moves the fluid and particles around as well) <img src='/wpdev/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<h2>Technical information:</h2>
<p>The visuals start with the camera analysis &#8211; without motion there are no visuals. 6 cameras are fed into an 8-core Mac Pro and are all analysed in parallel with an optical flow motion estimation, the analysis for each camera feed running in its own thread. Once the camera analysis is complete for all cameras, the velocity vectors are stitched together and fed into a fluid simulation. Any movement the user makes, causes &#8216;colored dye&#8217; to be injected into the fluid simulation, with the speed and direction of the movement being inherited by the dye. These movements also create &#8216;currents&#8217; in the fluid, allowing the user to create swirls and vortices with circular movements (e.g. waving arms around), or just send waves of coloured plasma rippling across the room with a simple push of the body. These currents also allow the user to control particles as described below.</p>
<p>Any movement faster than a certain threshold, also creates &#8216;glitter&#8217;. The speed of the movement controls the number of glitter created (larger &amp; faster movements create more glitter) &#8211; thousands of glitter can be swimming around at any one time. Once created, each glitter is independant and swims around with a basic AI &#8211; but always overpowered by the current of the fluids, so the user can herd the swarms of glitter using their arms, legs, body etc. and push them towards one another.</p>
<p>Even larger movements &#8211; e.g. swiftly swinging hands or head around &#8211; create &#8216;energy orbs&#8217;. These orbs cut through the fluid quite quickly, but can still be affected by the currents allowing the user to control the direction and speed of the energy orbs. This allows users to bounce the orbs back and forth between each other playing imaginary tennis or football.</p>
<p>The biggest challenge in creating an application of this scale was to structure and optimize it in a way so it could analyze upto 6 camera feeds, and run at a large enough resolution to cover the entire tent. A multiple computer approach was out of the question due to the complications of synchronising a fluid simulation across multiple PC&#8217;s, so the decision was made to go with a multi-threaded app running on an 8-core Mac Pro. The motion estimation was split into 6 threads (one for each camera), the fluid solver ran in its own thread, and the particles (glitter &amp; orb) ran in another thread &#8211; all of these threads ran in parallel. Once all threads were finished processing their data for one frame, they exchanged their results ready for processing for the next frame (camera motion fed into fluid solver ready for next frame, fluid currents fed into particles ready for next frame etc.). This approach allowed everything to run in parallel with smooth framerates of 30fps.</p>
<p>In addition to controlling the visuals, motion is also what triggers the sound. The users&#8217; motion is analyzed and broken down into a spatial grid, with imaginary pads corresponding to different notes. This information is sent over a local network to another computer running Ableton Live where all the samples and loops are stored and triggered. The trigger information is sent using OSC and is mapped on the audio computer from OSC to midi using OSCulator &#8211; which originally wasn&#8217;t designed to handle such complex polyphony, but working closely with the author we received a version which suited our needs perfectly.</p>
<p>&nbsp;</p>
<p>Made with <a href="http://www.openframeworks.cc/" target="_blank">openFrameworks</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.memo.tv/glastonbury-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
