<?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 Pixel Farm</title>
	<atom:link href="http://blog.craigkapp.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.craigkapp.com</link>
	<description>All the Craig-specific news that&#039;s fit to print!</description>
	<lastBuildDate>Mon, 21 Jun 2010 12:53:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>NMC Pre-conference workshop on Augmented Reality</title>
		<link>http://blog.craigkapp.com/?p=1483</link>
		<comments>http://blog.craigkapp.com/?p=1483#comments</comments>
		<pubDate>Wed, 09 Jun 2010 23:52:52 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Educational Technology]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1483</guid>
		<description><![CDATA[Thanks to everyone who attended my Augmented Reality workshop this afternoon at the NMC 2010 Summer Conference!  I&#8217;ve posted all of the materials referenced in the session, including downloadable versions of the Flash templates that we covered in class .  Everything is accessible via the &#8216;Getting Started with AR&#8217; link at the top of this [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who attended my Augmented Reality workshop this afternoon at the NMC 2010 Summer Conference!  I&#8217;ve posted all of the materials referenced in the session, including downloadable versions of the Flash templates that we covered in class .  Everything is accessible via the &#8216;Getting Started with AR&#8217; link at the top of this page.</p>
<p>If you have any questions please don&#8217;t hesitate to get in touch &#8211; thanks again for a great session!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1483</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZooBurst Gesture Control</title>
		<link>http://blog.craigkapp.com/?p=1466</link>
		<comments>http://blog.craigkapp.com/?p=1466#comments</comments>
		<pubDate>Sat, 05 Jun 2010 03:30:20 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Zooburst]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1466</guid>
		<description><![CDATA[Over the last few weeks a number of ZooBursters have gotten in touch to ask if there was a way in which they could interact with their 3D pop-up books without having to print out an augmented reality marker.  Many people don&#8217;t have easy access to a decent quality printer, and while you can use [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks a number of ZooBursters have gotten in touch to ask if there was a way in which they could interact with their 3D pop-up books without having to print out an augmented reality marker.  Many people don&#8217;t have easy access to a decent quality printer, and while you can use an external device in place of a marker (<a href="http://www.flickr.com/photos/unavoidablegrain/4630586273/" target="_blank">see Greg Borenstein&#8217;s exploration into using an iPad in place of an AR marker</a>) the glare issues that arise from using a backlit display can be a bit difficult to overcome.  Plus it&#8217;s hard to enjoy your 3D creation while holding something up in front of your screen!</p>
<p>In response to these issues I&#8217;ve built an experimental features that lets you display your ZooBurst book on the screen without needing to have an AR marker handy.  Once activated, this feature will cause your book to fall out of the sky and bounce into place along the bottom of the video field (see image below).  In addition, a new control tab also appears at the top of the page &#8211; this tab &#8220;listens&#8221; for &#8220;swipes&#8221; in the video feed.  When detected, these swipes can be used to control the page turning action.</p>
<div id="attachment_1467" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/06/Screen-shot-2010-06-04-at-11.18.44-PM.png" rel="shadowbox[post-1466];player=img;"><img class="size-medium wp-image-1467" title="Controlling a ZooBurst book using physical gestures" src="http://blog.craigkapp.com/wp-content/uploads/2010/06/Screen-shot-2010-06-04-at-11.18.44-PM-300x223.png" alt="Controlling a ZooBurst book using physical gestures" width="300" height="223" /></a><p class="wp-caption-text">Controlling a ZooBurst book using physical gestures</p></div>
<p>Here&#8217;s a quick video of how the new feature works:</p>
<p><object style="width: 640px; height: 386px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="386" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/eJkZw_sCfLI&amp;hl=en_US&amp;fs=1&amp;" /><embed style="width: 640px; height: 386px;" type="application/x-shockwave-flash" width="640" height="386" src="http://www.youtube.com/v/eJkZw_sCfLI&amp;hl=en_US&amp;fs=1&amp;"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1466</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Media Consortium 2010 Summer Conference</title>
		<link>http://blog.craigkapp.com/?p=1458</link>
		<comments>http://blog.craigkapp.com/?p=1458#comments</comments>
		<pubDate>Mon, 31 May 2010 18:17:33 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Educational Technology]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1458</guid>
		<description><![CDATA[T-minus 9 days until the premier educational technology event of the year &#8211; the annual New Media Consortium Summer Conference!  This year&#8217;s program is looking better than ever with sessions and workshops focusing on a wide range of topics, such as educational gaming, virtual worlds, mobile applications, geolocation technologies, cloud-based learning systems, digital storytelling [...]]]></description>
			<content:encoded><![CDATA[<p>T-minus 9 days until the premier educational technology event of the year &#8211; the annual <a href="http://www.nmc.org/2010-summer-conference" target="_blank">New Media Consortium Summer Conference</a>!  This year&#8217;s program is looking better than ever with sessions and workshops focusing on a wide range of topics, such as educational gaming, virtual worlds, mobile applications, geolocation technologies, cloud-based learning systems, digital storytelling  techniques and yes, of course, Augmented Reality!</p>
<div id="attachment_1457" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/05/kapp_craig-nmc-1.jpg" rel="shadowbox[post-1458];player=img;"><img class="size-medium wp-image-1457" title="NMC 2010 Summer Conference" src="http://blog.craigkapp.com/wp-content/uploads/2010/05/kapp_craig-nmc-1-300x300.jpg" alt="NMC 2010 Summer Conference" width="300" height="300" /></a><p class="wp-caption-text">NMC 2010 Summer Conference</p></div>
<p>This year I will be presenting a half-day hands-on session in which we will explore emerging educational applications of augmented reality as well as introducing ways in which educators can build their own AR environments.  I&#8217;m busily preparing a number of fun tutorials for this event, including:</p>
<ul>
<li>Hands-on activities that will let participants experience augmented reality first-hand (printed markers included!)</li>
<li>A series of &#8220;quick start&#8221; code libraries that are designed to help educators construct their own AR learning applications, and step-by-step instructions on how to get up and running fast.  All participants will leave the session with their own working AR project on their blog or website.</li>
<li>A preview of the new version of the <a href="http://alpha.zooburst.com" target="_blank">ZooBurst</a> digital storytelling tool which includes a number of new features, including live audio recording capabilities, classroom management features and even an augmented reality presentation mode.</li>
</ul>
<p>If you&#8217;ll be in Anaheim CA next week and would like to join us <a href="http://www.nmc.org/preso/7870" target="_blank">feel free to register</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1458</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic gestural control using a webcam</title>
		<link>http://blog.craigkapp.com/?p=1424</link>
		<comments>http://blog.craigkapp.com/?p=1424#comments</comments>
		<pubDate>Mon, 17 May 2010 01:06:12 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Zooburst]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1424</guid>
		<description><![CDATA[ZooBurst has been getting tons of use over the last few weeks, and I&#8217;ve been spending most of my free time making updates to the system and thinking of ways to move forward with the environment. It&#8217;s really amazing how fast it&#8217;s taken off &#8211; as of today we have over 1,000 people actively using [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zooburst.com" target="_blank">ZooBurst</a> has been getting tons of use over the last few weeks, and I&#8217;ve been spending most of my free time making updates to the system and thinking of ways to move forward with the environment. It&#8217;s really amazing how fast it&#8217;s taken off &#8211; as of today we have over 1,000 people actively using the system to create their own 3D pop-up books!</p>
<p>There are a ton of features on my &#8220;to-do&#8221; list for ZooBurst, but one of  the most pressing is to find a way to make the augmented reality feature more usable.  Right now you can watch as your own books fly out of the printed symbol and into the world around you, but in order to interact with the book (i.e. turn the page, make a character speak) you still need to use the mouse.</p>
<div id="attachment_1425" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/05/about_AR_screenshot.jpg" rel="shadowbox[post-1424];player=img;"><img class="size-medium wp-image-1425" title="ZooBurst augmented reality mode" src="http://blog.craigkapp.com/wp-content/uploads/2010/05/about_AR_screenshot-300x260.jpg" alt="ZooBurst augmented reality mode" width="300" height="260" /></a><p class="wp-caption-text">ZooBurst augmented reality mode</p></div>
<p>I&#8217;ve toyed around with a number of potential interaction methods, including using the rotation of the marker to control various elements, but I&#8217;m not 100% happy with them just yet.  I want to try and preserve the feeling of a real book as much as possible, and creating additional mappings that don&#8217;t necessarily apply to a physical book is something that I&#8217;d like to try and avoid.</p>
<p>One experiment I&#8217;ve been playing around with is the idea of using physical gestures to actually turn the pages of the book.  I whipped up a quick 2D demo of this in action &#8211; basically I use motion detection in very small regions of the screen to create a matrix of &#8220;touchable&#8221; sensors.  From there I can create a simple algorithm to interpret gestures based on the order in which these regions are activated.  Here&#8217;s an example that allows you to simulate a coverflow-style interface with a series of images.  I&#8217;m hoping to adapt this functionality into the 3D world of ZooBurst by the next release of its AR viewer component.</p>
<div id="attachment_1427" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/05/Screen-shot-2010-05-16-at-8.25.34-PM.png" rel="shadowbox[post-1424];player=img;"><img class="size-medium wp-image-1427" title="2D coverflow using a webcam" src="http://blog.craigkapp.com/wp-content/uploads/2010/05/Screen-shot-2010-05-16-at-8.25.34-PM-300x148.png" alt="2D coverflow using a webcam" width="300" height="148" /></a><p class="wp-caption-text">2D coverflow using a webcam</p></div>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/xdHVFL0DBks&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/xdHVFL0DBks&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1424</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So long, iPhone</title>
		<link>http://blog.craigkapp.com/?p=1414</link>
		<comments>http://blog.craigkapp.com/?p=1414#comments</comments>
		<pubDate>Fri, 30 Apr 2010 20:24:29 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Little Computers]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1414</guid>
		<description><![CDATA[It was only a matter of time.  My poor iPhone was mortally wounded back in January at the Lambertville Beer and Chili Festival.  While it continued to function like a trooper, I figured it was about time to let it move on to greener pastures.  Plus I didn&#8217;t want to have to continue to deal [...]]]></description>
			<content:encoded><![CDATA[<p>It was only a matter of time.  My poor iPhone was mortally wounded back in January at the <a href="http://www.winterfestival.net/" target="_blank">Lambertville Beer and Chili Festival</a>.  While it continued to function like a trooper, I figured it was about time to let it move on to greener pastures.  Plus I didn&#8217;t want to have to continue to deal with all the pitiful (disgusted?) looks that I was getting from people on the subway whenever I had my phone out.</p>
<div id="attachment_1413" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/wpid-IMAG0010.jpg" rel="shadowbox[post-1414];player=img;"><img class="size-thumbnail wp-image-1413" title="cracked screen = no fun" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/wpid-IMAG0010-150x150.jpg" alt="wpid-IMAG0010.jpg" width="150" height="150" /></a><p class="wp-caption-text">cracked screen = no fun</p></div>
<p>I decided to switch it up a bit and see what life is like in Android land, and I&#8217;ve got to say I&#8217;m really enjoying it so far.  I ended up getting the new HTC Incredible which sports a 1ghz Snapdragon processor, 512mb of ram and an amazingly crisp 8 megapixel camera.  The difference between browsing speed on AT&amp;T versus Verizon is unbelievable, especially in NYC.  Pages that would chug on my iPhone load quickly on the Incredible.  In addition, I found an amazingly helpful application (&#8217;<a href="http://www.markspace.com/" target="_blank">The Missing Sync</a>&#8216;) that lets me wirelessly sync all of my desktop content &#8211; including my music &#8211; to my phone whenever the two devices are on the same wireless network.  No more USB syncing with iTunes &#8211; yay <img src='http://blog.craigkapp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The built in camera takes great photos and sports a software based digital zoom as well as a &#8220;tap to focus&#8221; feature that lets you isolate subjects in your shot easily.  Here&#8217;s a scaled down image of my pup, Prue, that I took using the built-in cam the other night.</p>
<div id="attachment_1413" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/05/wpid-IMAG0014.jpg" rel="shadowbox[post-1414];player=img;"><img class="size-thumbnail wp-image-1413" title="my pup, prue" src="http://blog.craigkapp.com/wp-content/uploads/2010/05/wpid-IMAG0014-150x150.jpg" alt="wpid-IMAG0014.jpg" width="150" height="150" /></a><p class="wp-caption-text">my pup, prue</p></div>
<p>One of my favorite features of the phone is that it runs Flash Lite.  ZooBurst even loads on the phone, which really surprised me since I use a ton of external 3D libraries that I thought wouldn&#8217;t be compatible.  With that said, let me say that I&#8217;m as excited as everyone else to see what HTML 5 will eventually bring to the table, but right now there are things that Flash can do on the web easily that just aren&#8217;t possible with other languages (including all of my augmented reality experiments).  I&#8217;m really psyched about the full version of Flash mobile that is supposedly coming out this summer.  I wonder how easy it will be to port some of my AR demos to run on Android &#8230; I&#8217;ll keep you all posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1414</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZooBurst Animation Experiments</title>
		<link>http://blog.craigkapp.com/?p=1381</link>
		<comments>http://blog.craigkapp.com/?p=1381#comments</comments>
		<pubDate>Tue, 20 Apr 2010 03:09:34 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Zooburst]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1381</guid>
		<description><![CDATA[ZooBurst v1.0 was launched last week, and over the past 5 days over 60 people have signed up to start building their own 3D Pop-Up books.  It&#8217;s amazing to see what kinds of books people are creating &#8211; as of now there are over 44 user-created books, including an instructional story on how kids can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://alpha.zooburst.com/" target="_blank">ZooBurst</a> v1.0 was launched last week, and over the past 5 days over 60 people have signed up to start building their own 3D Pop-Up books.  It&#8217;s amazing to see what kinds of books people are creating &#8211; as of now there are over 44 user-created books, including an instructional story on how kids can stay safe on the Internet, personal narratives and even a 3D Mother&#8217;s Day card!</p>
<p>The ZooBurst community has also been providing me with tons of feedback on how I can make the tool more useful, and some of the top requests so far have to do with customization of materials and animation.  I figured that I would start my experimentation with a few animation techniques to try and make the ZooBurst world feel a little more &#8220;alive.&#8221;  I began by taking a look at the various book backgrounds to see how I could enhance the user experience a bit.</p>
<div id="attachment_1406" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-19-at-11.04.42-PM.png" rel="shadowbox[post-1381];player=img;"><img class="size-medium wp-image-1406" title="ZooBurst background" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-19-at-11.04.42-PM-300x218.png" alt="ZooBurst background" width="300" height="218" /></a><p class="wp-caption-text">ZooBurst background</p></div>
<p><strong>Skyboxes</strong></p>
<p>ZooBurst backgrounds are rendered using a technique called a &#8220;skybox&#8221;.  A skybox is a trick used by 3D artists and developers to give a 3D space a sense of &#8220;depth&#8221; without having to add large numbers of 3D assets to a given scene.  Skyboxes attempt to simulate far-off details by &#8220;trapping&#8221; the user&#8217;s camera within a large cube.  Once inside, the interior faces of the cube are tiled with a series of images that are designed to give the illusion of depth, as can be seen in the following diagram:</p>
<div id="attachment_1398" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/skybox2.png" rel="shadowbox[post-1381];player=img;"><img class="size-medium wp-image-1398" title="Skybox setup" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/skybox2-300x300.png" alt="Skybox setup" width="300" height="300" /></a><p class="wp-caption-text">Skybox setup</p></div>
<p>With a little tweaking you can easily create your own skybox textures out of a regular flat image.  For example, using a PhotoShop plugin called &#8216;<a href="http://www.flamingpear.com/flexify.html" target="_blank">Flexify 2</a>&#8216; by Flaming Pear, I was able to turn this image of a beach in Spain into a series of skybox tiles.</p>
<div id="attachment_1393" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/mallorca-portalsveills.jpg" rel="shadowbox[post-1381];player=img;"><img class="size-medium wp-image-1393" title="My favorite cove in Mallorca" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/mallorca-portalsveills-300x224.jpg" alt="My favorite cove in Mallorca" width="300" height="224" /></a><p class="wp-caption-text">My favorite cove in Mallorca</p></div>
<div id="attachment_1394" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/mallorca-portalsveills-cube.jpg" rel="shadowbox[post-1381];player=img;"><img class="size-medium wp-image-1394" title="The same cove in Mallorca turned into a foldable &quot;cube&quot;" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/mallorca-portalsveills-cube-300x225.jpg" alt="The same cove in Mallorca turned into a foldable &quot;cube&quot;" width="300" height="225" /></a><p class="wp-caption-text">The same cove in Mallorca turned into a foldable &quot;cube&quot;</p></div>
<p>It looks pretty cool to stand inside of a skybox made using this technique for about 3 seconds.  After that you start to realize that the world you are standing in is completely devoid of motion, which is exactly what I was trying to avoid when having visitors come inside of a ZooBurst book.</p>
<p>After playing around with static images I realized that I really wanted to do was to create a series of animated skybox textures.  These textures could then be scripted so that I could cause the background to reform itself on a continuous basis to breathe a little more life to a ZooBurst book.</p>
<p><strong>The Skybox Experiments</strong></p>
<p>In theory this seemed simple enough.  Flash is great at handling all sorts of animation, and Papervision 3D has the ability to take an animated Flash movieclip and use it as a &#8220;texture&#8221; for 3D constructs (cubes, spheres, planes, etc.)</p>
<p>I started off by creating a very long movie clip (2400 pixels wide by 600 pixels high) that I planned to &#8220;slice&#8221; into the four side walls of my skybox.  From there I planned on scripting a series of dynamic animations that could be cut apart at run-time to provide a seamless set of textures.  Here&#8217;s my first stab at trying to get this up and running &#8211; click on the image below to  launch the demo.</p>
<div>
<dl id="attachment_1382" style="width: 310px;">
<dt><a href="http://blog.craigkapp.com/wp-content/uploads/ar/noc_final/noc_cubetest.html"><img title="Creating animated textures for  a 3D skybox using a single source movieclip" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-17-at-8.48.31-PM-300x178.png" alt="Creating animated textures for a 3D skybox using a single source  movieclip" width="300" height="178" /></a></dt>
<dd>Test #1: Creating animated textures for a 3D  skybox using a single source movieclip (click image for live demo)</dd>
</dl>
</div>
<p>And here&#8217;s how I approached the problem:</p>
<ol>
<li>Create a single large movieclip that contains the animation that I want to tile on the 4 side faces of a skybox.</li>
<li>Create four smaller movieclips that will each hold 25% of the total animation.</li>
<li>Use Flash&#8217;s built-in &#8216;bitmapData.draw()&#8217; method to extract out the necessary visual elements and draw them into the appropriate &#8220;holder&#8221; movieclips.  In my example the source movieclip was 2400 x 600, allowing  me chunk it out into blocks of 600 x 600.</li>
<li>Finally, I need to deal with the &#8220;wraparound&#8221; issue.  When an item goes off the screen in any direction it should wrap and appear on the opposite side.  This isn&#8217;t that difficult to do when working on a screen that has defined edges, but a skybox is built to give the illusion of seamlessness, meaning that when an item goes off the screen it can&#8217;t just &#8220;jump&#8221; over to the other side.  The portions of a character that are off the screen must be drawn on the other side of the skybox while the portions that remain on the screen continue to be drawn in place.  I accomplished this by using two additional calls to &#8216;bitmapData.draw()&#8217; to capture objects that went out of bounds and draw them in their appropriate spots.</li>
</ol>
<p>The first experiment didn&#8217;t turn out half bad, but next I had to figure out whether my &#8220;slice and paste&#8221; algorithm would hold up inside the a resource-intensive 3D environment.  My first stab at this yielded a mixed result.  Things were a bit slow when I applied the animated background to the skybox surrounding a ZooBurst book.</p>
<p>As I&#8217;ve worked with Flash I&#8217;ve found that most movies run significantly faster on a PC than a Mac.  This is a shame, since I prefer to do all my development on a Mac and want to make sure that users on any platform have a good experience with the content I create.  With that said, the performance hit for this technique is pretty high (the CPU regularly pegs at 100%), especially when viewed through Safari on a Mac (Firefox is a bit better for some reason.)  The whole simulation runs beautifully on a PC in any browser.  Go figure!</p>
<p>So, with that said, here is test #2, which uses the same method and texture demonstrated in test #1 and applies it to a Papervision 3D skybox surrounding a ZooBurst 3D pop-up book.</p>
<div id="attachment_1386" class="wp-caption alignnone" style="width: 310px"><a href="http://alpha.zooburst.com/experiments/noc_animatedbg_01/"><img class="size-medium wp-image-1386" title="Animated skybox background demo using ZooBurst" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-17-at-9.54.35-PM-300x194.png" alt="Animated skybox background demo using ZooBurst" width="300" height="194" /></a><p class="wp-caption-text">Test #2: Animated skybox background demo using ZooBurst (click image for a live demo)</p></div>
<p>You&#8217;ll also notice that the skybox is fairly pixelated (stare at one of the fish for a few seconds and you&#8217;ll see what I mean).</p>
<p>My next task was to try and clean the animation up as much as possible while also trying to improve rendering performance and playback speed.  Here&#8217;s what seems to have done the trick:</p>
<ol>
<li>Flash does have some run-time blurring capabilities that let you smooth out jagged edges of bitmaps.  However, applying this technique to fifty-some fish while rendering them in 3D proved to be an incredible waste of resources.  Simply pre-blurring the characters in PhotoShop and importing the PNGs back into the Flash movie seemed to do the trick nicely.</li>
<li>The current version of ZooBurst only renders the 3D scene when the user decides to rotate around it.  This results in a huge savings of CPU cycles.  I didn&#8217;t want to abandon this technique entirely for this implementation, so I altered my rendering policy to do the following:
<ol>
<li>Render the whole scene when the user is rotating around the book</li>
<li>Only render the skybox and the &#8220;chat bubbles&#8221; when the book is at rest (this allows the bubbles to remain clickable while the rest of the book goes dormant).  This was accomplished using Papervision&#8217;s &#8220;renderLayers&#8221; method.</li>
</ol>
</li>
<li>I reduced the number of polygons devoted to the skybox from 400 per face down to 25.  This caused some distortion that looked surprisingly like you are underwater!  However, since I was working on a system-wide solution for animated backgrounds I figured this wasn&#8217;t something I wanted to keep in the simulation.  I ended up using precise texture mapping and texture smoothing to compensate (MovieMaterial.precise and MovieMaterial.smooth)</li>
</ol>
<p>The final iteration can be seen here.  Notice that the fish no longer just swim from one side to the other.  I coded them to behave using a &#8220;reverse flocking&#8221; algorithm that causes each fish to try and remain an optimal distance away from every other fish.</p>
<div id="attachment_1402" class="wp-caption alignnone" style="width: 310px"><a href="http://alpha.zooburst.com/experiments/noc_animatedbg_03/"><img class="size-medium wp-image-1402 " title="Experiment #3: Optimized animated skybox + flocking creature behavior" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-19-at-10.16.32-PM-300x194.png" alt="Experiment #3: Optimized animated skybox + flocking creature behavior" width="300" height="194" /></a><p class="wp-caption-text">Experiment #3: Optimized animated skybox + flocking creature behavior (click image for live demo)</p></div>
<p><strong>Next Steps</strong></p>
<p>I&#8217;d love to get these new backgrounds into ZooBurst right away, but I feel that I still need to thoroughly test the implementation before releasing it into the ZooBurst environment.  As I move forward I also want to address the following issues, including:</p>
<ol>
<li><strong>Delivery</strong>.  Currently the ZooBurst skyboxes are delivered using static PNG or JPG files.  In order to fully implement an animated skybox in a non-hacky way (i.e. not hard-coding the animation routines into the ZB viewer) I need to explore some alternate delivery options.  Right now I&#8217;m leaning towards dynamically loading in animated skybox SWF files that contain the necessary simulation code and graphical elements combined into an easy to digest package.</li>
<li><strong>Performance</strong>.  I&#8217;m not 100% sure that I want ZooBurst to consume so much CPU time.  I need to spend some time optimizing the routines to things down to a more manageable level.</li>
<li><strong>Interactivity</strong>.  Is it possibly (or even desierable?) to make these animated backgrounds interactive in some way?  Should you be able to feed the fish, open a giant clam or dive for buried treasure?  Or does that take away from the pop-up book expereience?</li>
<li><strong>Options</strong>.  Whatever I end up implementing needs to come delivered with the ability to gracefully turn itself off if need be.  Users should be given the choice as to whether they want to experience a book with or without animation and sounds.</li>
</ol>
<p><strong>Update:</strong></p>
<p>The following demo shows how you can use the mouse to interact with dynamic background elements within a 3D skybox.  In this example your mouse causes bubbles to appear in the water, and the bubbles have a &#8220;lifting&#8221; effect on the crab that crawls along the floor.  I&#8217;m still not sure if this is a good idea for ZooBurst &#8211; it may end up being more of a distraction than anything else.</p>
<div id="attachment_1409" class="wp-caption alignnone" style="width: 310px"><a href="http://alpha.zooburst.com/experiments/noc_animatedbg_04/"><img class="size-medium wp-image-1409" title="Interactive animated background (click for demo)" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/anim3-300x195.jpg" alt="anim3" width="300" height="195" /></a><p class="wp-caption-text">Interactive animated background (click for demo)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1381</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZooBurst v1.0</title>
		<link>http://blog.craigkapp.com/?p=1370</link>
		<comments>http://blog.craigkapp.com/?p=1370#comments</comments>
		<pubDate>Tue, 13 Apr 2010 11:35:20 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Zooburst]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1370</guid>
		<description><![CDATA[
ZooBurst is a web-based digital storytelling tool that is designed to let  anyone  easily create their own customized 3D pop-up books.   As of today I am pleased to report that version 1.0 of ZooBurst is up and running,   and is accessible to the world at http://alpha.zooburst.com.
Here&#8217;s an example ZooBurst book (requires [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-13-at-7.46.39-AM.png" rel="shadowbox[post-1370];player=img;"><img class="alignnone size-full wp-image-1377" title="ZooBurst" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-13-at-7.46.39-AM.png" alt="ZooBurst" width="454" height="111" /></a></p>
<p>ZooBurst is a web-based digital storytelling tool that is designed to let  anyone  easily create their own customized 3D pop-up books.   As of today I am pleased to report that version 1.0 of ZooBurst is up and running,   and is accessible to the world at <a href="http://alpha.zooburst.com" target="_blank">http://alpha.zooburst.com</a>.</p>
<p><a href="http://alpha.zooburst.com/index.php?viewbook=15" target="_blank">Here&#8217;s an example ZooBurst book</a> (requires the Adobe Flash player plugin &#8211; sorry iPad/Pod/Phone users!)</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="418" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="quality" value="high" /><param name="FlashVars" value="book_id=15" /><param name="src" value="http://alpha.zooburst.com/swf/viewer/zooburstviewer.swf" /><param name="name" value="zooburstviewer" /><param name="flashvars" value="book_id=15" /><param name="allowfullscreen" value="false" /><embed type="application/x-shockwave-flash" width="640" height="418" src="http://alpha.zooburst.com/swf/viewer/zooburstviewer.swf" name="zooburstviewer" flashvars="book_id=15" quality="high" allowfullscreen="false" allowscriptaccess="always" align="middle"></embed></object></p>
<p>&#8230; and here are a few screen shots for those of you who are viewing this post via an aggregator:</p>
<div id="attachment_1374" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-11-at-4.20.53-PM.png" rel="shadowbox[post-1370];player=img;"><img class="size-medium wp-image-1374" title="Zooburst 3D Pop-Up Book" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-11-at-4.20.53-PM-300x195.png" alt="Zooburst 3D Pop-Up Book" width="300" height="195" /></a><p class="wp-caption-text">Zooburst 3D Pop-Up Book</p></div>
<div id="attachment_1375" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-11-at-4.28.21-PM.png" rel="shadowbox[post-1370];player=img;"><img class="size-medium wp-image-1375" title="Zooburst 3D Pop-Up Book - Augmented Reality" src="http://blog.craigkapp.com/wp-content/uploads/2010/04/Screen-shot-2010-04-11-at-4.28.21-PM-300x247.png" alt="Zooburst 3D Pop-Up Book - Augmented Reality" width="300" height="247" /></a><p class="wp-caption-text">Zooburst 3D Pop-Up Book - Augmented Reality</p></div>
<p>The current version of ZooBurst supports the following features:</p>
<ul>
<li>Web-based access to user created books</li>
<li>Embeddable content that allows a ZooBurst book to exist on any website that accepts HTML embed code</li>
<li>Augmented Reality mode that lets you experience a book in the palm of your hand (requires a webcam)</li>
<li>Web-based creation of new books</li>
<li>Integration with the <a href="http://www.openclipart.org/" target="_blank">Open Clip Art Library</a> of public-domain vector images</li>
<li>Local file upload feature to allow you to use your own artwork within a book</li>
</ul>
<p>Over the next week I will be contacting individuals who have signed up for the public beta version of ZooBurst with an invitation code.  We are still accepting new users on a rolling basis &#8211; <a href="http://blog.zooburst.com/public-beta/">to sign up for an  account  please visit this form</a> and tell us a little more about  yourself and  why you would like to give ZooBurst a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1370</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010 NMC Symposium on New Media and Learning</title>
		<link>http://blog.craigkapp.com/?p=1362</link>
		<comments>http://blog.craigkapp.com/?p=1362#comments</comments>
		<pubDate>Thu, 25 Mar 2010 16:30:01 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Educational Technology]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1362</guid>
		<description><![CDATA[Thanks to everyone who sat in on my &#8216;Augmented Reality in the Classroom&#8216; presentation at the NMC Symposium on New Media and Learning.  This year&#8217;s event was held completely online in a private instance of the Second Life virtual world called &#8216;Hakone&#8217; &#8211; here are a few snapshots from the space:
And here are some resources [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone who sat in on my &#8216;<a href="http://www.nmc.org/preso/7676" target="_blank">Augmented Reality in the Classroom</a>&#8216; presentation at the NMC Symposium on New Media and Learning.  This year&#8217;s event was held completely online in a private instance of the Second Life virtual world called &#8216;Hakone&#8217; &#8211; here are a few snapshots from the space:</p>
<div id="attachment_1359" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.35.47-AM.png" rel="shadowbox[post-1362];player=img;"><img class="size-medium wp-image-1359" title="Screen shot 2010-03-24 at 8.35.47 AM" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.35.47-AM-300x292.png" alt="Screen shot 2010-03-24 at 8.35.47 AM" width="300" height="292" /></a><p class="wp-caption-text">Welcome to the NMC&#39;s Symposium on New Media &amp; Learning!</p></div>
<div id="attachment_1360" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.37.10-AM.png" rel="shadowbox[post-1362];player=img;"><img class="size-medium wp-image-1360" title="Screen shot 2010-03-24 at 8.37.10 AM" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.37.10-AM-300x110.png" alt="Screen shot 2010-03-24 at 8.37.10 AM" width="300" height="110" /></a><p class="wp-caption-text">Milgram&#39;s Virtuality Continuum</p></div>
<div id="attachment_1361" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.39.55-AM.png" rel="shadowbox[post-1362];player=img;"><img class="size-medium wp-image-1361" title="Screen shot 2010-03-24 at 8.39.55 AM" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-24-at-8.39.55-AM-300x211.png" alt="Screen shot 2010-03-24 at 8.39.55 AM" width="300" height="211" /></a><p class="wp-caption-text">Looking out over the Hakone landscape with some random AR &#39;props&#39;</p></div>
<p>And here are some resources that I referenced during my talk.  If you have any questions please feel free to drop me a line!</p>
<ul>
<li><a href="http://www.zooburst.com/" target="_blank">Zooburst  Augmented Reality Pop-Up Books</a></li>
<li><a href="../?p=512" target="_blank">Live  demo:   Earth / Moon</a></li>
<li><a href="../?p=552" target="_blank">Live  demo:   Solar System</a></li>
<li><a href="../?p=1304" target="_blank">Live  demo –  Labyrinth Physics</a></li>
<li><a href="../?p=659" target="_blank">Live demo  –  Catch a Star (Assistive Tech)</a> (motion tracking augmented  reality)</li>
<li><a href="../?p=1283" target="_blank">Live  demo –  Virtual Gardener</a> (color tracking augmented reality)</li>
<li><a href="../?p=1256" target="_blank">The  Whisper  Deck</a>: A voice-controlled augmented reality search engine</li>
<li><a href="../?p=691" target="_blank">SimSnails</a>:  An augmented reality ecosystem that helps kids learn about and  experiment with the concepts of directional selection and evolution.</li>
<li><a href="http://www.pbs.org/wgbh/pages/frontline/digitalnation/virtual-worlds/health-healing/" target="_blank">Frontline Digital Nation (PBS)</a></li>
<li><a href="http://www.nytimes.com/2009/03/09/technology/09topps.html" target="_blank">Topps Baseball Cards in Augmented Reality</a></li>
<li><a href="http://ge.ecomagination.com/smartgrid/" target="_blank">Live  demo – Plug into the Smart Grid (GE)</a>:</li>
<li><a href="http://www.esquire.com/the-side/augmented-reality" target="_blank">Esquire Magazine – Augmented Reality Edition</a></li>
<li><a href="http://www.hallmark.com/webapp/wcs/stores/servlet/article%7C10001%7C10051%7C/HallmarkSite/Cards/AUGMENTED_REALITY" target="_blank">Hallmark Augmented Reality Greeting Cards</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1362</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3D version of Conway&#8217;s &#8216;Game of Life&#8217; in Augmented Reality</title>
		<link>http://blog.craigkapp.com/?p=1352</link>
		<comments>http://blog.craigkapp.com/?p=1352#comments</comments>
		<pubDate>Wed, 24 Mar 2010 01:01:22 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1352</guid>
		<description><![CDATA[This week I decided to re-imagine one of my favorite freshman-year Computer Science projects in 3D using AR.  The typical implementation of the Game of Life is set within a 2D space, and I though it would be interesting to see what kind of behaviors emerge if creatures were allowed to expand beyond a flat [...]]]></description>
			<content:encoded><![CDATA[<p>This week I decided to re-imagine one of my favorite freshman-year Computer Science projects <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank"></a>in 3D using AR.  The typical implementation of the <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank">Game of Life</a> is set within a 2D space, and I though it would be interesting to see what kind of behaviors emerge if creatures were allowed to expand beyond a flat plane.</p>
<div id="attachment_1353" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-23-at-8.39.15-PM.png" rel="shadowbox[post-1352];player=img;"><img class="size-medium wp-image-1353" title="Screen shot 2010-03-23 at 8.39.15 PM" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-23-at-8.39.15-PM-300x225.png" alt="A 3D version of Conway's 'Game of Life' rendered in Augmented Reality" width="300" height="225" /></a><p class="wp-caption-text">A 3D version of Conway&#39;s &#39;Game of Life&#39; rendered in Augmented Reality</p></div>
<p>My version operates under the following conditions:</p>
<ol>
<li>Creatures live in a 3D space that is 9 x 9 x 9 cubes in size (729 possible spaces)</li>
<li>Each cube represents a single living &#8220;creature&#8221;</li>
<li>Only one creature may occupy a position at a time</li>
<li>Creatures are &#8220;born&#8221; into unoccupied spaces if they are adjacent to exactly 2 or 3 other creatures</li>
<li>Creatures die of loneliness if they occupy a space that is adjacent to less than 2 other creatures</li>
<li>Creatures die of overcrowding if they occupy a space that is adjacent to more than 3 other creatures</li>
<li>Neighbors are calculated based on those directly above, below, in front, behind, to the left and to the right of a creature</li>
</ol>
<p>The starting positions of creatures within the world are randomized based on an &#8216;initial cube density&#8217; slider that can be adjusted at run-time.  I&#8217;ve found that the most interesting patterns tend to emerge at the low end of the density scale, but feel free to experiment!</p>
<p><a href="http://blog.craigkapp.com/wp-content/uploads/ar/3dgameoflife/" target="_blank">You can access a live version of the project by clicking here.</a></p>
<p>Use the marker below to give it a try.</p>
<div id="attachment_1308" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/flarlogo-marker-300x300.png" rel="shadowbox[post-1352];player=img;"><img class="size-full wp-image-1308" title="flarlogo-marker-300x300" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/flarlogo-marker-300x300.png" alt="print me!" width="300" height="300" /></a><p class="wp-caption-text">print me!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1352</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Demo version of the Zooburst viewer is now online</title>
		<link>http://blog.craigkapp.com/?p=1332</link>
		<comments>http://blog.craigkapp.com/?p=1332#comments</comments>
		<pubDate>Mon, 15 Mar 2010 02:09:13 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Zooburst]]></category>

		<guid isPermaLink="false">http://blog.craigkapp.com/?p=1332</guid>
		<description><![CDATA[I&#8217;m happy to report that a working version of the Zooburst 3D pop-up book viewer is  now online!  This viewer will allow you to experience the kinds of 3D  pop-up books that Zooburst v0.1 will be able to create.  The viewer  currently has the following features:

Multiple pages: Use the arrow [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to report that a working version of the Zooburst 3D pop-up book viewer is  now online!  This viewer will allow you to experience the kinds of 3D  pop-up books that Zooburst v0.1 will be able to create.  The viewer  currently has the following features:</p>
<ul>
<li><strong>Multiple pages</strong>: Use the arrow buttons at the bottom of the  screen to cycle from page to page.</li>
<li><strong>Spatial positioning</strong>: Click and hold your mouse on the  Zooburst book to orbit around it in 3D space.</li>
<li><strong>Clickable characters</strong>: Some characters have more to say than  others!  Click around to learn more about items on each page.</li>
<li><strong>Augmented reality</strong>: Click on the &#8216;Augmented Reality&#8217; button at  the top of the screen to experience the book in AR.  Note that you need  an active webcam installed as well as access to a printer to print out  the necessary marker.</li>
</ul>
<p><a href="http://www.zooburst.com/publicdemo01/">To access the public  demo, click here!</a> If you get a chance, please leave a comment by  using the form at the bottom of the viewer page.  Thanks!</p>
<div id="attachment_1333" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-14-at-9.45.15-PM.png" rel="shadowbox[post-1332];player=img;"><img class="size-medium wp-image-1333" title="Screen shot 2010-03-14 at 9.45.15 PM" src="http://blog.craigkapp.com/wp-content/uploads/2010/03/Screen-shot-2010-03-14-at-9.45.15-PM-300x183.png" alt="The Zooburst viewer" width="300" height="183" /></a><p class="wp-caption-text">The Zooburst viewer</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.craigkapp.com/?feed=rss2&amp;p=1332</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
