<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 - Entries tagged with Augmented  Reality</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/augmented+reality/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9 - Entries tagged with Augmented  Reality</title>
      <link>http://channel9.msdn.com/Tags/augmented+reality</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
    <link>http://channel9.msdn.com/Tags/augmented+reality</link>
    <language>en</language>
    <pubDate>Tue, 21 May 2013 14:38:18 GMT</pubDate>
    <lastBuildDate>Tue, 21 May 2013 14:38:18 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>10</c9:totalResults>
    <c9:pageCount>1</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Augmented Reality with SLARToolkit on Windows Phone</title>
      <description><![CDATA[<p>Today's Mobile Monday project takes us back to a toolkit mentioned here a few times, back to Windows Phone and back to augmented reality.</p><p>If all these things have already been mentioned before why revisit them? Because today's post is an hour long session that gently introduces you to the world of augmented reality, doing AR on Windows Phone 7.1(5), and two sample code projects too.</p><h2><a href="http://darkgenesis.zenithmoon.com/recording-of-programming-augmented-reality-for-windows-phone/">Recording of “Programming Augmented Reality for Windows Phone”</a></h2><blockquote><p>As promised here’s the recording of the webcast session I did for AT&amp;T on Augmented Reality with Windows Phone.</p><p>It was great going through this stuff and hopefully inspiring more people to think beyond with their apps and bring in the real world to augment users experiences!</p><p>Items that were covered in the session were:</p><ul><li>Recap on what it means to have Augmented Reality </li><li>Review of the different types of AR solutions </li><li>A High level description of what sensors and inputs you can use to augment your solution </li><li>A Run down of the top 3 AR toolkits for Windows Phone in both Silverlight and XNA </li><li>A code walkthrough of a Silverlight solution using SLARToolkit </li><li>A Code walkthrough of a 3D SilverXNA project also using the SLARToolkit </li><li>Q&amp;A </li></ul></blockquote><p><object width="400" height="220"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=44724205&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=44724205&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="220"></embed></object><p><a href="http://vimeo.com/44724205">from Vimeo</a>.</p></p><p>The source for the two mentioned projects are available here, <a href="http://starterxna.codeplex.com/releases/view/91183" target="_blank">Programming Augmented Reality for WP Source</a>. If you grab these sample projects and run into an error where the &quot;SLARToolKitWinPhone&quot; project cannot be found, there's a couple fixes.</p><p>What I did was just grab the latest source from the SLAR Project (<a title="http://slartoolkit.codeplex.com/SourceControl/list/changesets" href="http://slartoolkit.codeplex.com/SourceControl/list/changesets">http://slartoolkit.codeplex.com/SourceControl/list/changesets</a>), unziped it and replaced that project with the one in \trunk\SLARToolKit\Source\SLARToolKit, SLARToolKitWinPhone.csproj.</p><p>Or you can download the SLAR binaries (<a title="http://slartoolkit.codeplex.com/releases/" href="http://slartoolkit.codeplex.com/releases/">http://slartoolkit.codeplex.com/releases/</a>) and use them.</p><p>The important thing is that Simon spends an hour with us, talking about AR, challenges and just the fun things you can do with it on Windows Phone.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-62.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-62.png" alt="image" width="431" height="323" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B8%5D-29.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-57.png" alt="image" width="428" height="326" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B11%5D-29.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B3%5D-51.png" alt="image" width="427" height="325" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B5%5D-27.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-69.png" alt="image" width="504" height="329" border="0"></a></p><p>Here’s a few more links you might find interesting:</p><ul><li><a href="http://slartoolkit.codeplex.com" target="_blank">SLARToolkit</a> </li><li><a href="http://channel9.msdn.com/coding4fun/blog/How-about-a-little-physics-in-your-augmented-reality" target="_blank">How about a little physics in your augmented reality?</a> </li><li><a href="http://channel9.msdn.com/blogs/coolstuff/augmented-reality-comes-to-silverlight" target="_blank">Augmented Reality Comes to Silverlight</a> </li><li><a href="http://channel9.msdn.com/coding4fun/blog/YASL53DP-Supercharging-Silverlight-5-3D-projects-with-the-Babylon-Toolkit" target="_blank">(YASL53DP) Supercharging Silverlight 5 3D projects with the Babylon Toolkit</a> </li><li><a href="http://channel9.msdn.com/coding4fun/blog/Augmented-Reality-3D-Web-cam-Silverlight-5-beta-and-you" target="_blank">Augmented Reality, 3D, Web cam, Silverlight 5 beta and you.</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:164023784c564c25b4d1a09501207838">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Augmented-Reality-with-SLARToolkit-on-Windows-Phone</comments>
      <itunes:summary>Today&#39;s Mobile Monday project takes us back to a toolkit mentioned here a few times, back to Windows Phone and back to augmented reality. If all these things have already been mentioned before why revisit them? Because today&#39;s post is an hour long session that gently introduces you to the world of augmented reality, doing AR on Windows Phone 7.1(5), and two sample code projects too. Recording of “Programming Augmented Reality for Windows Phone”As promised here’s the recording of the webcast session I did for AT&amp;amp;T on Augmented Reality with Windows Phone. It was great going through this stuff and hopefully inspiring more people to think beyond with their apps and bring in the real world to augment users experiences! Items that were covered in the session were: Recap on what it means to have Augmented Reality Review of the different types of AR solutions A High level description of what sensors and inputs you can use to augment your solution A Run down of the top 3 AR toolkits for Windows Phone in both Silverlight and XNA A code walkthrough of a Silverlight solution using SLARToolkit A Code walkthrough of a 3D SilverXNA project also using the SLARToolkit Q&amp;amp;A from Vimeo.  The source for the two mentioned projects are available here, Programming Augmented Reality for WP Source. If you grab these sample projects and run into an error where the &amp;quot;SLARToolKitWinPhone&amp;quot; project cannot be found, there&#39;s a couple fixes. What I did was just grab the latest source from the SLAR Project (http://slartoolkit.codeplex.com/SourceControl/list/changesets), unziped it and replaced that project with the one in \trunk\SLARToolKit\Source\SLARToolKit, SLARToolKitWinPhone.csproj. Or you can download the SLAR binaries (http://slartoolkit.codeplex.com/releases/) and use them. The important thing is that Simon spends an hour with us, talking about AR, challenges and just the fun things you can do with it on Windows Phone.     Here’s a few more links you might find interesting: S</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Augmented-Reality-with-SLARToolkit-on-Windows-Phone</link>
      <pubDate>Mon, 23 Jul 2012 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Augmented-Reality-with-SLARToolkit-on-Windows-Phone</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/bb434272-1bf6-4411-860c-77831340cba7.png" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/4e69db55-9ba9-4463-970d-88107696fd96.png" height="165" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Augmented-Reality-with-SLARToolkit-on-Windows-Phone/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Coding4Fun</category>
      <category>Silverlight</category>
      <category>Windows Phone</category>
      <category>Windows Phone 7</category>
    </item>
  <item>
      <title>Ping 137: Kinect illusionist, Kintext, R.I.P. XP, Lumias!</title>
      <description><![CDATA[<p>We got a new set! Well, sorta. We virtually got a new set. We definitely got a new VIRTUAL set <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /> Regardless, we are fans...let us know what you think! Here are the top stories this week:</p><p><a href="http://video.uk.msn.com/watch/video/uri-goren-microsoft-next-2012/2t7r3tfe">Kintext: be what's next</a>&nbsp;<a href="http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias#time=12m43s">[12:43]</a></p><p><a href="http://blogs.technet.com/b/next/archive/2012/04/02/live-augmented-reality-with-kinect-ted-marco-tempest.aspx">Illusionist or Augmented Reality? </a>&nbsp;<a href="http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias#time=02m22s">[02:22]</a></p><p><a href="http://www.winsupersite.com/article/windows-xp2/microsoft-windows-xp-support-expiring-142797?utm_source=twitterfeed&amp;utm_medium=twitter">Farewell XP</a>&nbsp;<a href="http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias#time=08m13s">[08:13]</a></p><p><a href="http://conversations.nokia.com/2012/03/26/mark-your-calendars-nokia-lumia-900-available-for-purchase-in-the-us/">Get your Lumia!</a>&nbsp; <a href="http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias#time=16m10s">[16:10]</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:a6b7ed574d2a4a3f9f9aa0350124e9c0">]]></description>
      <comments>http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias</comments>
      <itunes:summary>We got a new set! Well, sorta. We virtually got a new set. We definitely got a new VIRTUAL set  Regardless, we are fans...let us know what you think! Here are the top stories this week: Kintext: be what&#39;s next&amp;nbsp;[12:43] Illusionist or Augmented Reality? &amp;nbsp;[02:22] Farewell XP&amp;nbsp;[08:13] Get your Lumia!&amp;nbsp; [16:10] </itunes:summary>
      <itunes:duration>1187</itunes:duration>
      <link>http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias</link>
      <pubDate>Mon, 16 Apr 2012 22:20:21 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.mp3" expression="full" duration="1187" fileSize="19005955" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.mp4" expression="full" duration="1187" fileSize="113379789" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.webm" expression="full" duration="1187" fileSize="4867" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.wma" expression="full" duration="1187" fileSize="9611823" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.wmv" expression="full" duration="1187" fileSize="260844607" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_high.mp4" expression="full" duration="1187" fileSize="248654583" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_mid.mp4" expression="full" duration="1187" fileSize="173770407" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137_Source.wmv" expression="full" duration="1187" fileSize="605355816" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/5488/d4b893f1-cf09-45f3-bc0c-70e3532d5488/Ping137.wmv" length="260844607" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Laura Foy, Paul Mestemaker</dc:creator>
      <itunes:author>Laura Foy, Paul Mestemaker</itunes:author>
      <slash:comments>10</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/PingShow/Ping-137-Kinect-illusionist-Kintext-RIP-XP-Lumias/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Kinect</category>
      <category>Nokia</category>
      <category>PingShow</category>
      <category>Windows XP</category>
    </item>
  <item>
      <title>YOW! 2011: Allen Wirfs-Brock and Rob Manson - Ambient Computing, Augmented Reality, and JavaScript</title>
      <description><![CDATA[<p><a href="http://www.wirfs-brock.com/allen/%20" target="_blank"><strong>Allen Wirfs-Brock</strong></a> is a Research Fellow at Mozilla working on the next version of JavaScript (EcmaScript, to be precise), codenamed &quot;Harmony.&quot; Allen is the chief editor of the EcmaScript specification. He's also legendary for his work on SmallTalk. It's always fun to chat with Allen. His talk—&quot;The Web Browser is a Transitional Technology&quot; (<a href="http://www.wirfs-brock.com/allen/posts/115" target="_blank">also the topic of a blog post of his</a>)—was all about how the future is HTML5 and JavaScript (what's the need for an OS when you have a browser that runs HTML5?). Of course, we talk about and debate this idea.<br><br><a href="http://ar-ux.com/" target="_blank"><strong>Rob Manson</strong></a> is a pioneer in the field of Augmented Reality as it's related to the future of computing experience—it's the medium Rob believes will define personal computing in the age of pervasive computing, as he calls it (his talk at YOW! is &quot;Augmented Reality Is the UI for Pervasive Computing&quot;). Rob is also a big fan of HTML5 and sees a natural union of the web and augmented reality.<br><br>Putting Allen and Rob together to geek out on JavaScript, HTML5, augmented reality, and ambient or pervasive computing made great sense (Allen's idea!). The future of personal computing is a fascinating topic&nbsp;and Allen and Rob are great folks to talk to about it! Thanks, gentlemen, for the great conversation.</p><p>Key questions: What makes HTML5 the &quot;right&quot; programming model for driving personal computing forward into the future? What's the relationship between augmented reality, ambient computing, and HTML5? Allen and Rob answer these questions. <br><br>What do you think?<br><br>Tune in. Enjoy.</p><p><a href="http://yowaustralia.com.au/YOW2011/general/details.html?speakerId=2221" target="_blank">Allen's YOW! speaker page</a><br><br><a href="http://yowaustralia.com.au/YOW2011/general/details.html?speakerId=2528" target="_blank">Rob's YOW! speaker page</a></p><p><br>The <a href="http://yowaustralia.com.au/YOW2011/general/about.html" target="_blank"><strong>YOW! Developer Conference</strong></a> offers outstanding opportunities to learn more about the latest practices, technologies, and methodologies for building innovative software solutions as well as the chance to meet and network with international software experts and other talented developers in Australia. Thanks to <strong>Dave Thomas</strong> and the event's <em>excellent</em> staff—<strong>Mary Catherine (MC), Lisa, Aino, Melissa</strong>, and others—for inviting me to this <em>excellent</em> pure developer event and thanks to all of the speakers for letting me take some of their time to record conversations for Channel 9. If you live in Australia, or aren't too far away, or just like to travel (who doesn't?), then you need to go to this yearly event. It's outstanding. There are many great developers down under. That's for sure. The speakers are exceptional—Dave and team set a high bar!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:19502271b4fe4b0fa7109fbe018134b3">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Allen-Wirfs-Brock-and-Rob-Manson-Ambient-Computing-Augmented-Reality-and-JavaScript</comments>
      <itunes:summary>Allen Wirfs-Brock is a Research Fellow at Mozilla working on the next version of JavaScript (EcmaScript, to be precise), codenamed &amp;quot;Harmony.&amp;quot; Allen is the chief editor of the EcmaScript specification. He&#39;s also legendary for his work on SmallTalk. It&#39;s always fun to chat with Allen. His talk—&amp;quot;The Web Browser is a Transitional Technology&amp;quot; (also the topic of a blog post of his)—was all about how the future is HTML5 and JavaScript (what&#39;s the need for an OS when you have a browser that runs HTML5?). Of course, we talk about and debate this idea.Rob Manson is a pioneer in the field of Augmented Reality as it&#39;s related to the future of computing experience—it&#39;s the medium Rob believes will define personal computing in the age of pervasive computing, as he calls it (his talk at YOW! is &amp;quot;Augmented Reality Is the UI for Pervasive Computing&amp;quot;). Rob is also a big fan of HTML5 and sees a natural union of the web and augmented reality.Putting Allen and Rob together to geek out on JavaScript, HTML5, augmented reality, and ambient or pervasive computing made great sense (Allen&#39;s idea!). The future of personal computing is a fascinating topic&amp;nbsp;and Allen and Rob are great folks to talk to about it! Thanks, gentlemen, for the great conversation. Key questions: What makes HTML5 the &amp;quot;right&amp;quot; programming model for driving personal computing forward into the future? What&#39;s the relationship between augmented reality, ambient computing, and HTML5? Allen and Rob answer these questions. What do you think?Tune in. Enjoy. Allen&#39;s YOW! speaker pageRob&#39;s YOW! speaker page The YOW! Developer Conference offers outstanding opportunities to learn more about the latest practices, technologies, and methodologies for building innovative software solutions as well as the chance to meet and network with international software experts and other talented developers in Australia. Thanks to Dave Thomas and the event&#39;s excellent staff—Mary Catherine (MC), Lisa, Aino,</itunes:summary>
      <itunes:duration>2271</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Allen-Wirfs-Brock-and-Rob-Manson-Ambient-Computing-Augmented-Reality-and-JavaScript</link>
      <pubDate>Wed, 21 Dec 2011 18:42:49 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Charles/YOW-2011-Allen-Wirfs-Brock-and-Rob-Manson-Ambient-Computing-Augmented-Reality-and-JavaScript</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_2MB_ch9.wmv" expression="full" duration="2271" fileSize="742635742" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_ch9.mp3" expression="full" duration="2271" fileSize="18175200" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_ch9.webm" expression="full" duration="2271" fileSize="323760274" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_ch9.wma" expression="full" duration="2271" fileSize="18374437" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_ch9.wmv" expression="full" duration="2271" fileSize="501907059" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_high_ch9.mp4" expression="full" duration="2271" fileSize="613404876" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_low_ch9.mp4" expression="full" duration="2271" fileSize="229697105" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_med_ch9.mp4" expression="full" duration="2271" fileSize="470459864" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson.ism/manifest" expression="full" duration="2271" fileSize="6226" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/34b3/19502271-b4fe-4b0f-a710-9fbe018134b3/YOW2011AllenWirfsBrockRobManson_ch9.wmv" length="501907059" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>7</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Allen-Wirfs-Brock-and-Rob-Manson-Ambient-Computing-Augmented-Reality-and-JavaScript/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>HTML 5</category>
      <category>HTML5</category>
      <category>JavaScript</category>
      <category>UX</category>
      <category>Web Browser</category>
      <category>YOW! 2011</category>
    </item>
  <item>
      <title>Intertouch Media talks about WPF, Silverlight and Windows 7</title>
      <description><![CDATA[
<p>Ashish Jaiman talks with Intertouch Media founder and lead developer and discusses how they are leveraging Windows 7, WPF and Silverlight.
</p>
<p>Inter touch media creates multi-touch immersive media experiences. They create widgets in WPF for advertisement and other media scenarios. Intertouch Media has recently moved into augmented reality using Silverlight and Microsoft platform.</p>
<p>&nbsp;Learn more @ <a shape="rect" href="http://www.intertouchmedia.com/" shape="rect">
http://www.intertouchmedia.com/</a> </p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f461371ecd0c47ea83269deb00084954">]]></description>
      <comments>http://channel9.msdn.com/Blogs/ashishjaiman/Intertouch-Media-talks-about-WPF-Silverlight-and-Windows-7</comments>
      <itunes:summary>
Ashish Jaiman talks with Intertouch Media founder and lead developer and discusses how they are leveraging Windows 7, WPF and Silverlight.
 
Inter touch media creates multi-touch immersive media experiences. They create widgets in WPF for advertisement and other media scenarios. Intertouch Media has recently moved into augmented reality using Silverlight and Microsoft platform. 
&amp;nbsp;Learn more @ 
http://www.intertouchmedia.com/  
</itunes:summary>
      <itunes:duration>640</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/ashishjaiman/Intertouch-Media-talks-about-WPF-Silverlight-and-Windows-7</link>
      <pubDate>Tue, 01 Jun 2010 21:06:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/ashishjaiman/Intertouch-Media-talks-about-WPF-Silverlight-and-Windows-7</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/553432_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/553432_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_320_ch9.png" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_85_ch9.png" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_2MB_ch9.wmv" expression="full" duration="640" fileSize="432514184" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_ch9.mp3" expression="full" duration="640" fileSize="5127281" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_ch9.mp4" expression="full" duration="640" fileSize="75613165" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_ch9.wma" expression="full" duration="640" fileSize="5186877" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_ch9.wmv" expression="full" duration="640" fileSize="112078493" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_Zune_ch9.wmv" expression="full" duration="640" fileSize="87902545" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/2/3/4/3/5/5/IntertouchMedia_ch9.wmv" length="112078493" type="video/x-ms-wmv"></enclosure>
      <dc:creator>ashishjaiman</dc:creator>
      <itunes:author>ashishjaiman</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/ashishjaiman/Intertouch-Media-talks-about-WPF-Silverlight-and-Windows-7/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Silverlight</category>
      <category>Windows 7</category>
      <category>WPF</category>
    </item>
  <item>
      <title>Augmented Reality Domino Knock-Down Game</title>
      <description><![CDATA[
<p>This article provides step-by-step instructions about how to create a simple, yet interesting, augmented reality game called “domino knock-down game” using an open source framework called Goblin XNA.
</p>
<h3>Introduction</h3>
<p>This is an advanced tutorial, and as such we expect that you are already familiar with XNA and scene graph based 3D programming. The game is a single player game in which the player shoots virtual balls into a real-world environment to knock down all of
 the virtual dominos overlaid on top of a board. The player holds a webcam in one hand and shoots the virtual ball by clicking a mouse using the other hand. Before the game starts, the player is allowed to add virtual dominos or modify the positions and orientations
 of the existing ones overlaid on the board as desired.</p>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image002_5B4_5D.jpg"><img title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image002_5B4_5D_thumb.jpg" width="499" height="372"></a></p>
<h3>How To Compile and Run The Game</h3>
<p>After you download the Goblin XNA distribution from <a href="http://goblinxna.codeplex.com">
http://goblinxna.codeplex.com</a>, as well as all other necessary libraries indicated in the installation guide, compile the Goblin XNA project under the /src directory. If you're not familiar with Goblin XNA framework, it is strongly recommended that you first
 go through the tutorials in the /tutorials directory. Then, find the ARDominos directory under /projects directory and open up the solution file in order to build and run the game.</p>
<h3>How To Play</h3>
<p>Before you run the application, you need to print out the marker array. The marker array can be found in the DominoGroud.ppt file. The 1<sup>st</sup> slide is for the ARTag library, and the 2<sup>nd</sup> one is for the ALVAR library. The size of the PowerPoint
 slide is set to 25.6 x 17.52 inches, so if you want the entire marker array to fit in A4 size paper, you should choose &quot;Scale to fit&quot; option when you print. Once you have the print out, you're ready to run the game.</p>
<p>The virtual dominos are overlaid around the center of the marker array (referred to as ‘game board' from now on), so you need to aim your webcam around the center of the game board. If you move your mouse cursor around on top of the game window, you will
 see a yellow-green cross-hair cursor, and this cursor position will be used to control the game play. All of the mouse-based interactions are handled by the left mouse button.
</p>
<p>The initial game mode is ‘Add' (as indicated on the upper-right corner of the game window), so if you click on any part on the game board, a new domino will be added. If you press-and-hold, then you can move the newly added domino around, and once you release
 the mouse the domino will be added at the released position. While the domino is rendered in transparent, you are allowed to modify its orientation along the normal vector of the game board by using the ‘Left' and ‘Right' arrow keys. You are not, however,
 allowed to add a domino outside of the gameboard, and you are initially limited to maximum of 40 dominos on the game board (you can change this limit in the code if you want).
</p>
<p>If you want to edit the current position or orientation of an existing domino on the game board, change the game mode to ‘Edit' by clicking the ‘E' key. To modify the position, press-and-hold the mouse on the desired domino, and drag it around (again, it
 won't allow you to place the domino outside of the game board). The selected domino is rendered transparent, and it remains selected until you select another domino or change to a different game mode. If a domino is selected, you can change its orientation
 by using the ‘Left' and ‘Right' arrow keys. If you want to delete a domino, select the domino you want to delete and press the ‘D' or ‘Delete' key.</p>
<p>Once you are satisfied with the current domino configuration, start the game by pressing the ‘P' key. If you want to reset the configuration to the original one, then press the ‘R' key. Once the game starts, the elapsed time will display in the upper-right
 corner and the number of balls shot will display in the lower-right corner. The goal of the game is to knock all of the virtual dominos off the game board by shooting as many virtual balls as necessary, and you will get different trophies based on the elapsed
 time. </p>
<p>The virtual ball is shot from the cursor location when you click the mouse. You can move the webcam around to move closer to certain dominos and improve your chances of hitting your target. However, if the game board becomes invisible to the camera, the
 game doesn't allow you to shoot any balls. </p>
<p>Once you win, you need to press the ‘P' key to restart the game. </p>
<p><b><u>List of command keys used in the game:</u></b></p>
<p>· 'H' -- Display short-cut key help menu</p>
<p>· 'A' -- Switch to &quot;Add&quot; mode</p>
<p>· 'E' -- Switch to &quot;Edit&quot; mode</p>
<p>· 'P' -- Switch to &quot;Play&quot; mode. If pressed during &quot;Play&quot; mode, it restarts the game.</p>
<p>· 'R' -- Reset the game to the initial state</p>
<p>· 'S' -- Toggles the shadow mapping (NOTE: On non-NVidia graphics cards, the shadow mapping may have some aliasing problem)</p>
<p>· 'G' -- Toggles the GUI</p>
<p>· 'D' -- Delete selected dominos during &quot;Edit&quot; mode</p>
<p>· 'C' -- Toggle center cursor mode during &quot;Play&quot; mode</p>
<h3>Step 1. Setup Scene Basics</h3>
<p>First, you need to setup the basics for the scene, such as lighting and ground plane where the virtual dominos will be placed. Usually, you also need to setup a camera for the scene, but since you will setup the marker tracking system later on, the camera
 will be created and added to the scene automatically.</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 1 and Tutorial 5 that comes with the Goblin XNA distribution.
</p>
<h4>Add Lighting Sources</h4>
<p>We will add two directional lights to the scene, each coming from different directions. We also set the ambient light color to a dark gray color so that none of the objects in the scene will appear totally black.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Create a directional light source</span>
LightSource lightSource = <span class="kwrd">new</span> LightSource();
lightSource.Direction = <span class="kwrd">new</span> Vector3(-1, -1, -1);
lightSource.Diffuse = Color.White.ToVector4();
lightSource.Specular = <span class="kwrd">new</span> Vector4(0.6f, 0.6f, 0.6f, 1);

LightSource lightSource2 = <span class="kwrd">new</span> LightSource();
lightSource2.Direction = <span class="kwrd">new</span> Vector3(1, -1, -1);
lightSource2.Diffuse = Color.White.ToVector4();
lightSource2.Specular = <span class="kwrd">new</span> Vector4(0.6f, 0.6f, 0.6f, 1);

<span class="rem">// Create a light node to hold the light source</span>
LightNode lightNode = <span class="kwrd">new</span> LightNode();
lightNode.AmbientLightColor = <span class="kwrd">new</span> Vector4(0.3f, 0.3f, 0.3f, 1);
lightNode.LightSources.Add(lightSource);
lightNode.LightSources.Add(lightSource2);

<span class="rem">// Add this light node to the root node</span>
scene.RootNode.AddChild(lightNode);</pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
	{font-size:small;
	color:black;
	font-family:consolas,"Courier New",courier,monospace;
	background-color:#ffffff}
.csharpcode 
	{margin:0em}
.csharpcode .rem
	{color:#008000}
.csharpcode .kwrd
	{color:#0000ff}
.csharpcode .str
	{color:#006080}
.csharpcode .op
	{color:#0000c0}
.csharpcode .preproc
	{color:#cc6633}
.csharpcode .asp
	{background-color:#ffff00}
.csharpcode .html
	{color:#800000}
.csharpcode .attr
	{color:#ff0000}
.csharpcode .alt
	{background-color:#f4f4f4;
	width:100%;
	margin:0em}
.csharpcode .lnum
	{color:#606060}
-->
</style>
<p></p>
<h4>Create a Ground Plane</h4>
<p>Since the game will have physics simulation, we will need a ground plane where the dominos will be placed. We will create a GeometryNode to hold the cubic geometry that represents a flat ground plane, and assign physics properties to this ground. Since we
 want to show the game board rather than this virtual ground plane, we set <b>IsOcculder</b> property to true. If this property is set to true, this geometry won't be rendered in the frame buffer; rather, it will be used for z-buffer testing. This means that
 you won't see this ground plane, but if any virtual objects go behind this ground plane, those virtual objects won't be rendered. Since this ground plane won't be visible, we won't assign any materials to it. Finally, we add this ground to the marker node
 that tracks the game board. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">GeometryNode groundNode = <span class="kwrd">new</span> GeometryNode(<span class="str">&quot;Ground&quot;</span>);
groundNode.Model = <span class="kwrd">new</span> Box(129.5f, 99, 0.2f);

groundNode.Physics.Collidable = <span class="kwrd">true</span>;
groundNode.Physics.Shape = ShapeType.Box;
groundNode.Physics.MaterialName = <span class="str">&quot;Ground&quot;</span>;
groundNode.Physics.Pickable = <span class="kwrd">true</span>;
groundNode.AddToPhysicsEngine = <span class="kwrd">true</span>;

groundNode.IsOccluder = <span class="kwrd">true</span>;

groundNode.Model.ReceiveShadows = <span class="kwrd">true</span>;

markerNode.AddChild(groundNode);</pre>
<p></p>
<h3>Step 2. Setup Capture Device and Marker Tracker</h3>
<p>We need to have a video capture device (e.g., a webcam) to capture the real-world environment, and an optical marker tracking system to track the marker array printed on the game board.
</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 8, which comes with the Goblin XNA distribution.</p>
<h4>Setup Capture Device</h4>
<p>Since we're using a webcam to capture the live video, we'll use the DirectShowCapture class. We then initialize this capture device with deviceID = 0, 30Hz framerate, and 640-by-480 resolution, and attach it to our scene. Since we want to show the live video
 stream in the background, we set <b>ShowCameraImage</b> to true.</p>
<p>If your computer has only one webcam attached (including the embedded cameras on laptop computers), then using deviceID = 0 will work fine. However, if you have more than one webcam, then you need to change this ID to indicate which webcam you want to use.
</p>
<p><b>C# </b></p>
<pre class="csharpcode">DirectShowCapture captureDevice = <span class="kwrd">new</span> DirectShowCapture();
captureDevice.InitVideoCapture(0, FrameRate._30Hz, 
    Resolution._640x480, ImageFormat.R8G8B8_24, <span class="kwrd">false</span>);

scene.AddVideoCaptureDevice(captureDevice);

scene.ShowCameraImage = <span class="kwrd">true</span>;</pre>
<p></p>
<h4>Setup Optical Marker Tracking System</h4>
<p>We will use the ALVAR optical marker tracking library from VTT (<a href="http://virtual.vtt.fi/virtual/proj2/multimedia/alvar.html">http://virtual.vtt.fi/virtual/proj2/multimedia/alvar.html</a>). We initialize the tracker with the size of the image we'll
 be passing for the tracker to analyze, the camera calibration file generated by SampleCamCalib project that comes with ALVAR (you should perform calibration for each of your webcams in order to achieve optimal tracking performance), and the pixel size of the
 square marker (9.0 means that if you overlay a cube with size of 9x9x9 pixels, then the cube will overlay exactly on top of the marker square). Finally, we assign this tracking system to our scene.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">ALVARMarkerTracker tracker = <span class="kwrd">new</span> ALVARMarkerTracker();
tracker.MaxMarkerError = 0.02f;
tracker.InitTracker(captureDevice.Width, captureDevice.Height, <span class="str">&quot;calib.xml&quot;</span>, 9.0);
scene.MarkerTracker = tracker;</pre>
<p></p>
<h4>Create a MarkerNode To Track Gameboard</h4>
<p>Since we want to overlay the dominos on top of a game board with marker arrays printed on it, we need to create a MarkerNode that holds the information of the marker configuration we want to track. Then, any geometry attached to this node will be overlaid
 on top the game board. We create a MarkerNode by denoting which marker tracker will be used to track this marker, the marker configuration file, and a list of marker IDs in this marker configuration. Finally, we add this node to our scene's root node.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Create a marker node to track the ground plane</span>
<span class="kwrd">int</span>[] ids = <span class="kwrd">new</span> <span class="kwrd">int</span>[54];
<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; ids.Length; i&#43;&#43;)
    ids[i] = i;

markerNode = <span class="kwrd">new</span> MarkerNode(
scene.MarkerTracker, <span class="str">&quot;ARDominoALVAR.txt&quot;</span>, ids);

scene.RootNode.AddChild(markerNode);</pre>
<p></p>
<h3>Step 3. Create 3D Dominos and Balls</h3>
<p>Now, we are ready to add 3D objects on top of the game board.</p>
<h4>Create 3D Dominos</h4>
<p>We'll add textured mapped cubic geometries that represent dominos, and lay them out in a circle. We also need to assign appropriate physics properties to each domino so that they will behave correctly in the physics simulation. Finally, we add all dominos
 to the marker node that tracks the game board. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">dominoModel = <span class="kwrd">new</span> DominoBox(
    <span class="kwrd">new</span> Vector3(dominoSize.X, dominoSize.Z, dominoSize.Y),
    <span class="kwrd">new</span> Vector2(0.663f, 0.707f));

dominoModel.CastShadows = <span class="kwrd">true</span>;
dominoModel.ReceiveShadows = <span class="kwrd">true</span>;

<span class="kwrd">float</span> radius = 18;
<span class="kwrd">for</span> (<span class="kwrd">int</span> x = 0; x &lt; 360; x &#43;= 30)
{
    GeometryNode dominoNode = 
        <span class="kwrd">new</span> GeometryNode(<span class="str">&quot;Domino &quot;</span> &#43; dominos.Count);
    dominoNode.Model = dominoModel;

    dominoNode.Physics.Mass = 20;
    dominoNode.Physics.Shape = ShapeType.Box;
    dominoNode.Physics.MaterialName = <span class="str">&quot;Domino&quot;</span>;
    dominoNode.Physics.Pickable = <span class="kwrd">true</span>;
    dominoNode.AddToPhysicsEngine = <span class="kwrd">true</span>;

    Material dominoMaterial = <span class="kwrd">new</span> Material();
    dominoMaterial.Diffuse = Color.White.ToVector4();
    dominoMaterial.Specular = Color.White.ToVector4();
    dominoMaterial.SpecularPower = 10;
    dominoMaterial.Texture = cguiLogoTexture;

    dominoNode.Material = dominoMaterial;

    TransformNode dominoTransNode = <span class="kwrd">new</span> TransformNode();
    dominoTransNode.Translation = <span class="kwrd">new</span> Vector3(
        (<span class="kwrd">float</span>)(radius * Math.Cos(MathHelper.ToRadians(x))),
        radius * (<span class="kwrd">float</span>)(Math.Sin(MathHelper.ToRadians(x))), 
        dominoSize.Y / 2);
    dominoTransNode.Rotation = 
        Quaternion.CreateFromAxisAngle(Vector3.UnitZ, 
            MathHelper.ToRadians(x &#43; 90));

    markerNode.AddChild(dominoTransNode);

    dominoTransNode.AddChild(dominoNode);

    dominos.Add(dominoNode);
}</pre>
<h4>Create 3D Balls</h4>
<p>We will create a list of 3D balls and add them to the scene even before the player shoots the ball in order to have best performance. Since we don't want to show these balls yet, we'll add them outside of the view frustum. When the player shoots a ball,
 we'll simply pick a ball from this list and give it a new position and velocity. Since the code is quite similar to creating 3D dominos, we will omit the codes here (see CreateBalls() function from line 1459)</p>
<h3>Step 4. Setup Physics Simulation and Sound Effect</h3>
<p>It is very easy to setup the physics simulation using Goblin XNA as well as use a sound effect when two objects collide into each other. The physics properties set to the GeometryNode in the previous steps are used by the physics engine. There are many properties
 associated with GeometryNode.Physics, but there are only few properties that you really have to define to make the simulation work.
</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">dominoNode.Physics.Mass = 20;
dominoNode.Physics.Shape = ShapeType.Box;
dominoNode.Physics.MaterialName = <span class="str">&quot;Domino&quot;</span>;
dominoNode.Physics.Pickable = <span class="kwrd">true</span>;
dominoNode.AddToPhysicsEngine = <span class="kwrd">true</span>;</pre>
<p></p>
<p>Taking the domino geometry as an example, we need to define its mass, the shape primitive used in the physics simulation, the material name is necessary only if we're going to modify its physics material later on, which is the case for this game), and whether
 this geometry can be picked (we want to pick and manipulate the dominos in certain game modes, so we set this to true). Actually, we also need to set
<b>Collidable</b> and <b>Interactable</b> properties to true for the geometry to collide and have physical response when other geometry hits this geometry. However, the game mode starts with ‘Add' mode, which will be explained later, and we don't want the geometry
 to collide and react on the collision when we move the selected domino around on the game board using mouse. So we leave them as false when we create them, and then set those two properties to true once the game starts.</p>
<p>NOTE: Before going through this part, we strongly recommend that you go through Tutorial 5 and Tutorial 9, which come with the Goblin XNA distribution.</p>
<h4>Setup Physics Simulation</h4>
<p>Since Goblin XNA supports Newton dynamics library, we will use NewtonPhysics implementation for our physics simulation. The default simulation space defined by Newton library is 200x200x200 centered at the origin, and if any objects go outside of this bound,
 those objects won't be simulated for optimization purposes. Since our scene is larger than this default space size, we'll set it to 500x500x500 centered at the center. The default gravity is 9.8, but this is quite slow for a realistic simulation, so we'll
 increase the gravity to 30. We will also increase the maximum simulation sub-steps to 5 so that even if the frame rate gets below 60 FPS, the physics engine will simulate as many as 5 sub-steps to simulate at least 60 FPS.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">scene.PhysicsEngine = <span class="kwrd">new</span> NewtonPhysics();
<span class="rem">// Make the physics simulation space larger </span>
<span class="rem">// to 500x500x500 centered at the origin</span>
((NewtonPhysics)scene.PhysicsEngine).WorldSize =
    <span class="kwrd">new</span> BoundingBox(Vector3.One * -250, Vector3.One * 250);
<span class="rem">// Increase the gravity</span>
scene.PhysicsEngine.Gravity = 30.0f;

((NewtonPhysics)scene.PhysicsEngine).MaxSimulationSubSteps = 5;</pre>
<style type="text/css">
<!--
.csharpcode, .csharpcode 
	{font-size:small;
	color:black;
	font-family:consolas,"Courier New",courier,monospace;
	background-color:#ffffff}
.csharpcode 
	{margin:0em}
.csharpcode .rem
	{color:#008000}
.csharpcode .kwrd
	{color:#0000ff}
.csharpcode .str
	{color:#006080}
.csharpcode .op
	{color:#0000c0}
.csharpcode .preproc
	{color:#cc6633}
.csharpcode .asp
	{background-color:#ffff00}
.csharpcode .html
	{color:#800000}
.csharpcode .attr
	{color:#ff0000}
.csharpcode .alt
	{background-color:#f4f4f4;
	width:100%;
	margin:0em}
.csharpcode .lnum
	{color:#606060}
-->
</style>
<p></p>
<h4>Setup Physics Material and Sound Effect</h4>
<p>We will setup some material properties for each physics entity that define how each entity will behave when they collide. Each entity is defined by a material name (for example, “Domino” for domino geometries), and in the example code below, this material
 definition is applied between “Ground” and “Ball” entities. For detailed explanation of each material properties (e.g., elasticity, friction, etc), please see the user manual that comes with the Goblin XNA distribution. When we set the material properties
 between two physics entities, we can also define a callback function, which will be invoked when the two entities collide. For our game, we want to add a sound effect to indicate the collision. For better performance, we limit the number of concurrent sound
 effects, and we only play a sound effect if the contact speed between the two entities is greater than certain speed (e.g., in the code example below, it will only play sound effect if the contact speed is above 3 pixels/sec). We also change the volume of
 the sound effect based on its contact speed. </p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">NewtonMaterial physMat2 = <span class="kwrd">new</span> NewtonMaterial();
<span class="rem">// Gound to ball material interaction</span>
physMat2.MaterialName1 = <span class="str">&quot;Ground&quot;</span>;
physMat2.MaterialName2 = <span class="str">&quot;Ball&quot;</span>;
physMat2.Elasticity = 0.7f;
physMat2.ContactProcessCallback = <span class="kwrd">delegate</span>(Vector3 contactPosition, 
    Vector3 contactNormal, <span class="kwrd">float</span> contactSpeed, 
    <span class="kwrd">float</span> colObj1ContactTangentSpeed, <span class="kwrd">float</span> colObj2ContactTangentSpeed,
    Vector3 colObj1ContactTangentDirection, 
    Vector3 colObj2ContactTangentDirection)
{
    <span class="kwrd">if</span> (contactSpeed &gt; 3f)
    {
        <span class="kwrd">if</span> (soundsPlaying.Count &gt;= SOUND_LIMIT)
            <span class="kwrd">return</span>;

        <span class="kwrd">try</span>
        {
            Sound.SetVolume(<span class="str">&quot;Default&quot;</span>, contactSpeed * volume);
        }
        <span class="kwrd">catch</span> (Exception exp) { }
        <span class="kwrd">try</span>
        {
            Sound.Play(<span class="str">&quot;rubber_ball_01&quot;</span>);
            soundsPlaying.Add(DateTime.Now.TimeOfDay.TotalMilliseconds);
        }
        <span class="kwrd">catch</span> (Exception exp) { }
    }

};
((NewtonPhysics)scene.PhysicsEngine).AddPhysicsMaterial(physMat2);</pre>
<p>The above code only defines the material properties between “Ground” and “Ball” entities. In the actual game code, however, it defines the material properties for each pair of existing physics entities.
</p>
<h3>Step 5. Add User Interaction System</h3>
<p>Now, we have all of the components necessary to start playing the AR domino knock-down game except for a way of interacting with the game for the player. Ideally, we want to play the game using a touch-sensitive mobile device with an embedded camera, such
 as an iPhone or an Ultra-Mobile-PC. Due to platform restriction and the high cost of those devices, we will use a webcam with mouse and keyboard based interaction for this demo. But first, we will add several callback functions for mouse and keyboard events.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">MouseInput.Instance.MousePressEvent &#43;= 
    <span class="kwrd">new</span> HandleMousePress(MousePressHandler);
MouseInput.Instance.MouseDragEvent &#43;= <span class="kwrd">new</span> HandleMouseDrag(MouseDragHandler);
MouseInput.Instance.MouseReleaseEvent &#43;= 
    <span class="kwrd">new</span> HandleMouseRelease(MouseReleaseHandler);
MouseInput.Instance.MouseMoveEvent &#43;= <span class="kwrd">new</span> HandleMouseMove(MouseMoveHandler);

KeyboardInput.Instance.KeyPressEvent &#43;= <span class="kwrd">new</span> HandleKeyPress(KeyPressHandler);
KeyboardInput.Instance.KeyReleaseEvent &#43;= 
    <span class="kwrd">new</span> HandleKeyRelease(KeyReleaseHandler); </pre>
<p>For this game, we have implemented three different modes, “Add”, “Edit”, and “Play”.
</p>
<h4>Add Mode</h4>
<p>In “Add” mode, we want the players to be able to add dominoes anywhere on the game board by clicking the mouse and dragging the newly added domino around to finalize its position. We also want the players to be able to rotate the added domino along the normal
 vector of the game board by pressing “Left” and “Right” arrow keys. </p>
<p>NOTE: The following codes are in the MousePressHandler function.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">Vector3 nearSource = 
    <span class="kwrd">new</span> Vector3(mouseLocation.X, mouseLocation.Y, 0);
Vector3 farSource = 
    <span class="kwrd">new</span> Vector3(mouseLocation.X, mouseLocation.Y, 1);

Matrix viewMatrix = 
    markerNode.WorldTransformation * State.ViewMatrix;

Vector3 nearPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(
        nearSource, State.ProjectionMatrix, 
        viewMatrix, Matrix.Identity);
Vector3 farPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(farSource, 
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);
<span class="rem">// Cast a ray to the scene to pick a point on the ground where </span>
<span class="rem">// the domino will be added</span>
List&lt;PickedObject&gt; pickedObjects = 
    ((NewtonPhysics)scene.PhysicsEngine).PickRayCast(nearPoint, farPoint);

<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; pickedObjects.Count; i&#43;&#43;)
{
    <span class="kwrd">if</span> (((GeometryNode)pickedObjects[i].PickedPhysicsObject.Container).
        Name.Equals(<span class="str">&quot;Ground&quot;</span>))
    {
        Vector3 intersectPoint = nearPoint * (1 – 
            pickedObjects[i].IntersectParam) &#43;
            pickedObjects[i].IntersectParam * farPoint;

        dominoTransNode.Translation = intersectPoint &#43; Vector3.UnitZ * 
            dominoSize.Y / 2;
        <span class="kwrd">break</span>;
    }
}</pre>
<p>Before we add a domino, we need to figure out the 3D point on the gameboard that corresponds to the 2D mouse click point on the screen. To do this, we need to create a 3D ray originating from the 3D point on the near clipping plane to the 3D point on the
 far clipping plane, both of which correspond to the clicked 2D point on the screen. XNA's Viewport class supports the Unproject function that performs this 2D to 3D mapping, which requires the 3D plane to map to (in this case, it's the nearSource and farSource),
 the projection matrix, the view matrix, and the world matrix. The tricky part here is the concept of the computation of the view matrix. In Goblin XNA, to make things simple, we decided not to have the marker transformation affect the physics simulation by
 default, so even if the marker transformation changes, nothing changes in the physics simulation world. However, if we want to figure out the actual view matrix in the physics simulation world, we need to multiply the marker transformation with the current
 view matrix, which is the State.ViewMatrix. </p>
<p>Once we get the 3D ray, we simply pass it to Newton library to perform the picking and then it will return a list of intersecting objects. We then check to see if there is an intersecting geometry named “Ground,” which is the gameboard. If the game board
 is intersected, then we calculate the 3D intersection point on the game board and put the newly added domino in that intersection point. In the MouseDragHandler function, you will see similar areas of code that let the player drag the newly added domino around
 on the game board. </p>
<p>There are also codes that let the player rotate the new domino along the normal vector of the game board in KeyPressHandler and Update functions, but we will omit the explanation here since the codes are self-explanatory.</p>
<h4>Edit Mode</h4>
<p>In “Edit” mode, we want the players to be able to pick an existing domino on the gameboard and drag it around. We also want the players to be able to rotate the selected domino along the normal vector of the game board by pressing “Left” or “Right” arrow
 keys. </p>
<p>NOTE: The following codes are in the MousePressHandler function.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Cast a ray to the scene to select the closest </span>
<span class="rem">// object (to the eye location) that hits the ray</span>
List&lt;PickedObject&gt; pickedObjects =   
    ((NewtonPhysics)scene.PhysicsEngine).PickRayCast(nearPoint, farPoint);

<span class="rem">// If one or more objects intersect with our ray vector</span>
<span class="kwrd">if</span> (pickedObjects.Count &gt; 0)
{
    <span class="rem">// Sort the picked objects in ascending order of intersection parameter</span>
    <span class="rem">// (the closest to the eye is the first one in the sorted list)</span>
    pickedObjects.Sort();

    <span class="rem">// If the closest object is the ground, then don't do anything</span>
    <span class="kwrd">if</span> (((GeometryNode)pickedObjects[0].PickedPhysicsObject.Container).
        Name.Equals(<span class="str">&quot;Ground&quot;</span>))
        <span class="kwrd">return</span>;

    selectedDominos.Add(
        (GeometryNode)pickedObjects[0].PickedPhysicsObject.Container);
    
    GeometryNode domino = selectedDominos[0];
    Vector4 mod = domino.Material.Diffuse;
    domino.Material.Diffuse = 
        <span class="kwrd">new</span> Vector4(mod.X, mod.Y, mod.Z, 0.5f);
}</pre>
<p>The picking codes are the same as before, but now we want to pick an existing domino instead of the game board. Since there are multiple dominoes on the game board, it is possible that the picking ray intersects with more than one domino (and most likely
 the game board as well). Thus, we need to sort the intersected geometries based on their distances from the camera, and then we want to select the one closest to the camera. If the closest geometry is not the game board, then we add this domino to the list
 of selected dominoes and set its transparency to half-transparent to indicate the selection. Then, in the MouseDragHandler function, we will see similar codes with “Add” mode that let the player drag the selected domino around.</p>
<h4>Play Mode</h4>
<p>In “Play” mode, we want the players to be able to shoot balls from the clicked location. We allow the player to shoot either heavy or normal balls depending on whether the click was on the right or left mouse button.
</p>
<p>NOTE: The following code snippets are in the MouseReleaseHandler function since we allow the player to inject additional speed when pushing the camera forward while press-and-holding the mouse button, and then releasing the button (this interaction makes
 more sense when the game is played on an UMPC).</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="kwrd">bool</span> heavy = (button == MouseInput.RightButton);

<span class="kwrd">float</span> additionalSpeed = 0;

<span class="rem">// Add extra speed to the ball being shot if the camera point is moved from </span>
<span class="rem">// far point to closer point (to the ground)</span>
<span class="kwrd">float</span> ballReleaseDistance = 
    markerNode.WorldTransformation.Translation.Length();

<span class="kwrd">if</span> (ballReleaseDistance &lt; ballPressDistance)
    additionalSpeed = ballPressDistance - ballReleaseDistance;

Vector3 nearSource = 
    <span class="kwrd">new</span> Vector3(uiManager.CrossHairPoint.X, 
        uiManager.CrossHairPoint.Y, 0);
Vector3 farSource = 
    <span class="kwrd">new</span> Vector3(uiManager.CrossHairPoint.X, 
        uiManager.CrossHairPoint.Y, 1);

Matrix viewMatrix = markerNode.WorldTransformation * State.ViewMatrix;

Vector3 nearPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(nearSource,
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);
Vector3 farPoint = 
    graphics.GraphicsDevice.Viewport.Unproject(farSource,
        State.ProjectionMatrix, viewMatrix, Matrix.Identity);

ballCount&#43;&#43;;
uiManager.BallCount&#43;&#43;;
<span class="rem">// Create a ball and shoot it</span>
CreateBallCharactor(nearPoint, farPoint, additionalSpeed, heavy);</pre>
<p><b>C# <br>
</b></p>
<pre class="csharpcode">Vector3 linVel = far - near;
linVel.Normalize();

GeometryNode ballNode = (heavy) ? heavyBalls[curHeavyBall] : balls[curBall];
ballNode.Model.CastShadows = <span class="kwrd">true</span>;
ballNode.Model.ReceiveShadows = <span class="kwrd">true</span>;
Vector4 orig = ballNode.Material.Diffuse;
ballNode.Material.Diffuse = 
    <span class="kwrd">new</span> Vector4(orig.X, orig.Y, orig.Z, 1);

Vector3 v = near &#43; linVel * 10;

<span class="rem">// Forces the physics engine to 'transport' </span>
<span class="rem">// this ball to the location 'v' in the simulation world</span>
((NewtonPhysics)scene.PhysicsEngine).SetTransform(
    ballNode.Physics, Matrix.CreateTranslation(v));

<span class="rem">// Apply a linear velocity to this ball</span>
((NewtonPhysics)scene.PhysicsEngine).ApplyLinearVelocity(
    ballNode.Physics, linVel * (50f &#43; additionalSpeed));

<span class="kwrd">if</span> (heavy)
{
    curHeavyBall&#43;&#43;;
    <span class="rem">// Circles through if we run out of heavy balls</span>
    <span class="kwrd">if</span> (curHeavyBall &gt;= BALL_NUM / 2)
        curHeavyBall = 0;
}
<span class="kwrd">else</span>
{
    curBall&#43;&#43;;
    <span class="rem">// Circles through if we run out of normal balls</span>
    <span class="kwrd">if</span> (curBall &gt;= BALL_NUM / 2)
        curBall = 0;
}</pre>
<p></p>
<h3>Step 6. Add Heads-Up-Display (HUD)</h3>
<p>Finally, we add a HUD for displaying information such as elapsed game time, number of balls used, and a victory message when the game is over. We also add a cross hair to indicate the position of the mouse on the screen.</p>
<p>NOTE: The above codes are in the Draw function of UIManager class.</p>
<p><b>C# <br>
</b></p>
<pre class="csharpcode"><span class="rem">// Count the time elapsed in the play mode if game is not over yet</span>
<span class="kwrd">if</span> (gameState.CurrentGameMode == GameState.GameMode.Play &amp;&amp;  
    !gameState.GameOver)
{
    gameState.ElapsedSecond &#43;= gameTime.ElapsedRealTime.TotalSeconds;
    <span class="kwrd">if</span> (gameState.ElapsedSecond &gt;= 60)
    {
        gameState.ElapsedMinute&#43;&#43;;
        gameState.ElapsedSecond = 0;
    }
    <span class="rem">// Update the time elapsed label with the new elapsed time</span>
    modeStatusLabel = <span class="str">&quot;Play: &quot;</span> &#43; (<span class="kwrd">int</span>)gameState.ElapsedMinute &#43; <span class="str">&quot;:&quot;</span> &#43;  
        String.Format(<span class="str">&quot;{0:D2}&quot;</span>, (<span class="kwrd">int</span>)gameState.ElapsedSecond) &#43; <span class="str">&quot;  &quot;</span>;
}

<span class="rem">// Draws the cross hair mark to indicate the mouse position which is used for</span>
<span class="rem">// ball shooting, domino addition, domino edition, and GUI interaction (if </span>
<span class="rem">// GUI is shown)</span>
UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(crossHairPoint.X - 10, 
    crossHairPoint.Y, 23, 3), <span class="kwrd">null</span>, <span class="kwrd">new</span> Color(50, 205, 50, 150));
UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(crossHairPoint.X, crossHairPoint.Y -  
    10, 3, 23), <span class="kwrd">null</span>, <span class="kwrd">new</span> Color(50, 205, 50, 150));

UI2DRenderer.WriteText(Vector2.Zero, modeStatusLabel, 
    Color.White, labelFont,
    GoblinEnums.HorizontalAlignment.Right, 
    GoblinEnums.VerticalAlignment.Top);

<span class="rem">// Displays how many balls are used so far</span>
<span class="kwrd">if</span> (gameState.CurrentGameMode == GameState.GameMode.Play)
{
    UI2DRenderer.WriteText(Vector2.Zero, 
        <span class="str">&quot;Balls Used: &quot;</span> &#43; ballCount, Color.Red, 
        labelFont, GoblinEnums.HorizontalAlignment.Right,       
        GoblinEnums.VerticalAlignment.Bottom);
}

<span class="rem">// Shows the victory texts as well as play the victory sound if won</span>
<span class="kwrd">if</span> (gameState.GameOver)
{
    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 130), <span class="str">&quot;Victory!! You Won!!&quot;</span>, 
        Color.Red, victoryFont, GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 180), 
        <span class="str">&quot;Time: &quot;</span> &#43; (<span class="kwrd">int</span>)gameState.ElapsedMinute &#43; <span class="str">&quot;:&quot;</span> &#43; 
        String.Format(<span class="str">&quot;{0:D2}&quot;</span>, (<span class="kwrd">int</span>)gameState.ElapsedSecond), 
        Color.Red,victoryFont, 
        GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    UI2DRenderer.WriteText(<span class="kwrd">new</span> Vector2(0, 220), 
        <span class="str">&quot;Balls Used: &quot;</span> &#43; ballCount, Color.Red, 
        victoryFont, GoblinEnums.HorizontalAlignment.Center, 
        GoblinEnums.VerticalAlignment.None);

    Texture2D trophy = <span class="kwrd">null</span>;
    <span class="kwrd">if</span> (gameState.ElapsedMinute &lt; 1 &amp;&amp; 
        gameState.ElapsedSecond &lt;= 14)
        trophy = trophyGold;
    <span class="kwrd">else</span> <span class="kwrd">if</span> (gameState.ElapsedMinute &lt; 1 &amp;&amp; 
        gameState.ElapsedSecond &lt;= 25)
        trophy = trophySilver;
    <span class="kwrd">else</span>
        trophy = trophyBronze;

    UI2DRenderer.FillRectangle(<span class="kwrd">new</span> Rectangle(
        (State.Width - trophy.Width) / 2, 280, 
        trophy.Width, trophy.Height), 
        trophy, Color.White);
}</pre>
<h3>Conclusion</h3>
<p>This article demonstrated how to implement a simple yet interesting interactive AR game. Since this article is rather advanced, and most of the codes are specific to Goblin XNA framework, you will have a better understanding of the source codes if you go
 through some of the suggested tutorials first. If you have an UMPC (Ultra-Mobile-PC) with you, then you can also run the same code, and you can shoot the balls by tapping on the screen rather than using a mouse.
</p>
<p>If you want to try this out, download the source code via the link at the top of the article!</p>
<h3>About The Author</h3>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image004_5B4_5D.jpg"><img title="clip_image004[4]" border="0" hspace="12" alt="clip_image004[4]" align="right" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/10012840/clip_image004_5B4_5D_thumb.jpg" width="132" height="175"></a>Ohan
 Oda is a Ph.D student at Columbia University studying Computer Science. He specializes in designing systems and user interaction techniques for entertainment in Augmented Reality. He is the lead developer of Goblin XNA framework, and has worked on several
 Augmented Reality projects using this framework. Please contact <a href="mailto:ohan@cs.columbia.edu">
ohan@cs.columbia.edu</a> for any questions.</p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4c989aa298ab4222a2219e7600c952e8">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</comments>
      <itunes:summary>
This article provides step-by-step instructions about how to create a simple, yet interesting, augmented reality game called “domino knock-down game” using an open source framework called Goblin XNA.
 
Introduction
This is an advanced tutorial, and as such we expect that you are already familiar with XNA and scene graph based 3D programming. The game is a single player game in which the player shoots virtual balls into a real-world environment to knock down all of
 the virtual dominos overlaid on top of a board. The player holds a webcam in one hand and shoots the virtual ball by clicking a mouse using the other hand. Before the game starts, the player is allowed to add virtual dominos or modify the positions and orientations
 of the existing ones overlaid on the board as desired. 
 
How To Compile and Run The Game
After you download the Goblin XNA distribution from 
http://goblinxna.codeplex.com, as well as all other necessary libraries indicated in the installation guide, compile the Goblin XNA project under the /src directory. If you&#39;re not familiar with Goblin XNA framework, it is strongly recommended that you first
 go through the tutorials in the /tutorials directory. Then, find the ARDominos directory under /projects directory and open up the solution file in order to build and run the game. 
How To Play
Before you run the application, you need to print out the marker array. The marker array can be found in the DominoGroud.ppt file. The 1st slide is for the ARTag library, and the 2nd one is for the ALVAR library. The size of the PowerPoint
 slide is set to 25.6 x 17.52 inches, so if you want the entire marker array to fit in A4 size paper, you should choose &amp;quot;Scale to fit&amp;quot; option when you print. Once you have the print out, you&#39;re ready to run the game. 
The virtual dominos are overlaid around the center of the marker array (referred to as ‘game board&#39; from now on), so you need to aim your webcam around the center of the game board. If you move your</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</link>
      <pubDate>Thu, 13 May 2010 21:06:44 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10012840_100.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/10012840_220.jpg" height="165" width="220"></media:thumbnail>      
      <dc:creator>Ohan Oda</dc:creator>
      <itunes:author>Ohan Oda</itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/Augmented-Reality-Domino-Knock-Down-Game/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Gaming</category>
      <category>XNA</category>
      <category>XNA framework</category>
    </item>
  <item>
      <title>Augmented Reality Comes to Silverlight</title>
      <description><![CDATA[ <p>The <a shape="rect" href="http://en.wikipedia.org/wiki/ARToolKit" shape="rect">ARToolkit</a>, a library of tools for creating augmented reality applications, has just been ported to Silverlight. The <a shape="rect" href="http://slartoolkit.codeplex.com/" shape="rect">SLARToolkit</a>, as it’s called, is hosted over on Codeplex where it and its source code are available for download. Available features in the SLARToolkit include direct Support for Silverlight's <a shape="rect" href="http://msdn.microsoft.com/en-us/library/system.windows.media.capturesource%28VS.96%29.aspx" shape="rect">CaptureSource</a>, multiple marker detection, simple black square <a shape="rect" href="http://slartoolkit.codeplex.com/wikipage?title=markers&amp;referringTitle=Home" shape="rect">markers</a>, real-time performance and more. It also uses the <a shape="rect" href="http://matrix3dex.codeplex.com" shape="rect">Matrix3DEx</a> library. </p><p>While the above feature list may mean something to application developers, what it means for consumers is that we’ll soon start seeing augmented reality applications developed using the Silverlight platform. These apps will be able to take advantage of your computer’s webcam to launch “augmented reality” applications – that is, those that use technologies like computer vision and object recognition, for example.</p><p>There are already two sample apps available on Codeplex, one being a 3D game called <a shape="rect" href="http://balder.codeplex.com" shape="rect">Balder</a> and the <a shape="rect" href="http://dl.dropbox.com/u/2681028/CodeplexData/SLARToolkit/Samples/SLARToolKitSample/TestPage.html" shape="rect">other</a> a sample that uses Silverlight's 3D projection capabilities. To run these samples, you’ll need a webcam and at least the Silverlight 4 runtime. For more information on this toolkit, check out the <a shape="rect" href="http://slartoolkit.codeplex.com/documentation?referringTitle=Home" shape="rect">documentation</a>. </p><p><em>(via </em><a shape="rect" href="http://www.readwriteweb.com/archives/now_silverlight_does_augmented_reality_too.php" shape="rect"><em>ReadWriteWeb</em></a><em> and </em><a shape="rect" href="http://channel9.msdn.com/shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-MIX10-Tweevo-Silverlight-Augmented-Reality-testing/" shape="rect"><em>Channel 9</em></a><em>)</em></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b9b51d75062e4d94ac649e0e007813dc">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Augmented-Reality-Comes-to-Silverlight</comments>
      <itunes:summary> The ARToolkit, a library of tools for creating augmented reality applications, has just been ported to Silverlight. The SLARToolkit, as it’s called, is hosted over on Codeplex where it and its source code are available for download. Available features in the SLARToolkit include direct Support for Silverlight&#39;s CaptureSource, multiple marker detection, simple black square markers, real-time performance and more. It also uses the Matrix3DEx library.  While the above feature list may mean something to application developers, what it means for consumers is that we’ll soon start seeing augmented reality applications developed using the Silverlight platform. These apps will be able to take advantage of your computer’s webcam to launch “augmented reality” applications – that is, those that use technologies like computer vision and object recognition, for example. There are already two sample apps available on Codeplex, one being a 3D game called Balder and the other a sample that uses Silverlight&#39;s 3D projection capabilities. To run these samples, you’ll need a webcam and at least the Silverlight 4 runtime. For more information on this toolkit, check out the documentation.  (via ReadWriteWeb and Channel 9) </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Augmented-Reality-Comes-to-Silverlight</link>
      <pubDate>Mon, 01 Mar 2010 17:20:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Augmented-Reality-Comes-to-Silverlight</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_e0e2642b-4310-4a3e-a948-371d4ab66dc2.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_79ec1453-38ca-413f-bbf4-12fe725a758e.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Augmented-Reality-Comes-to-Silverlight/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Silverlight</category>
    </item>
  <item>
      <title>Navigate Photosynth with Gestures</title>
      <description><![CDATA[
<p>I just randomly came across <a shape="rect" href="http://www.youtube.com/watch?v=LX7KYeyRz4M" shape="rect">
this video on YouTube</a> which I thought was pretty impressive. A company called
<a shape="rect" href="www.ydreams.com/ydreams_" shape="rect">YDreams</a> has created a small hack to navigate
<a shape="rect" href="http://photosynth.net/" shape="rect">Microsoft Photosynths</a> using gestures. This is done using their device the YDreams SensorBar, which lets you use hand gestures to control your PC.
</p>
<p>I’m seeing this company everywhere lately, it seems. And they’re doing all kinds of cool stuff. Before happening upon the Photosynth video, I had also favorited a video of theirs on Vimeo. That one, called “<a shape="rect" href="http://vimeo.com/3623041" shape="rect">Playing
 in an Augmented World</a>,” was a demo of some “YDreamers” interacting with virtual elements in real physical setting. As it turns out, the apps they used in that video were developed in C# 3.0 / .NET 3.5.&nbsp;
</p>
<p>This is definitely a company to watch, I’m totally subscribed to <a shape="rect" href="http://www.youtube.com/user/ydreams" shape="rect">
their channel now</a>. </p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:2bc1fe9674e044b1b1d29dec0048ac5a">]]></description>
      <comments>http://channel9.msdn.com/Blogs/coolstuff/Navigate-Photosynth-with-Gestures</comments>
      <itunes:summary>
I just randomly came across 
this video on YouTube which I thought was pretty impressive. A company called
YDreams has created a small hack to navigate
Microsoft Photosynths using gestures. This is done using their device the YDreams SensorBar, which lets you use hand gestures to control your PC.
 
I’m seeing this company everywhere lately, it seems. And they’re doing all kinds of cool stuff. Before happening upon the Photosynth video, I had also favorited a video of theirs on Vimeo. That one, called “Playing
 in an Augmented World,” was a demo of some “YDreamers” interacting with virtual elements in real physical setting. As it turns out, the apps they used in that video were developed in C# 3.0 / .NET 3.5.&amp;nbsp;
 
This is definitely a company to watch, I’m totally subscribed to 
their channel now.  
</itunes:summary>
      <link>http://channel9.msdn.com/Blogs/coolstuff/Navigate-Photosynth-with-Gestures</link>
      <pubDate>Mon, 23 Mar 2009 14:11:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/coolstuff/Navigate-Photosynth-with-Gestures</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/on10_7189f2ab-3d2e-4139-83dd-dee342363be4.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/on10_9e24291c-5a07-44a5-a423-94f8ece3dcb9.jpg" height="64" width="85"></media:thumbnail>      
      <dc:creator>Sarah Perez</dc:creator>
      <itunes:author>Sarah Perez</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/coolstuff/Navigate-Photosynth-with-Gestures/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>PhotoSynth</category>
    </item>
  <item>
      <title>SC08: Windows HPC: Augmented Reality (Part 1 of 2)</title>
      <description><![CDATA[
<div class="watch-video-desc description">SC08: HLRS researchers discuss and demo cool visualization, virtual and augmented reality environments.
</div>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ee492c1b697b4cf3813d9dea00c3a97b">]]></description>
      <comments>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-1-of-2</comments>
      <itunes:summary>
SC08: HLRS researchers discuss and demo cool visualization, virtual and augmented reality environments.

</itunes:summary>
      <itunes:duration>427</itunes:duration>
      <link>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-1-of-2</link>
      <pubDate>Mon, 16 Mar 2009 17:22:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-1-of-2</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/3815e95d-c6ca-407d-8d13-f53c7327bded.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/459448_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/459448_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/1f2e4e28-773b-47b6-a0b7-f3c106802cb0.jpg" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/HPC/Augmented_Reality_p1of2.wmv" expression="full" duration="427" fileSize="20803175" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <dc:creator>Wenming Ye</dc:creator>
      <itunes:author>Wenming Ye</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-1-of-2/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>HLRS</category>
      <category>HPC</category>
      <category>Stuttgart</category>
      <category>virual</category>
      <category>Visualization</category>
      <category>Windows</category>
    </item>
  <item>
      <title>SC08: Windows HPC: Augmented Reality (Part 2 of 2)</title>
      <description><![CDATA[SC08: HLRS researchers discuss and demo cool visualization, virtual and augmented reality environments.
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:5dffd3469faf4b30a81b9dea00c3a73e">]]></description>
      <comments>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-2-of-2</comments>
      <itunes:summary>SC08: HLRS researchers discuss and demo cool visualization, virtual and augmented reality environments.
</itunes:summary>
      <itunes:duration>367</itunes:duration>
      <link>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-2-of-2</link>
      <pubDate>Mon, 16 Mar 2009 17:21:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-2-of-2</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/371d174a-2f2d-40db-891d-05bb0d919403.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/459449_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/459449_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/1c033320-31ad-41bb-95f0-57d44d1a1506.jpg" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/HPC/Augmented_Reality_p2of2.wmv" expression="full" duration="367" fileSize="17766015" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <dc:creator>Wenming Ye</dc:creator>
      <itunes:author>Wenming Ye</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/The+HPC+Show/SC08-Windows-HPC-Augmented-Reality-Part-2-of-2/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>HLRS</category>
      <category>HPC</category>
      <category>Stuttgart</category>
      <category>virual</category>
      <category>Visualization</category>
      <category>Windows</category>
    </item>
  <item>
      <title>TechFest:Core Tools For Augmented Reality</title>
      <description><![CDATA[This demo will explain the development of a new kind of image feature that can be used within a variety of applications, ranging from image stitching to augmented reality. The features are already finding their way into Microsoft products and are being considered for many new applications. The demo shows a fun example application: A treasure hunt! By using the posters and other graphics on display during TechFest,&nbsp;the users then borrow a device that augments the workd wih virtual clues to find the hidden treasure.  <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/augmented+reality/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b46557a16ec3446c96579e0f0080466f">]]></description>
      <comments>http://channel9.msdn.com/Blogs/LauraFoy/TechFestCore-Tools-For-Augmented-Reality</comments>
      <itunes:summary>This demo will explain the development of a new kind of image feature that can be used within a variety of applications, ranging from image stitching to augmented reality. The features are already finding their way into Microsoft products and are being considered for many new applications. The demo shows a fun example application: A treasure hunt! By using the posters and other graphics on display during TechFest,&amp;nbsp;the users then borrow a device that augments the workd wih virtual clues to find the hidden treasure. </itunes:summary>
      <link>http://channel9.msdn.com/Blogs/LauraFoy/TechFestCore-Tools-For-Augmented-Reality</link>
      <pubDate>Thu, 26 Feb 2009 15:58:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/LauraFoy/TechFestCore-Tools-For-Augmented-Reality</guid>
      <media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_large_on10.png" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_small_on10.png" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_2MB_on10.wmv" expression="full" fileSize="68854955" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_on10.mp3" expression="full" fileSize="1779171" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_on10.mp4" expression="full" fileSize="21932344" type="video/mp4" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_on10.wma" expression="full" fileSize="3603779" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_on10.wmv" expression="full" fileSize="13526773" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_Zune_on10.wmv" expression="full" fileSize="17670753" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="mms://mschnlnine.wmod.llnwd.net/a1809/d1/on10/8/0/2/5/2/CoreTools_s_on10.wmv" expression="full" fileSize="198" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://mschnlnine.vo.llnwd.net/d1/on10/8/0/2/5/2/CoreTools_on10.wmv" length="13526773" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Laura Foy</dc:creator>
      <itunes:author>Laura Foy</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/LauraFoy/TechFestCore-Tools-For-Augmented-Reality/RSS</wfw:commentRss>
      <category>Augmented  Reality</category>
      <category>Microsoft Research</category>
      <category>techfest 2009</category>
      <category>hidden treasure</category>
      <category>image stitching</category>
    </item>    
</channel>
</rss>