<?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 Coding4Fun</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/coding4fun/RSS"/>
    <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 Coding4Fun</title>
      <link>http://channel9.msdn.com/Tags/coding4fun</link>
    </image>
    <itunes:image href=""/>
    <itunes:category text="Technology"/>
    <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/coding4fun</link>
    <language>en</language>
    <pubDate>Sun, 12 Feb 2012 21:59:13 GMT</pubDate>
    <lastBuildDate>Sun, 12 Feb 2012 21:59:13 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>75</c9:totalResults>
    <c9:pageCount>3</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Building your own Racing Simulator Dashboard with some Arduino and VB.Net</title>
      <description><![CDATA[<p>Today's Hardware Friday post is kind of thing that many gamers lust for, a hardware extension for their simulator of choice, be it as complicated as a airplane cockpit in their garage or something a little more approachable like a DIY hardware dashboard for your racing simulator.</p><h2><a href="http://fergotech.net/diy-dashboard/" target="_blank">DIY Dashboard</a></h2><blockquote><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/HZp3mMatO1w&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/HZp3mMatO1w&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><a href="http://fergotech.net/diy-dashboard/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B24%5D-4.png" alt="image" width="545" height="407" border="0"></a></p><p>The dashboard I’m posting here have the following features:</p><ul><li>RPM lights </li><li>Gear indicator </li><li>Pit limiter, rev limiter and low fuel indicators </li><li>5 general purpose switches and buttons </li><li>1 rotary encoder for dialing </li></ul><p>I bought all the components that I needed (with the exception of the Arduino itself) in a regular electronic component shop. You can see the parts list below and it’s also included in the RAR file at the end of the post. The total cost of this project was about U$ 27,00 excluding the Arduino (43,00 brazilian reais) and was really fun to do it. For it to work, I had to assemble everything into a perfboard, code the Arduino firmare to receive the data from the computer and light up the whole thing and also code the server software that grabs the data from the iRacing API and send it through a USB serial connection to the Arduino.</p><p>...</p><p>In the pictures below you can take a look on how it looks like inside the dashboard. I don’t have much electronics and soldering experience so it turned out not that beautiful, but hey, it works! You can also see the schematics for all the electronic components.</p><p><a href="http://fergotech.net/diy-dashboard/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B25%5D-5.png" alt="image" width="545" height="407" border="0"></a></p><p>...</p><p>I’m releasing all the schematics, parts list, source code and firmware for this project. In the RAR is included:</p><ul><li>VB.NET source code for interfacing with iRacing API, Arduino serial port and PPJoy DLL </li><li>iWrapClient.dll and PPJoyDLL.dll (I coded it too, but I’m releasing only the DLL) </li><li>Arduino source code ready for upload to the board </li><li>Schematics </li><li>Parts list </li></ul></blockquote><p>You've got to love the Windows 95 cup. I've got one of those somewhere I think...lol</p><p>Anyway...</p><p>As he promised the rar includes the schematic, parts list and the code;</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B26%5D-3.png" alt="image" width="260" height="191" border="0"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B27%5D-2.png" alt="image" width="260" height="158" border="0"></p><p><img title="SNAGHTML23753f" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML23753f%5B4%5D.png" alt="SNAGHTML23753f" width="650" height="351" border="0"></p><p>If you've wondered what it would be like to add a &quot;real world&quot; interface to a game this might be a good weekend project for you...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:70ea424c622642739f939fed014c7042">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Building-your-own-Racing-Simulator-Dashboard-with-some-Arduino-and-VBNet</comments>
      <itunes:summary>Today&#39;s Hardware Friday post is kind of thing that many gamers lust for, a hardware extension for their simulator of choice, be it as complicated as a airplane cockpit in their garage or something a little more approachable like a DIY hardware dashboard for your racing simulator.DIY DashboardThe dashboard I’m posting here have the following features:RPM lights Gear indicator Pit limiter, rev limiter and low fuel indicators 5 general purpose switches and buttons 1 rotary encoder for dialing I bought all the components that I needed (with the exception of the Arduino itself) in a regular electronic component shop. You can see the parts list below and it’s also included in the RAR file at the end of the post. The total cost of this project was about U$ 27,00 excluding the Arduino (43,00 brazilian reais) and was really fun to do it. For it to work, I had to assemble everything into a perfboard, code the Arduino firmare to receive the data from the computer and light up the whole thing and also code the server software that grabs the data from the iRacing API and send it through a USB serial connection to the Arduino....In the pictures below you can take a look on how it looks like inside the dashboard. I don’t have much electronics and soldering experience so it turned out not that beautiful, but hey, it works! You can also see the schematics for all the electronic components....I’m releasing all the schematics, parts list, source code and firmware for this project. In the RAR is included:VB.NET source code for interfacing with iRacing API, Arduino serial port and PPJoy DLL iWrapClient.dll and PPJoyDLL.dll (I coded it too, but I’m releasing only the DLL) Arduino source code ready for upload to the board Schematics Parts list You&#39;ve got to love the Windows 95 cup. I&#39;ve got one of those somewhere I think...lolAnyway...As he promised the rar includes the schematic, parts list and the code;If you&#39;ve wondered what it would be like to add a &amp;quot;real world&amp;quot; interface to</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Building-your-own-Racing-Simulator-Dashboard-with-some-Arduino-and-VBNet</link>
      <pubDate>Fri, 10 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Building-your-own-Racing-Simulator-Dashboard-with-some-Arduino-and-VBNet</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/e6dd4b3f-5ef7-4767-8abb-76f76af7aef0.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/bc2fc367-243b-48ad-a70a-796f751a3e42.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Building-your-own-Racing-Simulator-Dashboard-with-some-Arduino-and-VBNet/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Visual Basic</category>
    </item>
  <item>
      <title>Coding4Fun Kinect Toolkit v1.5 for v1</title>
      <description><![CDATA[<p>Last but not least is one of those must have toolkits, one of those hard learned repositories of BST (blood, sweat and tears)...</p><h2>Coding4Fun Kinect Toolkit</h2><blockquote><h4>Updated for Kinect for Windows SDK v1.0!</h4><p>This project requires the <a href="http://kinectforwindows.org/">Kinect for Windows SDK</a>. If you want to learn how to use the <a href="http://kinectforwindows.org/">Kinect for Windows SDK</a>, head over to the <a href="http://channel9.msdn.com/">Channel 9</a> and their quick start series. This toolkit contains both a WinForm and WPF version.</p><h5><strong>WPF:</strong></h5><p><strong>Depth Data Extension Methods:</strong></p><ul><li>ImageFrame.ToBitmapSource() <ul><li>returns BitmapSource </li></ul></li><li>int[].ToBitmapSource() <ul><li>returns BitmapSource </li></ul></li><li>int[].ToBitmapSource(int width, int height, int minimumDistance, Color highlightColor) <ul><li>returns BitmapSource </li></ul></li><li>ImageFrame.ToDepthArray() <ul><li>returns int[] </li></ul></li><li>int[].GetMidpoint(int startX, int startY, int endX, int endY, int minimumDistance) <ul><li>returns Point </li></ul></li><li>BitmapSource.Save(string fileName, ImageFormat format) <ul><li>returns nothing </li></ul></li></ul><p><strong>Skeleton Data Extension Methods:</strong></p><ul><li>Joint.ScaleTo(int width, int height) <ul><li>Scales a Joint's Position to the maximum width and height specified </li></ul></li><li>Joint.ScaleTo(int width, int height, float maxSkeletonX, float maxSkeletonY) <ul><li>Scales a Joint's Position to the maximum width and height specified </li></ul></li></ul><p><strong>Controls:</strong></p><ul><li>Hover Button </li></ul><h5><strong>WinForm:</strong></h5><p><strong>Depth Data Extension Methods:</strong></p><ul><li>ImageFrame.ToBitmap() <ul><li>returns Bitmap </li></ul></li><li>int[].ToBitmap() <ul><li>returns Bitmap </li></ul></li><li>int[].ToBitmap(int width, int height, int minimumDistance, Color highlightColor) <ul><li>returns Bitmap </li></ul></li><li>ImageFrame.ToDepthArray() <ul><li>returns int[] </li></ul></li><li>int[].GetMidpoint(int startX, int startY, int endX, int endY, int minimumDistance) <ul><li>returns Point </li></ul></li><li>Bitmap.Save(string fileName, ImageFormat format) <ul><li>returns nothing </li></ul></li></ul><p><strong>Skeleton Data Extension Methods:</strong></p><ul><li>Joint.ScaleTo(int width, int height) <ul><li>Scales a Joint's Position to the maximum width and height specified </li></ul></li><li>Joint.ScaleTo(int width, int height, float maxSkeletonX, float maxSkeletonY) <ul><li>Scales a Joint's Position to the maximum width and height specified </li></ul></li></ul></blockquote><p><strong>Project Information URL:</strong> <a title="http://c4fkinect.codeplex.com/" href="http://c4fkinect.codeplex.com/">http://c4fkinect.codeplex.com/</a></p><p><strong>Project Download URL:</strong> <a title="http://c4fkinect.codeplex.com/releases/view/81523" href="http://c4fkinect.codeplex.com/releases/view/81523">http://c4fkinect.codeplex.com/releases/view/81523</a></p><p><strong>Project Source URL:</strong> <a title="http://c4fkinect.codeplex.com/SourceControl/list/changesets" href="http://c4fkinect.codeplex.com/SourceControl/list/changesets">http://c4fkinect.codeplex.com/SourceControl/list/changesets</a></p><p>Runs with v1? Yes</p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B2%5D-84.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb-79.png" alt="image" width="480" height="384" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B5%5D-56.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B1%5D-61.png" alt="image" width="377" height="339" border="0"></a></p><p><pre class="brush: csharp">void sensor_ColorFrameReady(AllFramesReadyEventArgs e)
{
    using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
    {
        if (colorFrame == null)
        {
            return; 
        }

        //set image
        ColorImage.Source = colorFrame.ToBitmapSource();

        if (_saveColorFrame)
        {
            //save image

            colorFrame.ToBitmapSource().Save(DateTime.Now.ToString(&quot;yyyyMMddHHmmss&quot;) &#43; &quot;_color.jpg&quot;, ImageFormat.Jpeg);
        }
    }            
}

void sensor_DepthFrameReady(AllFramesReadyEventArgs e)
{
    using (DepthImageFrame depthFrame = e.OpenDepthImageFrame())
    {
        if (depthFrame == null)
        {
            return; 
        }

        //turn raw data into an array of distances; 
        var depthArray = depthFrame.ToDepthArray();

        MidPointDistanceViaGetDistanceText.Text = depthFrame.GetDistance(depthFrame.Width/2, depthFrame.Height/2).ToString();

        //image
        DepthImageWithMinDistance.Source = depthArray.ToBitmapSource(depthFrame.Width, depthFrame.Height,
                                                                    _minDistance, Colors.Red);

        //image
        DepthImage.Source = depthFrame.ToBitmapSource();

        if (_saveDepthFrame)
        {
            _saveDepthFrame = false;
            depthFrame.ToBitmapSource().Save(DateTime.Now.ToString(&quot;yyyyMMddHHmmss&quot;) &#43; &quot;_depth.jpg&quot;, ImageFormat.Jpeg);
        }
    }
}
</pre></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ee72a2820a23405781f69fee0013de45">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Coding4Fun-Kinect-Toolkit-v15-for-v1</comments>
      <itunes:summary>Last but not least is one of those must have toolkits, one of those hard learned repositories of BST (blood, sweat and tears)...Coding4Fun Kinect ToolkitUpdated for Kinect for Windows SDK v1.0!This project requires the Kinect for Windows SDK. If you want to learn how to use the Kinect for Windows SDK, head over to the Channel 9 and their quick start series. This toolkit contains both a WinForm and WPF version.WPF:Depth Data Extension Methods:ImageFrame.ToBitmapSource() returns BitmapSource int[].ToBitmapSource() returns BitmapSource int[].ToBitmapSource(int width, int height, int minimumDistance, Color highlightColor) returns BitmapSource ImageFrame.ToDepthArray() returns int[] int[].GetMidpoint(int startX, int startY, int endX, int endY, int minimumDistance) returns Point BitmapSource.Save(string fileName, ImageFormat format) returns nothing Skeleton Data Extension Methods:Joint.ScaleTo(int width, int height) Scales a Joint&#39;s Position to the maximum width and height specified Joint.ScaleTo(int width, int height, float maxSkeletonX, float maxSkeletonY) Scales a Joint&#39;s Position to the maximum width and height specified Controls:Hover Button WinForm:Depth Data Extension Methods:ImageFrame.ToBitmap() returns Bitmap int[].ToBitmap() returns Bitmap int[].ToBitmap(int width, int height, int minimumDistance, Color highlightColor) returns Bitmap ImageFrame.ToDepthArray() returns int[] int[].GetMidpoint(int startX, int startY, int endX, int endY, int minimumDistance) returns Point Bitmap.Save(string fileName, ImageFormat format) returns nothing Skeleton Data Extension Methods:Joint.ScaleTo(int width, int height) Scales a Joint&#39;s Position to the maximum width and height specified Joint.ScaleTo(int width, int height, float maxSkeletonX, float maxSkeletonY) Scales a Joint&#39;s Position to the maximum width and height specified Project Information URL: http://c4fkinect.codeplex.com/Project Download URL: http://c4fkinect.codeplex.com/releases/view/81523Project Source URL: http://c4</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Coding4Fun-Kinect-Toolkit-v15-for-v1</link>
      <pubDate>Fri, 10 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Coding4Fun-Kinect-Toolkit-v15-for-v1</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/b0962949-600a-4b57-8a46-1894b1b487a4.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/bc3ec02f-23c4-440b-8349-c56cdb379db7.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Coding4Fun-Kinect-Toolkit-v15-for-v1/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Connecting to the Kinect remotely with the Kinect Service</title>
      <description><![CDATA[<p>So this week we've learned about the Kinect and how to develop with it, we've read about the updated APIs and even some deployment tips.</p><p>Today, let's look at a new Coding4Fun Kinect project and one that could open up some very interesting ways to build awesome apps.</p><p>Image the Kinect (and PC) in one room and your app in another (room, building, state, country). Say something that can run on the machine that has the Kinect connected to it but send the camera, depth, skeleton and audio to an app running on another computer or device, like a Windows Phone 7...</p><p>You don't need to imagine, because there's the...</p><h2>Coding4Fun Kinect Service</h2><blockquote><p>The <strong>Coding4Fun Kinect Service</strong> allows you to stream Kinect color, depth, skeleton, and audio from one PC to another PC or a Windows Phone via sockets. Both server and client libraries are available to send and receive the data. Please review the included WPF and Windows Phone samples for a quick explanation of how to use the libraries. Also check out the <a href="http://kinectservice.codeplex.com/documentation">Documentation tab</a> for more information and sample usage.</p><p>This project requires the <a href="http://www.kinectforwindows.com/">Kinect for Windows SDK</a> v1.0. If you want to learn how to use the <a href="http://www.kinectforwindows.com/">Kinect for Windows SDK</a>, head over to the <a href="http://channel9.msdn.com/">Channel 9</a> and view the Quickstart series.</p><p>...</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://kinectservice.codeplex.com/" href="http://kinectservice.codeplex.com/">http://kinectservice.codeplex.com/</a></p><p><strong>Project Download URL:</strong> <a title="http://kinectservice.codeplex.com/releases/view/81291" href="http://kinectservice.codeplex.com/releases/view/81291">http://kinectservice.codeplex.com/releases/view/81291</a></p><p><strong>Project Source URL:</strong> <a title="http://kinectservice.codeplex.com/SourceControl/list/changesets" href="http://kinectservice.codeplex.com/SourceControl/list/changesets">http://kinectservice.codeplex.com/SourceControl/list/changesets</a></p><p>Runs with v1? Yes</p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B2%5D-83.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb-78.png" alt="image" width="186" height="384" border="0"></a></p><p>Here's the C# Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B11%5D-18.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B3%5D-21.png" alt="image" width="405" height="230" border="0"></a></p><p>And the VB (yes, there's a full VB.Net version) Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B5%5D-55.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B1%5D-60.png" alt="image" width="409" height="226" border="0"></a></p><p>Here's a snip of code from the C# Phone Sample;</p><p><pre class="brush: csharp">void client_ColorFrameReady(object sender, ColorFrameReadyEventArgs e)
{
    if(e.ColorFrame.BitmapImage != null)
        this.Color.Source = e.ColorFrame.BitmapImage;
}

void client_DepthFrameReady(object sender, DepthFrameReadyEventArgs e)
{
    if(_outputBitmap == null)
    {
        this._outputBitmap = new WriteableBitmap(
            e.DepthFrame.ImageFrame.Width, 
            e.DepthFrame.ImageFrame.Height);

        this.Depth.Source = this._outputBitmap;
    }

    byte[] convertedDepthBits = this.ConvertDepthFrame(e.DepthFrame.DepthData, e);

    Buffer.BlockCopy(convertedDepthBits, 0, _outputBitmap.Pixels, 0, convertedDepthBits.Length);
    _outputBitmap.Invalidate();
}

void client_AudioFrameReady(object sender, AudioFrameReadyEventArgs e)
{
    _kinectSound.SubmitBuffer(e.AudioFrame.AudioData);

    if(_kinectSound.State != SoundState.Playing)
        _kinectSound.Play();
}

private void client_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    Skeleton skeleton = (from s in e.SkeletonFrame.Skeletons
                             where s.TrackingState == SkeletonTrackingState.Tracked
                             select s).FirstOrDefault();

    if(skeleton == null)
        return;

    SetEllipsePosition(headEllipse, skeleton.Joints[(int)JointType.Head]);
    SetEllipsePosition(leftEllipse, skeleton.Joints[(int)JointType.HandLeft]);
    SetEllipsePosition(rightEllipse, skeleton.Joints[(int)JointType.HandRight]);
}

</pre></p><p>Contact Information:</p><ul><li>Blog: <a title="http://www.brianpeek.com/" href="http://www.brianpeek.com/">http://www.brianpeek.com/</a> </li><li>Twitter: <a href="https://twitter.com/#!/BrianPeek" target="_blank">@BrianPeek</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:3df5c84359fa43e3a8b19fee000e7bff">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Connecting-to-the-Kinect-remotely-with-the-Kinect-Service</comments>
      <itunes:summary>So this week we&#39;ve learned about the Kinect and how to develop with it, we&#39;ve read about the updated APIs and even some deployment tips.Today, let&#39;s look at a new Coding4Fun Kinect project and one that could open up some very interesting ways to build awesome apps.Image the Kinect (and PC) in one room and your app in another (room, building, state, country). Say something that can run on the machine that has the Kinect connected to it but send the camera, depth, skeleton and audio to an app running on another computer or device, like a Windows Phone 7...You don&#39;t need to imagine, because there&#39;s the...Coding4Fun Kinect ServiceThe Coding4Fun Kinect Service allows you to stream Kinect color, depth, skeleton, and audio from one PC to another PC or a Windows Phone via sockets. Both server and client libraries are available to send and receive the data. Please review the included WPF and Windows Phone samples for a quick explanation of how to use the libraries. Also check out the Documentation tab for more information and sample usage.This project requires the Kinect for Windows SDK v1.0. If you want to learn how to use the Kinect for Windows SDK, head over to the Channel 9 and view the Quickstart series....Project Information URL: http://kinectservice.codeplex.com/Project Download URL: http://kinectservice.codeplex.com/releases/view/81291Project Source URL: http://kinectservice.codeplex.com/SourceControl/list/changesetsRuns with v1? YesHere&#39;s the C# Solution;And the VB (yes, there&#39;s a full VB.Net version) Solution;Here&#39;s a snip of code from the C# Phone Sample;void client_ColorFrameReady(object sender, ColorFrameReadyEventArgs e)
{
    if(e.ColorFrame.BitmapImage != null)
        this.Color.Source = e.ColorFrame.BitmapImage;
}

void client_DepthFrameReady(object sender, DepthFrameReadyEventArgs e)
{
    if(_outputBitmap == null)
    {
        this._outputBitmap = new WriteableBitmap(
            e.DepthFrame.ImageFrame.Width, 
            e.DepthFrame.ImageF</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Connecting-to-the-Kinect-remotely-with-the-Kinect-Service</link>
      <pubDate>Thu, 09 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Connecting-to-the-Kinect-remotely-with-the-Kinect-Service</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/d63e5eb9-f3c5-442a-bda7-a0f4f8b6cb00.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/4b412ca4-090f-46bc-9f9c-3ddb5bcddac2.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Connecting-to-the-Kinect-remotely-with-the-Kinect-Service/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Large Scale Terrain Rendering</title>
      <description><![CDATA[<p>Today's project is hard to apply a &quot;W&quot; name to, maybe we'll just call this &quot;Wow Wednesday&quot; and leave it at that, because once I got this project running, &quot;Wow, that's kind of cool&quot; was my first thought... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' /></p><h2><a href="http://www.codeproject.com/Articles/319399/Terrain-Rendering" target="_blank">Terrain Rendering</a></h2><blockquote><p>Terrain Rendering is a game technology code sample that demonstrates how to render large-scale terrains in real time by efficiently distributing the tasks between the CPU and the GPU. This article provides an overview of the terrain-rendering application and includes a link to the free code.</p><p><a href="http://bcove.me/mz986zms" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B3%5D-35.png" alt="image" width="480" height="270" border="0"></a></p><h4>Introduction</h4><p>This sample demonstrates how to render large-scale terrains on Intel® microarchitecture codename Sandy Bridge in real time by efficiently distributing the tasks between the CPU cores and the processor graphics unit. The sample pre-processes an input height map into a hierarchical quadtree representation which is used to render the terrain with adaptively selected level of detail (LOD). The adaptive simplified triangulation calculated during the pre-processing is compactly encoded to save runtime processing and memory space. LOD construction is asynchronously performed by the CPU cores while rendering is done by the processor graphics unit.</p><h4>Application</h4><p>Terrain Rendering is an application using DXUT and Microsoft DirectX* 11 with D3D_FEATURE_LEVEL_10_0. The application handles all rendering, user interaction and GUI. Upon initialization, the application loads all models, allocates resources and compiles shaders. On the first run, the application pre-calculates triangulation, which can take some time (up to one minute), and stores it on the disk. On subsequent runs, the application loads the data from the disk.</p><h4>Overview</h4><p>Terrain rendering demonstrates how to render large-scale terrains on Intel microarchitecture codename Sandy Bridge in real time by efficiently distributing the tasks between the CPU cores and the processor graphics unit. The terrain rendering can be optimized by constructing simplified triangulation, which is adaptive to the terrain surface characteristics. Such triangulation contains more primitives in sharp regions with high-frequency details and allocates a small number of large triangles for flat areas. This significantly reduces the total triangle count while providing almost the same visual quality (compare fig. 1 and 2).</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B6%5D-28.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-41.png" alt="image" width="532" height="407" border="0"></a></p><p>Full-resolution triangulation (fig. 1) is more than 5x redundant compared to adaptive (fig. 2), which results in nearly 3x lower performance with almost the same visual quality.</p><p>Pre-computing adaptive triangulation is a complex and computation-intensive task. Doing this at runtime could require a significant amount of time and would lead to perceptible stalls or delays. To solve this problem, the application pre-computes adaptive triangulation for the whole terrain at the pre-process stage and stores the resulting data on the disk in a compact representation (see section 4). For example, the whole encoded triangulation for an 8192×8192 terrain consumes approximately 6 MB (compare this to 128 MB required to store the height map). At the runtime stage, this data is used to efficiently construct the triangulation.</p><p>...</p></blockquote><h2><a href="http://software.intel.com/en-us/articles/vcsource-samples-snb-terrain/?cid=sw:graphics341" target="_blank">SNB Terrain</a></h2><blockquote><p>This sample demonstrates how to render large-scale terrains on Intel® microarchitecture code name Sandy Bridge in real time by efficiently distributing the tasks between the CPU cores and the processor graphics unit. The input height map is preprocessed into a hierarchical quad tree representation which is used to render the terrain with adaptively selected level of detail (LOD). The adaptive simplified triangulation is compactly encoded to save runtime processing and memory space. LOD construction is asynchronously performed by the CPU cores while rendering is done by the processor graphics unit, which provides stable frame rate.</p><h4>System Requirements</h4><h6>Hardware:</h6><ul><li>CPU: Intel® Advanced Vector Extensions (Intel® AVX)-enabled x86 (Intel® microarchictecture code name Sandy Bridge or better suggested) </li><li>GFX: uses Microsoft DirectX* 11 graphics API on Microsoft DirectX* 10 (or better) hardware </li><li>OS: Microsoft Windows* 7 SP1 (for Intel AVX support) </li><li>MEM: 2 GB of RAM or better </li></ul><h6>Software:</h6><strong>Toolkits Supported:</strong> <ul><li>Microsoft DirectX* SDK (June 2010 release or later) </li><li>Microsoft Windows* SDK May 2010 </li></ul><strong>Compilers Supported:</strong> <ul><li>Microsoft Visual Studio* 2010 (Intel AVX support required) or <a href="http://software.intel.com/en-us/articles/c-compilers/">Intel® C&#43;&#43; Compiler version 11</a> </li></ul><strong>Libraries Required:</strong> <ul><li>Microsoft* C Run-Time Libraries (CRT) 2008/2010 </li></ul></blockquote><p>Getting this to compile and run on my notebook wasn't hard, once I got the <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=6812" target="_blank">DirectX SDK</a> installed. Here's some snaps of it running on my notebook;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf5965%5B3%5D.png" target="_blank"><img title="SNAGHTMLf5965" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf5965_thumb.png" alt="SNAGHTMLf5965" width="650" height="370" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf7177%5B3%5D.png" target="_blank"><img title="SNAGHTMLf7177" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf7177_thumb.png" alt="SNAGHTMLf7177" width="650" height="370" border="0"></a></p><p>Here's a snap of the Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B10%5D-20.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B3%5D-27.png" alt="image" width="165" height="427" border="0"></a></p><p>So what good is this? I'm not really sure...lol. I just thought it was pretty cool and fun, to be able to &quot;fly&quot; around the terrain, to play with the settings and know that I've got the source for how it was generated. That said, the best part was the original <a href="http://www.codeproject.com" target="_blank">CodeProject</a> <a href="http://www.codeproject.com/Articles/319399/Terrain-Rendering" target="_blank">article</a> with the details and depth it went into. If you've ever wondered about terrain retendering, this is an article you might want to check out...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:6bfb3050ac4d464a88269fed01474f2f">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Large-Scale-Terrain-Rendering</comments>
      <itunes:summary>Today&#39;s project is hard to apply a &amp;quot;W&amp;quot; name to, maybe we&#39;ll just call this &amp;quot;Wow Wednesday&amp;quot; and leave it at that, because once I got this project running, &amp;quot;Wow, that&#39;s kind of cool&amp;quot; was my first thought... Terrain RenderingTerrain Rendering is a game technology code sample that demonstrates how to render large-scale terrains in real time by efficiently distributing the tasks between the CPU and the GPU. This article provides an overview of the terrain-rendering application and includes a link to the free code.IntroductionThis sample demonstrates how to render large-scale terrains on Intel&#174; microarchitecture codename Sandy Bridge in real time by efficiently distributing the tasks between the CPU cores and the processor graphics unit. The sample pre-processes an input height map into a hierarchical quadtree representation which is used to render the terrain with adaptively selected level of detail (LOD). The adaptive simplified triangulation calculated during the pre-processing is compactly encoded to save runtime processing and memory space. LOD construction is asynchronously performed by the CPU cores while rendering is done by the processor graphics unit.ApplicationTerrain Rendering is an application using DXUT and Microsoft DirectX* 11 with D3D_FEATURE_LEVEL_10_0. The application handles all rendering, user interaction and GUI. Upon initialization, the application loads all models, allocates resources and compiles shaders. On the first run, the application pre-calculates triangulation, which can take some time (up to one minute), and stores it on the disk. On subsequent runs, the application loads the data from the disk.OverviewTerrain rendering demonstrates how to render large-scale terrains on Intel microarchitecture codename Sandy Bridge in real time by efficiently distributing the tasks between the CPU cores and the processor graphics unit. The terrain rendering can be optimized by constructing simplified triangulation, which is ad</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Large-Scale-Terrain-Rendering</link>
      <pubDate>Wed, 08 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Large-Scale-Terrain-Rendering</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/75e77a8a-8f1e-4f56-b057-7e88d8326a64.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/4e22d723-f912-4bfe-b00c-e5b9887d5226.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Large-Scale-Terrain-Rendering/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
    </item>
  <item>
      <title>Rob helps us migrate our Beta 2 code to work with v1</title>
      <description><![CDATA[<p>This wouldn't be a complete &quot;OMG, Kinect for Windows SDK v1 is out&quot; theme week if we didn't cover how to upgrade all your Beta2 projects to v1. Luckily Rob Relyea has us covered with an outstanding code migration series.</p><p>If you have, or download, beta 2 based code/project and it doesn't compile, one of your first stops should be this post collection.</p><h2>Kinect for Windows – Code Migration from Beta2 to v1.0 (C#/VB)</h2><blockquote><p>There have been a number of significant changes and improvements in our APIs since Beta2. This set of documents attempts to detail the changes to facilitate code migration from beta 2 to v1.</p><h3>API Change Details</h3><p>[these links take you to a seperate post with details]</p><ul><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#namespacesAssemblyName">Namespace and Assembly Name changes</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#kinectSensor">Runtime type (Rename to KinectSensor, refactoring)</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#colorImages">ColorImage API changes</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#depthImages">DepthImage API changes</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#skeletons">Skeleton API changes</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#mapping">Mapping API changes (Skeleton -&gt; Depth, Depth -&gt; Color)</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#audio">Audio API changes</a> </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed#speech">Speech API changes</a> </li></ul><h3>Adapting to API Changes</h3><p>In order to adapt to this change, C#/VB developers should:</p><ul><li>Backup code projects (if not using source control, such as TFS) </li><li>Uninstall Beta 2 SDK (including speech runtime 10.x components). </li><li>Install Kinect for Windows SDK v1. </li><li>Migrate code to use v1 APIs and best practices via one of the migration techniques below </li><li>If you need help with the answer, go the <a href="http://bit.ly/KinectSDKForums">Kinect for Windows forums</a>. Search for other similar issues first. If needed, create a new issue. Please prefix the title of the forum post with “Migration issue:”. (for example: “Migration Issue: Runtime.Sensors replacement?”) </li><li>If you figured out the answer, and want to suggest improvements to the details and techniques in these documents, please leave a comment (We generally will respond to that feedback, but won’t show the comments, as it may get unwieldy). </li></ul><h3>Where to go for help</h3><h3>Code Migration Techniques (C#/VB)</h3><p>There are three major approaches to migration</p><p>1) RECOMMENDED: Use a migration reference assembly to assist with learning about API changes</p><p>2) RECOMMENDED: Go back to the examples you may have started from, find the newest versions of those, and transfer your improvements to this new version.</p><p>3) NOT RECOMMENDED: Change reference assembly, (recompile -&gt; search for info -&gt; change -&gt; adapt -&gt; repeat)</p><p>...</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://robrelyea.wordpress.com/2012/02/01/k4w-code-migration-from-beta2-to-v1-0-managed/" href="http://robrelyea.wordpress.com/2012/02/01/k4w-code-migration-from-beta2-to-v1-0-managed/">http://robrelyea.wordpress.com/2012/02/01/k4w-code-migration-from-beta2-to-v1-0-managed/</a></p><p><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed/" target="_blank"><img title="SNAGHTML7d6672" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML7d6672%5B5%5D.png" alt="SNAGHTML7d6672" width="450" height="364" border="0"></a></p><p><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed/" target="_blank"><img title="SNAGHTML7dd432" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML7dd432%5B5%5D.png" alt="SNAGHTML7dd432" width="299" height="364" border="0"></a></p><p><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed/" target="_blank"><img title="SNAGHTML7f0d5a" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML7f0d5a%5B5%5D.png" alt="SNAGHTML7f0d5a" width="320" height="364" border="0"></a></p><p>Contact Information:</p><ul><ul><li>Blog: <a title="http://robrelyea.wordpress.com/" href="http://robrelyea.wordpress.com/">http://robrelyea.wordpress.com/</a> </li><li>Twitter: <a href="https://twitter.com/#!/rrelyea" target="_blank">@rrelyea</a> </li></ul></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:3fc09337f5c64730a9459fed016845c9">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Rob-helps-us-migrate-our-Beta-2-code-to-work-with-v1</comments>
      <itunes:summary>This wouldn&#39;t be a complete &amp;quot;OMG, Kinect for Windows SDK v1 is out&amp;quot; theme week if we didn&#39;t cover how to upgrade all your Beta2 projects to v1. Luckily Rob Relyea has us covered with an outstanding code migration series.If you have, or download, beta 2 based code/project and it doesn&#39;t compile, one of your first stops should be this post collection.Kinect for Windows – Code Migration from Beta2 to v1.0 (C#/VB)There have been a number of significant changes and improvements in our APIs since Beta2. This set of documents attempts to detail the changes to facilitate code migration from beta 2 to v1.API Change Details[these links take you to a seperate post with details]Namespace and Assembly Name changes Runtime type (Rename to KinectSensor, refactoring) ColorImage API changes DepthImage API changes Skeleton API changes Mapping API changes (Skeleton -&amp;gt; Depth, Depth -&amp;gt; Color) Audio API changes Speech API changes Adapting to API ChangesIn order to adapt to this change, C#/VB developers should:Backup code projects (if not using source control, such as TFS) Uninstall Beta 2 SDK (including speech runtime 10.x components). Install Kinect for Windows SDK v1. Migrate code to use v1 APIs and best practices via one of the migration techniques below If you need help with the answer, go the Kinect for Windows forums. Search for other similar issues first. If needed, create a new issue. Please prefix the title of the forum post with “Migration issue:”. (for example: “Migration Issue: Runtime.Sensors replacement?”) If you figured out the answer, and want to suggest improvements to the details and techniques in these documents, please leave a comment (We generally will respond to that feedback, but won’t show the comments, as it may get unwieldy). Where to go for helpCode Migration Techniques (C#/VB)There are three major approaches to migration1) RECOMMENDED: Use a migration reference assembly to assist with learning about API changes2) RECOMMENDED: Go back to the exa</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Rob-helps-us-migrate-our-Beta-2-code-to-work-with-v1</link>
      <pubDate>Wed, 08 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Rob-helps-us-migrate-our-Beta-2-code-to-work-with-v1</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/9a7fb1ff-cc00-4795-a5b3-b59829636eb6.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/7b394078-9ab2-463c-9f00-10b935c25912.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Rob-helps-us-migrate-our-Beta-2-code-to-work-with-v1/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>When deploying Kinect apps, ensure the runtime, components and device are ready...</title>
      <description><![CDATA[<p>The second post in our &quot;Oh yeah, v1!&quot; week is a logical next step from yesterday's post...</p><p>Now that the Kinect for Windows SDK is in a v1 state and we can start officially deploying Kinect for Windows SDK based applications, one of the things we're going to be facing is just that, deployment and setup issues. Rob Relyea has kicked off helping us with just that, providing suggestions and tips...</p><h2>Kinect Apps – ensuring Kinect Runtime is installed</h2><blockquote><p>Kinect for Windows 1.0 enabled apps should ensure that the Kinect Runtime is installed wherever the app is installed.</p><p>[Note: <a href="http://kinectforwindows.org">Kinect for Windows</a> 1.0's latest public preview is beta 2. Parts of this blog post may be applicable to beta 2, but is primarily focused on the final v1.0 version, coming <a href="http://blogs.msdn.com/b/kinectforwindows/archive/2012/01/09/kinect-for-windows-commercial-program-announced.aspx">February 1st</a>. Since v1.0 is not yet released, information I give here may change when it does release. I also am filtering this information to ensure that I am not giving away details that we don't yet want to release.]</p><h4>Guidelines</h4><h5>App installers should install its dependencies, including Kinect Runtime – CRITICAL</h5><p>Kinect for Windows 1.0 will have a KinectRuntime-v1.0-Setup.exe that your app installer MUST chain install. In addition to installing Kinect specific software (drivers &#43; runtime), KinectRuntime-v1.0-Setup.exe will ensure the following dependencies are installed:</p><ul><li>VCRT x86 and/or x64 </li><li>.NET 4 client profile (or later 4.x versions like .NET 4.5) </li><li>Microsoft Speech Runtime v11 x86 and/or x64 </li></ul><h5>Running an app should provide a decent user experience if Kinect Runtime isn’t installed</h5><p>...</p></blockquote><p><strong>Project Information URL: <a title="http://robrelyea.wordpress.com/2012/01/11/kinect-apps-ensuring-kinect-runtime-is-installed/" href="http://robrelyea.wordpress.com/2012/01/11/kinect-apps-ensuring-kinect-runtime-is-installed/">http://robrelyea.wordpress.com/2012/01/11/kinect-apps-ensuring-kinect-runtime-is-installed/</a></strong></p><p><pre class="brush: csharp">public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            if (IsKinectRuntimeInstalled)
            {
                //go ahead and load the StartupUri as defined in App.xaml
                base.OnStartup(e);
            }
            else
            {
                MessageBox.Show(Assembly.GetExecutingAssembly().FullName &#43; &quot; is not able to excecute.&quot;
                &#43; &quot;An important dependency should have been installed by its setup program: Microsoft Kinect Runtime 1.0&quot;);
            }
        }

        public bool IsKinectRuntimeInstalled {
            get
            {
                bool isInstalled;
                try
                {
                    TestForKinectTypeLoadException();
                    isInstalled = true;
                }
                catch (FileNotFoundException)
                {
                    isInstalled = false;
                }
                return isInstalled;
            }
        }

        // This Microsoft.Kinect.dll based type, must be isolated in its own method
        // as the CLR will attempt to load the Microsoft.Kinect.dll assembly it when this method is executed.
        private void TestForKinectTypeLoadException()
        {
#pragma warning disable 219 //ignore the fact that status is unused code after this set.
            var status = KinectStatus.Disconnected;
#pragma warning restore 219
        }
    }
</pre></p><p>Contact Information:</p><ul><li>Blog: <a title="http://robrelyea.wordpress.com/" href="http://robrelyea.wordpress.com/">http://robrelyea.wordpress.com/</a> </li><li>Twitter: <a href="https://twitter.com/#!/rrelyea" target="_blank">@rrelyea</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:3e7574a6762c4642bcb19fed01515157">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/When-deploying-Kinect-apps-ensure-the-runtime-components-and-device-are-ready</comments>
      <itunes:summary>The second post in our &amp;quot;Oh yeah, v1!&amp;quot; week is a logical next step from yesterday&#39;s post...Now that the Kinect for Windows SDK is in a v1 state and we can start officially deploying Kinect for Windows SDK based applications, one of the things we&#39;re going to be facing is just that, deployment and setup issues. Rob Relyea has kicked off helping us with just that, providing suggestions and tips...Kinect Apps – ensuring Kinect Runtime is installedKinect for Windows 1.0 enabled apps should ensure that the Kinect Runtime is installed wherever the app is installed.[Note: Kinect for Windows 1.0&#39;s latest public preview is beta 2. Parts of this blog post may be applicable to beta 2, but is primarily focused on the final v1.0 version, coming February 1st. Since v1.0 is not yet released, information I give here may change when it does release. I also am filtering this information to ensure that I am not giving away details that we don&#39;t yet want to release.]GuidelinesApp installers should install its dependencies, including Kinect Runtime – CRITICALKinect for Windows 1.0 will have a KinectRuntime-v1.0-Setup.exe that your app installer MUST chain install. In addition to installing Kinect specific software (drivers &amp;#43; runtime), KinectRuntime-v1.0-Setup.exe will ensure the following dependencies are installed:VCRT x86 and/or x64 .NET 4 client profile (or later 4.x versions like .NET 4.5) Microsoft Speech Runtime v11 x86 and/or x64 Running an app should provide a decent user experience if Kinect Runtime isn’t installed...Project Information URL: http://robrelyea.wordpress.com/2012/01/11/kinect-apps-ensuring-kinect-runtime-is-installed/public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            if (IsKinectRuntimeInstalled)
            {
                //go ahead and load the StartupUri as defined in App.xaml
                base.OnStartup(e);
            }
            else
            {
   </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/When-deploying-Kinect-apps-ensure-the-runtime-components-and-device-are-ready</link>
      <pubDate>Tue, 07 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/When-deploying-Kinect-apps-ensure-the-runtime-components-and-device-are-ready</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/6071b179-8281-4144-9172-891bfec4cb38.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/a65b8637-40c6-4fac-abb9-4cc70dd7c47a.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>7</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/When-deploying-Kinect-apps-ensure-the-runtime-components-and-device-are-ready/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Getting started with Kinect development quickly with the Kinect for Windows Quickstart Series</title>
      <description><![CDATA[<p>This week's theme, if you haven't guessed yet, is going to be a &quot;We shipped it!&quot; or &quot;We're at v1, baby&quot; or a &quot;No Beta SDK's For You!&quot; or &quot;Lets Chat v1&quot; week.</p><p>Today we're going to highlight a cool series by Dan Fernandez that will get going with Kinect for Windows SDK Development.</p><p>And remember if you're new to .Net development and would like to get up to speed on C# or VB.Net, you'll want to check out, <a href="http://channel9.msdn.com/Series/C-Sharp-Fundamentals-Development-for-Absolute-Beginners" target="_blank">C# Fundamentals: Development for Absolute Beginners</a> and/or <a href="http://channel9.msdn.com/Series/Visual-Basic-Development-for-Absolute-Beginners" target="_blank">Visual Basic Fundamentals: Development for Absolute Beginners</a></p><h2>Kinect for Windows Quickstart Series</h2><blockquote><p>This series includes everything you need to get started building applications using the Kinect for Windows SDK. You'll learn how to setup and configure the Kinect SDK using Visual Studio Express, how the Kinect color and depth camera work and how to use skeletal tracking to track joint positions in your application. You'll also learn how to use sound source localization to locate the direction of sound, how to use the Kinect to record audio, and how to use speech recognition to control your application via voice commands.</p><ul><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Installing-and-Using-the-Kinect-Sensor">Installing and Using the Kinect Sensor</a> </li><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Setting-up-your-Development-Environment">Setting up your Development Environment</a> </li><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Camera-Fundamentals">Camera Fundamentals</a> </li><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Working-with-Depth-Data">Working with Depth Data</a> </li><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Skeletal-Tracking-Fundamentals">Skeletal Tracking Fundamentals</a> </li><li><a href="http://channel9.msdn.com/Series/KinectQuickstart/Audio-Fundamentals">Audio Fundamentals</a> </li></ul></blockquote><p><strong>Project Information URL:</strong> <a title="http://channel9.msdn.com/Series/KinectQuickstart" href="http://channel9.msdn.com/Series/KinectQuickstart">http://channel9.msdn.com/Series/KinectQuickstart</a></p><p><a href="http://channel9.msdn.com/Series/KinectQuickstart" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B4%5D-1.png" alt="image" width="208" height="384" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4d9b8ae6bda54a1380a29fed0161f7c3">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Getting-started-with-Kinect-development-quickly-with-the-Kinect-for-Windows-Quickstart-Series</comments>
      <itunes:summary>This week&#39;s theme, if you haven&#39;t guessed yet, is going to be a &amp;quot;We shipped it!&amp;quot; or &amp;quot;We&#39;re at v1, baby&amp;quot; or a &amp;quot;No Beta SDK&#39;s For You!&amp;quot; or &amp;quot;Lets Chat v1&amp;quot; week.Today we&#39;re going to highlight a cool series by Dan Fernandez that will get going with Kinect for Windows SDK Development.And remember if you&#39;re new to .Net development and would like to get up to speed on C# or VB.Net, you&#39;ll want to check out, C# Fundamentals: Development for Absolute Beginners and/or Visual Basic Fundamentals: Development for Absolute BeginnersKinect for Windows Quickstart SeriesThis series includes everything you need to get started building applications using the Kinect for Windows SDK. You&#39;ll learn how to setup and configure the Kinect SDK using Visual Studio Express, how the Kinect color and depth camera work and how to use skeletal tracking to track joint positions in your application. You&#39;ll also learn how to use sound source localization to locate the direction of sound, how to use the Kinect to record audio, and how to use speech recognition to control your application via voice commands.Installing and Using the Kinect Sensor Setting up your Development Environment Camera Fundamentals Working with Depth Data Skeletal Tracking Fundamentals Audio Fundamentals Project Information URL: http://channel9.msdn.com/Series/KinectQuickstart</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Getting-started-with-Kinect-development-quickly-with-the-Kinect-for-Windows-Quickstart-Series</link>
      <pubDate>Mon, 06 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Getting-started-with-Kinect-development-quickly-with-the-Kinect-for-Windows-Quickstart-Series</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/24a97dac-6f04-4c65-9e32-b4d3ceb53237.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/5d631865-4d24-4ffa-a9e3-e010a38b709e.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Getting-started-with-Kinect-development-quickly-with-the-Kinect-for-Windows-Quickstart-Series/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>DPSF (Dynamic Particle System Framework) = Free particle library for XNA (Windows, XBox 360 and Windows Phone)</title>
      <description><![CDATA[<p>Last week's Mobile Monday we highlighted an open source/source available particle system/library for Windows Phone, <a href="http://channel9.msdn.com/coding4fun/blog/Where-theres-smoke-fire-and-explosions-theres-the-3D-particle-engine-Tranquility" target="_blank">Where there's smoke, fire and explosions... there's the 3D particle engine, Tranquility</a>, which can be used as is or as a basis for learning how to create a like library yourself.</p><p>This week we're highlighting another framework that while only available in binary form (through of course the demos and samples include their source) is also free, has been around a while longer, and has a much broader deployment reach, including not only Windows Phone 7, but also XBox 360, Windows and even the Zune!</p><h2><a href="http://www.xnaparticles.com/" target="_blank">DPSF (Dynamic Particle System Framework)</a></h2><blockquote><p>DPSF (Dynamic Particle System Framework) is a tried and tested, free <strong>programmer's</strong> tool for creating custom particle systems in <strong>XNA</strong> quickly and easily.</p><p>Incorporate particle effects into your project within a matter of minutes by using the provided Default Classes.</p><p>Unlike other particle system APIs / libraries, DPSF is flexible and allows you to code your own custom behaviors into the particle system; <strong>You are not limited to only using the parameters provided by the framework</strong>. You can create and control your own particle properties to make just about any effect you can imagine; If you can code it, you can create it in DPSF.</p><p>Upload particle systems you create to <a href="http://forums.xnaparticles.com">the DPSF forums</a> and download particle systems created by others.</p><p>Check out the <a href="http://www.xnaparticles.com/DemoVideos.php">demo videos</a> to see some of the things you can do with DPSF, or go ahead and <a href="http://www.xnaparticles.com/Download.php">download DPSF</a> and try it out for yourself.</p><p>If you use DPSF in your project, be sure to post a link to your project on the <a href="http://forums.xnaparticles.com">the DPSF forums</a>.</p><h4>Features</h4><p>Here is a list of some of the features DPSF provides:</p><ul><li>A single API for multiple platforms: supports 2D and 3D particles for Windows, Xbox 360, Windows Phone 7, and Zune. </li><li>Easily integrates with graphics engines, including <a href="http://www.synapsegaming.com">Synapse Gaming's SunBurn engine</a>. </li><li>Full API documentation is provided in the help file, as well as in the <a href="http://www.xnaparticles.com/DPSFHelp/index.html">online help documentation</a>. </li><li>Tutorials and their source code are provided in the installer. The tutorials (without source code) are also available in the <a href="http://www.xnaparticles.com/DPSFHelp/index.html">online help documentation</a>. </li><li>Allows particle systems to be created in minutes by using the Default Particle Systems provided; Just set values for the built-in parameters, such as position, velocity, acceleration, rotation, external force, start/end color, etc. </li><li>The Default Particle Systems may be extended, allowing you to provide any extra required functionality. Want your particles to have a weight property that determines how fast they accelerate? Or do you want your particles to follow a specific path or pattern? You can code the behavior to make it happen! </li><li>Templates to start from are provided to make creating new particle systems quick and easy. </li><li>You write the particle system code, giving you full control over the particle system and its particles, allowing you to create any type of particle system effects you desire. Your imagination is the limit. </li><li>Easy to integrate into existing projects; just add a reference to a dll file. </li><li>Use the built-in Effects (i.e. shaders) as well as custom Effects. </li><li>Modify the default Effect (i.e. shaders) to create new custom Effects quickly and easily. </li><li>Particle System Managers are provided to make updating and drawing many particle systems easy. </li><li>An Animations class is provided for easily creating animated particles. </li><li>Easily create a sequence of images, tile-sets, or animated gifs displaying particle system animations. </li><li>Particle systems may be implemented as DrawableGameComponents if required. </li></ul></blockquote><p>Check out these videos;</p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/ciuk6evv4_U&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ciuk6evv4_U&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/JbW5edVNaRI&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/JbW5edVNaRI&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/HwMjyVB9EB4&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/HwMjyVB9EB4&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p>DPSF show's its maturity in a number of ways. First, there's good documentation.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe85e490%5B3%5D.png" target="_blank"><img title="SNAGHTMLe85e490" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe85e490_thumb.png" alt="SNAGHTMLe85e490" width="634" height="407" border="0"></a></p><p>Secondly there's a nice set of tutorials;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B3%5D-34.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-40.png" alt="image" width="387" height="161" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe8be00e%5B3%5D.png" target="_blank"><img title="SNAGHTMLe8be00e" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe8be00e_thumb.png" alt="SNAGHTMLe8be00e" width="614" height="407" border="0"></a></p><p>And finally the demo app is pretty awesome, showing off many of the capabilities of the framework. The demo ran for me the first time, with only a reference fix-up required;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B6%5D-27.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-35.png" alt="image" width="222" height="407" border="0"></a></p><p>All I needed to do was point that DPSF reference to the folder where I installed the framework and all was well.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B10%5D-19.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B4%5D-27.png" alt="image" width="312" height="382" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B16%5D-11.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B8%5D-13.png" alt="image" width="359" height="788" border="0"></a></p><p>One of my favorites (not sure why, maybe because the dog is cute...lol) is the Photo demo.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe924fd0%5B3%5D.png" target="_blank"><img title="SNAGHTMLe924fd0" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe924fd0_thumb.png" alt="SNAGHTMLe924fd0" width="521" height="407" border="0"></a></p><p>This demo shows off some of the cool things that DPSF can do. From 3D features;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe933d79%5B3%5D.png" target="_blank"><img title="SNAGHTMLe933d79" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe933d79_thumb.png" alt="SNAGHTMLe933d79" width="521" height="407" border="0"></a></p><p>To different ways the photo can be &quot;particle'ized&quot;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe9436c5%5B3%5D.png" target="_blank"><img title="SNAGHTMLe9436c5" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe9436c5_thumb.png" alt="SNAGHTMLe9436c5" width="521" height="407" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe9455f8%5B3%5D.png" target="_blank"><img title="SNAGHTMLe9455f8" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe9455f8_thumb.png" alt="SNAGHTMLe9455f8" width="521" height="407" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe946f80%5B3%5D.png" target="_blank"><img title="SNAGHTMLe946f80" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLe946f80_thumb.png" alt="SNAGHTMLe946f80" width="521" height="407" border="0"></a></p><p>And yes, you get the source for this demo and particle systems.</p><p>If you are looking around for a mature particle system, one with a price and license that's hard to beat, you run, not walk, and check out <a href="http://www.xnaparticles.com" target="_blank">DPSF</a>.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:a5b7b656196a42a6be129fed0135fd61">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/DPSF-Dynamic-Particle-System-Framework--Free-particle-library-for-XNA-Windows-XBox-360-and-Windows-P</comments>
      <itunes:summary>Last week&#39;s Mobile Monday we highlighted an open source/source available particle system/library for Windows Phone, Where there&#39;s smoke, fire and explosions... there&#39;s the 3D particle engine, Tranquility, which can be used as is or as a basis for learning how to create a like library yourself.This week we&#39;re highlighting another framework that while only available in binary form (through of course the demos and samples include their source) is also free, has been around a while longer, and has a much broader deployment reach, including not only Windows Phone 7, but also XBox 360, Windows and even the Zune!DPSF (Dynamic Particle System Framework)DPSF (Dynamic Particle System Framework) is a tried and tested, free programmer&#39;s tool for creating custom particle systems in XNA quickly and easily.Incorporate particle effects into your project within a matter of minutes by using the provided Default Classes.Unlike other particle system APIs / libraries, DPSF is flexible and allows you to code your own custom behaviors into the particle system; You are not limited to only using the parameters provided by the framework. You can create and control your own particle properties to make just about any effect you can imagine; If you can code it, you can create it in DPSF.Upload particle systems you create to the DPSF forums and download particle systems created by others.Check out the demo videos to see some of the things you can do with DPSF, or go ahead and download DPSF and try it out for yourself.If you use DPSF in your project, be sure to post a link to your project on the the DPSF forums.FeaturesHere is a list of some of the features DPSF provides:A single API for multiple platforms: supports 2D and 3D particles for Windows, Xbox 360, Windows Phone 7, and Zune. Easily integrates with graphics engines, including Synapse Gaming&#39;s SunBurn engine. Full API documentation is provided in the help file, as well as in the online help documentation. Tutorials and their source code a</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/DPSF-Dynamic-Particle-System-Framework--Free-particle-library-for-XNA-Windows-XBox-360-and-Windows-P</link>
      <pubDate>Mon, 06 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/DPSF-Dynamic-Particle-System-Framework--Free-particle-library-for-XNA-Windows-XBox-360-and-Windows-P</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/85f596e8-0eda-492a-abfa-488fda1186d8.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/9a084390-005e-4f4e-ac3f-ff2a8f121412.png" height="165" width="220"/>      
      <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/DPSF-Dynamic-Particle-System-Framework--Free-particle-library-for-XNA-Windows-XBox-360-and-Windows-P/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Windows Phone 7</category>
      <category>Xbox 360</category>
    </item>
  <item>
      <title>Building the PIX-6T4 and writing a game for it too</title>
      <description><![CDATA[<p>Our Hardware Friday post returns us to the PIX-6T4, <a href="http://channel9.msdn.com/coding4fun/blog/The-PIX-6T4-kit-is-out" target="_blank">The PIX-6T4 kit is out...</a>, and a Friend of the Blog, <a href="http://10rem.net" target="_blank">Pete Brown</a>.</p><p>If you follow Pete, it probably won't surprise you to know he's gotten his hands on a PIX-6T4 and has shared his recent experience building the kit and writing his first &quot;real&quot; game for it.</p><h2><a href="http://10rem.net/blog/2012/01/21/assembling-the-pix-6t4-netduino-powered-hand-held-game-systEm" target="_blank">Assembling the PIX-6T4 Netduino-powered Hand-Held Game System</a></h2><blockquote><p>I recently picked up a PIX-6T4 build by Fabien Royer (with games by Fabien Royer and Bertrand Le Roy). This is a 64 pixel, two joystick/button, monophonic sound hand-held game device based around the Netduino Mini from Secret Labs. You create games in C# using Visual studio.</p><p>Disclaimer: I work for Microsoft and I enjoy working in the .NET Micro Framework as well as C&#43;&#43; on other microcontrollers. I purchased this product on my own, at full price; this is not a sample or review unit. Presumably, I got the same package of goodies everyone else gets.</p><h5>Unboxing</h5><p>The kit came in a regular USPS shipping box inside which were four bags. Two bags had components, and two had joysticks.</p></blockquote><p><a href="http://10rem.net/blog/2012/01/21/assembling-the-pix-6t4-netduino-powered-hand-held-game-systEm" target="_blank"><img title="SNAGHTML2327a52c" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML2327a52c%5B4%5D.png" alt="SNAGHTML2327a52c" width="302" height="407" border="0"></a></p><p><a href="http://10rem.net/blog/2012/01/21/assembling-the-pix-6t4-netduino-powered-hand-held-game-systEm" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B3%5D-33.png" alt="image" width="517" height="407" border="0"></a></p><blockquote><h5>Conclusion</h5><p>I'm impressed with what Fabien has come up with here, and the stock games he and Bertrand have done are just perfect. I think the board and enclosure could use a little more design to make it more compact and also more hand-friendly, but overall, I think this is an excellent way to get into Netduino programming using something fun and exciting. Also, because of the display technology, you are constrained to creating games with very simple graphics (just LEDs) so, by necessity, you avoid that common barrier to entry. Sometimes constraint is a good thing.</p><p>Congratulations Fabien and Bertrand!</p></blockquote><h2><a href="http://10rem.net/blog/2012/01/22/my-first-real-pix-6t4-game-sixty4racer" target="_blank">My First Real PIX-6T4 Game: Sixty4Racer</a></h2><blockquote><p>After <a href="http://10rem.net/blog/2012/01/21/assembling-the-pix-6t4-netduino-powered-hand-held-game-system">assembling my Netduino-powered PIX-6T4</a>, I wanted to go and write a simple game. This post describes the construction of that game, including all source code.</p><h5>Concept</h5><p>When you have 64 monochrome red pixels, you need to keep the graphics simple. I decided on a game inspired by the classic <a href="http://www.bing.com/images/search?q=river&#43;raid&amp;qs=n&amp;sk=&amp;sc=8-3&amp;form=QBIR">Atari River Raid game</a>. This is essentially a vertical scrolling game where you need to dodge obstacles with your boat. Variations included things like <a href="http://www.bing.com/images/search?q=commodore&#43;spy&#43;hunter&amp;qs=n&amp;sk=&amp;sc=8-13&amp;form=QBIR">Spy Hunter on the C64</a> and many many others. Most of those games also involved shooting and enemies, but that's a but more complex than you can reasonably do on this board. I won't enable moving walls like <a href="http://www.bing.com/images/search?q=laser&#43;gates&#43;atari&amp;qs=n&amp;sk=&amp;form=QBIR">Laser Gates</a>, but I'll leave things open enough not to make it impossible to do that in the future.</p><p>The game had to be small enough that I could figure out the API, and then design, code, and blog about it in a single evening after my kids went to bed The PIX-6T4 is fun, but I have way too many projects on my backlog to be able to devote any significant<strong></strong> time to it (<em>here's a taste: a ShapeOko CNC mill, an AVR MIDI-&gt;CV Converter, the final touches on the MIDI Thru Box, several MFOS Synth Modules, Several Gadgeteer Board Concepts, a Win8 XAML book, chapters to review in my Silverlight 5 book, and much much more</em>). In fact, that was one of the <strong>big selling points of this device: simple gameplay and quick to develop for</strong>. Combined with the great library Fabien designed, and my past experience with Netduino and, more specifically, C#, and this should be an evening project.</p><h5>Screen Design</h5><p>Back in the 80s, in 7th grade, I used to design single-color sprites for the commodore 64. The sprites themselves were 3 bytes wide, with each pixel represented as a single bit in the byte. I used to define them on graph paper, but alas, the notebooks I filled with sprites and BASIC listings have long since disappeared.</p><p>...</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B7%5D-12.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-34.png" alt="image" width="670" height="162" border="0"></a></p><p>...</p><h5>First Iteration: Creating the scrolling playfield</h5><p>I called my project PeteBrown.Sixty4Racer. Just as in the previous post, I copied over the Program.cs file from another project and used that as the start. Please <a href="http://10rem.net/blog/2012/01/21/assembling-the-pix-6t4-netduino-powered-hand-held-game-system">read my previous post</a> to see what references you need and whatnot.</p><p>The first class I created was the one that manages the creation of the screens.</p><p>...</p><h5>Second Iteration: Adding in the player</h5><p>The PIX-6T4 libraries have built-in the concept of a PlayerMissile. This is a single pixel on the playfield. It may move, so it has X and Y speed. You can show or hide it, so it has Visibility. And most importantly, it has collision detection with other PlayerMissile instances. For our game, we're not going to use that, since we're looking for collision detection with the background. So, a little manual detection is in order.</p><p>...</p><h5>Third Iteration: Polishing</h5><p>The first thing I realized was that it was really hard to make out the player pixel in the sea of red. That's to be expected on a monochrome display at 8x8 resolution. The approach I came up with to make it a bit easier is to simply flicker the player pixel. Each time the game loop executes, I toggle the visibility of the ship PlayerMissile to give it a nice seizure-inducing flicker.</p><p>...</p><h5>Final Steps</h5><p>The final things to do are to create the manifest file and bitmap which will be used on the SD card. I'll need to check with Fabien to see what the exact format of the .bin file is, but I suspect it's just the 8 bytes of data formatted like all the other bitmap data in this application. I'm also not sure if he has a nice little app to write that data out, or convert from a bitmap, or something else. I ended up just using a hex editor to recreate the pattern from one of the images I created in the font editor.</p><p>...</p><h5>What You Can Do</h5><p>This came is completely free and open source. While I'd love credit for the initial work, it's not a requirement. Go ahead and do whatever you'd like with the source and have a blast <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Here's a video of the game in action.</p></blockquote><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/10FzxWQTzzM&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/10FzxWQTzzM&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p>In short, if you have a hankering to get your soldering iron hot and build your own hand-held game console, one that you can also write your own games for, the <a href="http://nwazet.com/pix6t4" target="_blank">PIX-6T4</a>, and this guidance from Peter, has your name all over it...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e5e1e0b29f734aeb9e879fe601200177">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Building-the-PIX-64T-and-writing-a-game-for-it-too</comments>
      <itunes:summary>Our Hardware Friday post returns us to the PIX-6T4, The PIX-6T4 kit is out..., and a Friend of the Blog, Pete Brown.If you follow Pete, it probably won&#39;t surprise you to know he&#39;s gotten his hands on a PIX-6T4 and has shared his recent experience building the kit and writing his first &amp;quot;real&amp;quot; game for it.Assembling the PIX-6T4 Netduino-powered Hand-Held Game SystemI recently picked up a PIX-6T4 build by Fabien Royer (with games by Fabien Royer and Bertrand Le Roy). This is a 64 pixel, two joystick/button, monophonic sound hand-held game device based around the Netduino Mini from Secret Labs. You create games in C# using Visual studio.Disclaimer: I work for Microsoft and I enjoy working in the .NET Micro Framework as well as C&amp;#43;&amp;#43; on other microcontrollers. I purchased this product on my own, at full price; this is not a sample or review unit. Presumably, I got the same package of goodies everyone else gets.UnboxingThe kit came in a regular USPS shipping box inside which were four bags. Two bags had components, and two had joysticks.ConclusionI&#39;m impressed with what Fabien has come up with here, and the stock games he and Bertrand have done are just perfect. I think the board and enclosure could use a little more design to make it more compact and also more hand-friendly, but overall, I think this is an excellent way to get into Netduino programming using something fun and exciting. Also, because of the display technology, you are constrained to creating games with very simple graphics (just LEDs) so, by necessity, you avoid that common barrier to entry. Sometimes constraint is a good thing.Congratulations Fabien and Bertrand!My First Real PIX-6T4 Game: Sixty4RacerAfter assembling my Netduino-powered PIX-6T4, I wanted to go and write a simple game. This post describes the construction of that game, including all source code.ConceptWhen you have 64 monochrome red pixels, you need to keep the graphics simple. I decided on a game inspired by the classic A</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Building-the-PIX-64T-and-writing-a-game-for-it-too</link>
      <pubDate>Fri, 03 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Building-the-PIX-64T-and-writing-a-game-for-it-too</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/944fae6b-a1b4-4775-9883-ecc0c0fd02aa.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/2e4ad288-09de-4be0-9c39-5974955d4cb8.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Building-the-PIX-64T-and-writing-a-game-for-it-too/RSS</wfw:commentRss>
      <category>.NET Micro Framework</category>
      <category>Coding4Fun</category>
    </item>
  <item>
      <title>That&#39;s smooth... Skeleton movement that is</title>
      <description><![CDATA[<p>The next in our &quot;Skeleton week&quot; is a tip on providing smoother skeleton movement.</p><h2>[# KINECT] HowTo: Soften the detection of movements in the skeleton</h2><blockquote><p>Hi,</p><p>While we await the final SDK for developers with <a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;to=en&amp;a=http%3A%2F%2Fwww.kinectforwindows.org%2F">Kinect</a> leave in a few days [GD: which by now is out], we still have to adjust quite a bit to make the SDK will allow us to make robust applications. One of these “debts” <a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;to=en&amp;a=http%3A%2F%2Fwww.kinectforwindows.org%2F">Kinect</a> has with us is the ability to remove the “tembleque / tremor” have at each point of the skeleton when working with the same point to point or Joint to Joint. If you run <a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;to=en&amp;a=http%3A%2F%2Felbruno.com%2F2011%2F11%2F12%2Fkinect-howto-pintar-2-skeletons-en-un-canvas-wpf%2F">the application that shows both skeletons in a Canvas of WPF</a>, you’ll see that it works pretty well.</p><p>Now, if we modify it with a bit of the code base of <a href="http://www.microsofttranslator.com/bv.aspx?from=es&amp;to=en&amp;a=http%3A%2F%2Fchannel9.msdn.com%2FSeries%2FKinectSDKQuickstarts%2FSkeletal-Tracking-Fundamentals">this post</a>, to add 2 worlds in each hand (I have ‘ s got the whole world in his hands!) in will see something similar to the following image. While I have not well adjusted the size of the form so that the worlds coincide 100% with each hand, when you run the application you can see that it is a flickering or tembleque a little weird when examines the detail of the skeleton.</p><p>...</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/" href="http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/">http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/</a></p><p><strong>Project Source URL:</strong> <a title="https://skydrive.live.com/?cid=bef06dffdb192125&amp;id=BEF06DFFDB192125%213798" href="https://skydrive.live.com/?cid=bef06dffdb192125&amp;id=BEF06DFFDB192125%213798">https://skydrive.live.com/?cid=bef06dffdb192125&amp;id=BEF06DFFDB192125%213798</a></p><p><a href="http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B7%5D-4.png" alt="image" width="293" height="384" border="0"></a></p><p><a href="http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B6%5D-5.png" alt="image" width="520" height="304" border="0"></a></p><p><a href="http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/" target="_blank"><img title="SNAGHTML236d8cdd" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML236d8cdd%5B5%5D.png" alt="SNAGHTML236d8cdd" width="500" height="190" border="0"></a></p><p>Contact Information:</p><ul><li>Blog: <a title="http://elbruno.com" href="http://elbruno.com">http://elbruno.com</a> </li><li>Twitter: <a href="https://twitter.com/#!/elbruno" target="_blank">@elbruno</a> </li></ul><p>&nbsp;</p><p>Page image, <a href="http://www.flickr.com/photos/fimbrethil/3083309044/">Lego advent calendar: Day 4</a>, courtesy of <a href="/photos/fimbrethil/">Fimb</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7f63ae1617644102a1699fe60131de43">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Thats-smooth-Skeleton-movement-that-is</comments>
      <itunes:summary>The next in our &amp;quot;Skeleton week&amp;quot; is a tip on providing smoother skeleton movement.[# KINECT] HowTo: Soften the detection of movements in the skeletonHi,While we await the final SDK for developers with Kinect leave in a few days [GD: which by now is out], we still have to adjust quite a bit to make the SDK will allow us to make robust applications. One of these “debts” Kinect has with us is the ability to remove the “tembleque / tremor” have at each point of the skeleton when working with the same point to point or Joint to Joint. If you run the application that shows both skeletons in a Canvas of WPF, you’ll see that it works pretty well.Now, if we modify it with a bit of the code base of this post, to add 2 worlds in each hand (I have ‘ s got the whole world in his hands!) in will see something similar to the following image. While I have not well adjusted the size of the form so that the worlds coincide 100% with each hand, when you run the application you can see that it is a flickering or tembleque a little weird when examines the detail of the skeleton....Project Information URL: http://elbruno.com/2012/01/24/kinect-howto-soften-the-detection-of-movements-in-the-skeleton/Project Source URL: https://skydrive.live.com/?cid=bef06dffdb192125&amp;amp;id=BEF06DFFDB192125%213798Contact Information:Blog: http://elbruno.com Twitter: @elbruno &amp;nbsp;Page image, Lego advent calendar: Day 4, courtesy of Fimb</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Thats-smooth-Skeleton-movement-that-is</link>
      <pubDate>Thu, 02 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Thats-smooth-Skeleton-movement-that-is</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/e7d2f62f-39d3-41f8-9fd9-f67f25fd808f.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/eebc80be-ecf4-4b00-8b15-895ac793dbd7.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Thats-smooth-Skeleton-movement-that-is/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>[Special Edition] It&#39;s Kinect day! The Kinect For Windows SDK v1 is out!</title>
      <description><![CDATA[<p>As everyone reading this blog, and those in the Kinect for Windows space, knows today is a big day. From what was a cool peripheral for the XBox 360 last year, the Kinect for Windows SDK and now dedicated Kinect for Windows hardware device, has taken the world by storm. In the last year we've seen some simply amazing ideas and projects, many highlighted here in the Kinect for Windows Gallery, from health to education, to music expression to simply just fun.</p><p>And that was all with beta software and a device meant for a gaming console.</p><p>With a fully supported, allowed for use in commercial products, dedicated device and updated SDK, today the world changes again.</p><p>Welcome to the Kinect for Windows SDK v1!</p><h2><a href="http://blogs.msdn.com/b/kinectforwindows/archive/2012/01/31/kinect-for-windows-is-now-available.aspx">Kinect for Windows is now Available!</a></h2><blockquote><p>On January 9th, Steve Ballmer <a href="http://www.microsoft.com/presspass/exec/steve/2012/01-09CES.mspx">announced at CES</a> that we would be shipping Kinect for Windows on February 1st. I am very pleased to report that today version 1.0 of our <a href="http://www.microsoft.com/en-us/kinectforwindows/develop/new.aspx">SDK and runtime</a> were made available for download, and distribution partners in our twelve launch countries are starting to ship Kinect for Windows hardware, enabling companies to start to deploy their solutions. The suggested retail price is $249, and later this year, we will offer special academic pricing of $149 for <a href="http://www.microsoft.com/education/en-us/buy/Pages/eligible.aspx">Qualified Educational Users</a>.</p><p>In the three months since we released Beta 2, we have made many improvements to our SDK and runtime, including:</p><ul><li>Support for up to four Kinect sensors plugged into the same computer </li><li>Significantly improved skeletal tracking, including the ability for developers to control which user is being tracked by the sensor </li><li>Near Mode for the new Kinect for Windows hardware, which enables the depth camera to see objects as close as 40 centimeters in front of the device </li><li>Many API updates and enhancements in the managed and unmanaged runtimes </li><li>The latest Microsoft Speech components (V11) are now included as part of the SDK and runtime installer </li><li>Improved “far-talk” acoustic model that increases speech recognition accuracy </li><li>New and updated samples, such as Kinect Explorer, which enables developers to explore the full capabilities of the sensor and SDK, including audio beam and sound source angles, color modes, depth modes, skeletal tracking, and motor controls </li><li>A commercial-ready installer which can be included in an application’s set-up program, making it easy to install the Kinect for Windows runtime and driver components for end-user deployments. </li><li>Robustness improvements including driver stability, runtime fixes, and audio fixes </li></ul><p>More details can be found <a href="http://www.microsoft.com/en-us/kinectforwindows/develop/new.aspx">here</a>.</p></blockquote><p>If you're like me, you want to know more about what's new... So here's a snip from the <a href="http://download.microsoft.com/download/A/8/C/A8CE7F28-7265-42B8-BB26-10F014C15E11/ReleaseNotes.htm" target="_blank">Kinect for Windows SDK v1 Release Notes</a>;</p><blockquote><h4>5. Changes since the Kinect for Windows SDK Beta 2 release</h4><ul><li><strong>Support for up to 4 Kinect sensors</strong> plugged into the same computer, assuming the computer is powerful enough and they are plugged in to different USB controllers so that there is enough bandwidth available. (As before, skeletal tracking can only be used on one Kinect per process. The developer can choose which Kinect sensor.) </li></ul><p>· <strong>Skeletal Tracking</strong></p><ul><ul><li>The Kinect for Windows Skeletal Tracking system is now tracking subjects with results equivalent to the Skeletal Tracking library available in the November 2011 Xbox 360 Development Kit. </li></ul></ul><ul><li><strong>The Near Mode feature is now available.</strong> It is only functional on Kinect for Windows Hardware; see the <a href="http://go.microsoft.com/fwlink/?LinkID=242090">Kinect for Windows Blog post</a> for more information. </li></ul><ul><li><strong>Robustness improvement including driver stability, runtime and audio fixes.</strong> </li></ul><ul><li><strong>API Updates and Enhancements</strong> <ul><li>See a blog post detailing migration information from Beta 2 to v1.0 here: <a href="http://go.microsoft.com/fwlink/?LinkID=239910">Migrating from Beta 2</a> </li></ul></li></ul><ul><ul><li>Many renaming changes to both the managed and native APIs for consistency and ease of development. Changes include: <ul><li>Consolidation of managed and native runtime components into a minimal set of DLLs </li><li>Renaming of managed and native APIs to align with product team design guidelines </li><li>Renaming of headers, libs, and references assemblies </li></ul></li></ul></ul><ul><ul><li>Significant managed API improvements: <ul><li>Consolidation of namespaces into Microsoft.Kinect </li><li>Improvements to DepthData object </li><li>Skeleton data is now serializable </li><li>Audio API improvements, including the ability to connect to a specific Kinect on a computer with multiple Kinects </li><li>Improved error handling </li></ul></li></ul></ul><ul><ul><li>Improved initialization APIs, including addition the Initializing state into the Status property and StatusChanged events </li></ul></ul><ul><ul><li>Set Tracked Skeleton API support is now available in native and managed code. Developers can use this API to lock on to 1 or 2 skeletons, among the possible 6 proposed. </li></ul></ul><ul><ul><li>Mapping APIs: The mapping APIs on KinectSensor that allow you to map depth pixels to color pixels have been updated for simplicity of usage, and are no longer restricted to 320x240 depth format. </li></ul></ul><ul><ul><li>The high-res RGB color mode of 1280x1024 has been replaced by the similar 1280x960 mode, because that is the mode supported by the official Kinect for Windows hardware. </li></ul></ul><ul><ul><li>Frame event improvements. Developers now receive frame events in the same order as Xbox 360, i.e. color then depth then skeleton, followed by an AllFramesReady event when all data frames are available. </li></ul></ul><ul><ul><li>Managed API Updates </li></ul></ul><p><strong><u>Correct FPS for High Res Mode</u></strong></p><p>ColorImageFormat.RgbResolution1280x960Fps15 to ColorImageFormat.RgbResolution1280x960Fps12</p><p><strong><u>Enum Polish</u></strong></p><p>Added Undefined enum value to a few Enums: ColorImageFormat, DepthImageFormat, and KinectStatus</p><p><strong><u>Depth Values</u></strong></p><p>DepthImageStream now defaults IsTooFarRangeEnabled to true (and removed the property).</p><p>Beyond the depth values that are returnable (800-4000 for DepthRange.Default and 400-3000 for DepthRange.Near), we also will return the following values:</p><p>DepthImageStream.TooNearDepth (for things that we know are less than the DepthImageStream.MinDepth)</p><p>DepthImageStream.TooFarDepth (for things that we know are more than the DepthImageStream.MaxDepth)</p><p>DepthImageStream.UnknownDepth (for things that we don’t know.)</p><p><strong><u>Serializable Fixes for Skeleton Data</u></strong></p><p>We’ve added the SerializableAttribute on Skeleton, JointCollection, Joint and SkeletonPoint</p><p><strong><u>Mapping APIs</u></strong></p><p>Performance improvements to the existing per pixel API.</p><p>Added a new API for doing full-frame conversions:</p><p>public void MapDepthFrameToColorFrame(DepthImageFormat depthImageFormat, short[] depthPixelData, ColorImageFormat colorImageFormat, ColorImagePoint[] colorCoordinates);</p><p>Added KinectSensor.MapSkeletonPointToColor()</p><p>public ColorImagePoint MapSkeletonPointToColor(SkeletonPoint skeletonPoint, ColorImageFormat colorImageFormat);</p><p><strong><u>Misc</u></strong></p><p>Renamed Skeleton.Quality to Skeleton.ClippedEdges</p><p>Changed return type of SkeletonFrame.FloorClipPlane to Tuple&lt;int, int, int, int&gt;.</p><p>Removed SkeletonFrame.NormalToGravity property.</p><p>· <strong>Audio &amp; Speech</strong></p><ul><ul><li>The Kinect SDK now includes the latest Microsoft Speech components (V11 QFE). Our runtime installer chain-installs the appropriate runtime components (32-bit speech runtime for 32-bit Windows, and both 32-bit and 64-bit speech runtimes for 64-bit Windows), plus an updated English Language pack (en-us locale) with improved recognition accuracy. </li></ul></ul><ul><ul><li>Updated acoustic model that improves the accuracy in the confidence numbers returned by the speech APIs </li></ul></ul><ul><ul><li>Kinect Speech Acoustic Model has now the same icon and similar description as the rest of the Kinect components </li></ul></ul><ul><ul><li>Echo cancellation will now recognize the system default speaker and attempt to cancel the noise coming from it automatically, if enabled. </li></ul></ul><ul><ul><li>Kinect Audio with AEC enabled now works even when no sound is coming from the speakers. Previously, this case caused problems. </li></ul></ul><ul><ul><li>Audio initialization has changed: <ul><li>C&#43;&#43; code must call NuiInitialize before using the audio stream </li><li>Managed code must call KinectSensor.Start() before KinectAudioSource.Start() </li><li>It takes about 4 seconds after initialize is called before audio data begins to be delivered </li><li>Audio/Speech samples now wait for 4 seconds for Kinect device to be ready before recording audio or recognizing speech. </li></ul></li></ul></ul><p>· <strong>Samples</strong></p><ul><ul><li>A sample browser has been added, making it easier to find and view samples. A link to it is installed in the Start menu. </li></ul></ul><ul><ul><li>ShapeGame and KinectAudioDemo (via a new KinectSensorChooser component) demonstrate how to handle Kinect Status as well as inform users about erroneously trying to use a Kinect for Xbox 360 sensor. </li></ul></ul><ul><ul><li>The Managed Skeletal Viewer sample has been replaced by Kinect Explorer, which adds displays for audio beam angle and sound source angle/confidence, and provides additional control options for the color modes, depth modes, skeletal tracking options, and motor control. Click on “(click for settings)” at the bottom of the screen for all the bells and whistles. </li></ul></ul><ul><ul><li>Kinect Explorer (via an improved SkeletonViewer component) displays bones and joints differently, to better illustrate which joints are tracked with high confidence and which are not. </li></ul></ul><ul><ul><li>KinectAudioDemo no longer saves unrecognized utterances files in temp folder. </li></ul></ul><ul><ul><li>An example of AEC and Beam Forming usage has been added to the KinectAudioDemo application. </li></ul></ul><ul><li><strong>Redistributable Kinect for Windows Runtime package</strong> <ul><li>There is a redist package, located in the redist subdirectory of the SDK install location. This redist is an installer exe that an application can include in its setup program, which installs the Kinect for Windows runtime and driver components. </li></ul></li></ul></blockquote><p>Here's some more links and information</p><ul><li><a href="http://www.microsoft.com/en-us/kinectforwindows" target="_blank">Kinect For Windows</a> </li><li><a href="http://blogs.msdn.com/b/kinectforwindows/" target="_blank">Kinect for Windows Blog</a> (<a href="http://blogs.msdn.com/b/kinectforwindows/archive/2012/01/20/near-mode-what-it-is-and-isn-t.aspx">Near Mode: What it is (and isn’t)</a>) </li><li><a href="http://download.microsoft.com/download/A/8/C/A8CE7F28-7265-42B8-BB26-10F014C15E11/ReleaseNotes.htm" target="_blank">Kinect for Windows SDK v1 Release Notes</a> </li><li><a href="http://www.microsoft.com/en-us/kinectforwindows/develop/overview.aspx" target="_blank">Download the Kinect for Windows SDK</a> (Make sure you read the full release notes, there's instructions for those who are using earlier versions for the Kinect for Windows SDK) </li><li><a href="http://www.microsoft.com/en-us/kinectforwindows/develop/resources.aspx" target="_blank">Additional Resources and Documentation</a> </li></ul><p>Last but not least, here's some of the resources and projects that have been with with us since day 0;</p><ul><li>Kinect for Windows Quickstart Series - <a href="http://channel9.msdn.com/Series/KinectQuickstart">http://channel9.msdn.com/Series/KinectQuickstart</a> <ul><li>Installing and Using the Kinect Sensor </li><li>Setting up your Development Environment </li><li>Camera Fundamentals </li><li>Working with Depth Data </li><li>Skeletal Tracking Fundamentals </li><li>Audio Fundamentals </li></ul></li><li>Kinect Service - This is a Windows Service so you can see Kinect data on your Windows Phone - <a href="http://kinectservice.codeplex.com/">http://kinectservice.codeplex.com/</a> </li><li>Kinect Paint – Draw with your hands - <a href="http://paint.codeplex.com/">http://paint.codeplex.com/</a> </li><li>Kinect Mouse Cursor – Control Windows with your hands - <a href="http://kinectmouse.codeplex.com/">http://kinectmouse.codeplex.com/</a> </li><li>Coding4Fun Kinect Toolkit – Developer library for easy programming – <a href="http://c4fkinect.codeplex.com">http://c4fkinect.codeplex.com</a> </li><li>Jellybean – Our driveable lounge chair – <a href="http://jellybean.codeplex.com">http://jellybean.codeplex.com</a> </li></ul><p>Today is an exciting day and I'm really looking forward to the explosion of cool and fun stuff that I'm sure will be coming to the Gallery soon!</p><p>&nbsp;</p><p><strong>Update 2/2/2012:</strong></p><p>Since yesterday there's been a number announcements, posts and updates&nbsp;related to the v1 release. Here's a round for a number of them.</p><ul><li><a href="http://blogs.msdn.com/b/eternalcoding/archive/2012/02/01/official-kinect-for-windows-sdk-and-kinect-toolbox-1-1-1-are-out.aspx">Official Kinect for Windows SDK and Kinect Toolbox 1.1.1 are out! </a>(David Catuhe) </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-code-migration-from-beta2-to-v1-0-managed/">Kinect for Windows – Code Migration from Beta2 to v1.0 (C#/VB)</a>&nbsp;(Rob Relyea) </li><li><a href="http://robrelyea.wordpress.com/2012/02/01/k4w-details-of-api-changes-from-beta2-to-v1-managed/">Kinect for Windows – Details of API Changes from Beta2 to v1.0 (C#/VB)</a>&nbsp;(Rob Relyea) </li><li><a href="http://channel9.msdn.com/coding4fun/projects/Kinect-Service">Kinect Service</a> [also mentioned above, but this projects a few more details]&nbsp;(Brian Peek) </li><li><a href="http://blogs.msdn.com/b/mssmallbiz/archive/2012/02/02/kinect-for-windows-now-available-information-and-resources-for-you.aspx">Kinect for Windows now available! Information and resources for you</a>. [This is another link round-up with even more information, links, etc.] (Eric Ligman) </li></ul><p>In the coming days and weeks I'm sure we'll be hearing about more updates, refreshed, etc, so keep an eye on you favorite project or library...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:98f53a0992e44abea6e49fea00f9886a">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The-Kinect-For-Windows-SDK-v1-is-out</comments>
      <itunes:summary>As everyone reading this blog, and those in the Kinect for Windows space, knows today is a big day. From what was a cool peripheral for the XBox 360 last year, the Kinect for Windows SDK and now dedicated Kinect for Windows hardware device, has taken the world by storm. In the last year we&#39;ve seen some simply amazing ideas and projects, many highlighted here in the Kinect for Windows Gallery, from health to education, to music expression to simply just fun.And that was all with beta software and a device meant for a gaming console.With a fully supported, allowed for use in commercial products, dedicated device and updated SDK, today the world changes again.Welcome to the Kinect for Windows SDK v1!Kinect for Windows is now Available!On January 9th, Steve Ballmer announced at CES that we would be shipping Kinect for Windows on February 1st. I am very pleased to report that today version 1.0 of our SDK and runtime were made available for download, and distribution partners in our twelve launch countries are starting to ship Kinect for Windows hardware, enabling companies to start to deploy their solutions. The suggested retail price is $249, and later this year, we will offer special academic pricing of $149 for Qualified Educational Users.In the three months since we released Beta 2, we have made many improvements to our SDK and runtime, including:Support for up to four Kinect sensors plugged into the same computer Significantly improved skeletal tracking, including the ability for developers to control which user is being tracked by the sensor Near Mode for the new Kinect for Windows hardware, which enables the depth camera to see objects as close as 40 centimeters in front of the device Many API updates and enhancements in the managed and unmanaged runtimes The latest Microsoft Speech components (V11) are now included as part of the SDK and runtime installer Improved “far-talk” acoustic model that increases speech recognition accuracy New and updated samples, such a</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The-Kinect-For-Windows-SDK-v1-is-out</link>
      <pubDate>Wed, 01 Feb 2012 15:46:24 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The-Kinect-For-Windows-SDK-v1-is-out</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/daa3ea6a-a96e-40da-88ca-9434aaa608b1.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/ae82a9a7-d91f-408c-9b55-b92540d1b986.png" height="165" width="220"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f203732c-24b9-4247-8e1f-255b0ab55705.png" height="288" width="512"/>      
      <dc:creator>Dan Fernandez, Greg Duncan</dc:creator>
      <itunes:author>Dan Fernandez, Greg Duncan</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The-Kinect-For-Windows-SDK-v1-is-out/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
      <category>techmeme</category>
    </item>
  <item>
      <title>0 A.D. The C++ open source RTS that&#39;s looking for game dev geeks (not that you&#39;re a geek...)</title>
      <description><![CDATA[<p>Today's project is a little outside our usual, delving into C&#43;&#43;, but one that I still thought pretty cool. And since it compiles with VS 2005, VS2008 or VS2010 and is &quot;Fun&quot; I thought it might be something you all might like too.</p><p>This project is still in an Alpha state, but that's actually good, since it means that if you want to help them out on it, you can get in closer to the ground floor...</p><p>I said, &quot;help out?&quot; Yep, they are actively looking for your help...</p><blockquote><p>We are seeking contributors in programming, art, sound, web design, taking YouTube videos and more.</p><p>These roles on the 0 A.D. development team are great if you want to brush up on your skills and update your portfolio, if you're seeking a project for school with real-life applications, or if you care about the cause of free culture and software and are willing to work pro bono with a group of dedicated volunteers from all over the world.</p><p>Interested? Please <a href="http://www.wildfiregames.com/forum/index.php?act=Reg&amp;coppa_pass=1">register</a> on our forums and start a new topic introducing yourself in the <a href="http://www.wildfiregames.com/forum/index.php?showforum=306">applications and contributions forum</a> following <a href="http://www.wildfiregames.com/forum/index.php?showtopic=11297">these instructions</a>.</p></blockquote><p>What kind of project are we talking about?</p><h3><a href="http://wildfiregames.com/0ad/" target="_blank">0 A.D.</a></h3><p><a href="http://wildfiregames.com/0ad/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B4%5D-7.png" alt="image" width="670" height="329" border="0"></a></p><blockquote><p>• Free and Open Source Software<br>• Cross-platform<br>• Historically based<br>• 6 unique civilizations<br>• Provinces and territories<br>• Realistic maps/terrain<br>• Realistic naval warfare<br>• Comprehensive editor<br>• Several multiplayer modes</p></blockquote><h4><a href="http://wildfiregames.com/0ad/page.php?c=46" target="_blank">Overview</a></h4><blockquote><p>0 A.D. (pronounced <em>&quot;zero ey-dee&quot;</em>) is a free, open-source, cross-platform real-time strategy (RTS) game of ancient warfare. In short, it is a historically-based war/economy game that allows players to relive or rewrite the history of Western civilizations, focusing on the years between 500 B.C. and 500 A.D. The project is highly ambitious, involving state-of-the-art 3D graphics, detailed artwork, sound, and a flexible and powerful custom-built game engine.</p><p>The game has been in development by Wildfire Games (WFG), a group of volunteer, hobbyist game developers, since 2001. The code and data are available under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPL</a> license, and the art, sound and documentation are available under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>. In short, we consider 0 A.D. an an educational celebration of game development and ancient history.</p><h4>Top features - Technical</h4><ul><li>The engine core is written in <strong>C&#43;&#43;</strong> for performance, but the scripting language, <strong>javascript</strong>, is what we try to write as much in as possible. </li><li><strong>Rendering:</strong> OpenGL with shaders </li><li><strong>Libraries used:</strong> OpenAL, OpenGL, Boost, Crypto&#43;&#43;, CxxTest, DevIL, SDL, SpiderMonkey, Vorbis, wxWidgets, Xerces </li><li>Operating Systems: <ul><li>Windows 2000, XP, 2003, XP64, Vista </li><li>Linux </li><li>Mac OS X </li></ul></li><li><strong>System Requirements:</strong> 1 GHz CPU, modern graphics card (GeForce 3 at minimum), 512 MB RAM </li><li><strong>Tools used:</strong> Visual Studio, g&#43;&#43;, CppDoc, COLLADA, Debugging and Profiling tools included </li></ul><h4>Graphics</h4><ul><li>OpenGL-based rendering engine with shaders </li><li>Hierarchal skeletal animation and deformation system based on COLLADA </li><li>Fancy animated water with refraction, reflection </li><li>Realistic shadows </li><li>Particle effects </li><li>Environmental lighting effects (time of day, sunset) </li><li>Flexible terrain renderer that uses alpha maps to seamlessly blend terrain </li></ul><h4>Gameplay</h4><ul><li><strong>Unique civilizations:</strong> In 0 A.D. each civilization will be unique in its appearance, units, structures, and technology trees. </li><li><strong>Citizen soldiers:</strong> There will be no standard villager unit. Instead, regular infantry and cavalry have not only military capabilities, but also economic, making them substantially more versatile than in typical RTS games. </li><li><strong>Unit auto-upgrading:</strong> Citizen Soldiers will gain experience and automatically gain promotions. With each rank, they become stronger, and don a unique appearance but also get gradually worse at civilian tasks. </li><li><strong>Units on structures and ships:</strong> Gone are the days of units disappearing into buildings and transport ships. Some garrisoned units will be visible on the battlements of structures or the decks of ships, and capable of firing on opponents at range. </li><li><strong>Realistic naval warfare:</strong> No more tiny ships sinking other ships with arrows. Ship gameplay will include a variety of new features in RTS games, like much larger ship sizes, ship capture, sea rams, and a modular design that allows catapults to be stationed on the decks, and units to fire from the bows. </li><li><strong>Choices, choices, and more choices:</strong> Technology trees branch out in a pair-based hierarchy. For example, when you are given the option of techs 1A and 1B and you choose 1A to research, 1B is no longer available. Some of the techs that are higher up on the tech ladder will require that tech 1A is done, while others will require tech 1B. This adds a level of strategy and 'randomness' to picking your techs, as availability of higher level techs will depend on your choices earlier in the game. Similar choices are available with unit formations and battle tactics. </li><li><strong>Provinces and territories:</strong> In some game types, the map is subdivided into provinces that must be captured and annexed into a player's territory in order to reap their valuable resources and construct forward bases in these areas. If the host wishes, a player's starting province can also be surrounded by attrition borders to reduce early rushes. </li><li><strong>Real world map realism:</strong> Random maps are based upon geographical regions where the civilizations of the ancient world lived. These will be generated with biome specific-to-location features that replicate the look and feel of the world as it existed 2,000 years ago: flora, fauna and terrain. </li></ul></blockquote><p>Sounds like something that would be hard to compile, doesn't it? All those third party libraries, etc? And I mentioned something about Visual Studio?</p><h4><a href="http://trac.wildfiregames.com/wiki/BuildInstructions" target="_blank">0 AD Build Instructions</a></h4><blockquote><p>This page describes how to get the very latest unstable version of the code. Unless you want to actively follow and contribute to development, you probably want the <a href="http://trac.wildfiregames.com/wiki/LatestRelease">latest relatively-stable release</a> instead.</p><p>The current release of the game is aimed at developers and not at 'normal' users. As such, the following instructions assume a reasonable level of technical proficiency. If you encounter difficulties, please post on the <a href="http://www.wildfiregames.com/forum/index.php?showforum=312">forum</a>.</p><h4>General prerequisites<a href="http://trac.wildfiregames.com/wiki/BuildInstructions#Generalprerequisites"> ¶</a></h4><p>You'll need:</p><ul><li>An adequately high-spec computer - several gigabytes of free disk space, preferably at least 1GB of RAM for compiling, a fast CPU unless you want to spend ages waiting for the compiler, etc. Modern graphics hardware is also recommended, though the game can run (slowly) on fairly old devices (GeForce 4, Intel 945GM, etc). </li><li>Up-to-date system software (Windows service packs, graphics driver updates, etc). </li><li>Some technical proficiency. We try to make the build process as smooth and painless as possible, but it's designed to be followed by programmers - if you just want to play the game, wait for a pre-packaged installer instead. </li></ul><h4>Windows<a href="http://trac.wildfiregames.com/wiki/BuildInstructions#Windows"> ¶</a></h4><p>Windows 7, Vista and XP are the main supported versions; 2000 should work too but is rarely tested. Visual C&#43;&#43; 2010 and 2008 are supported. Visual C&#43;&#43; 2005 may also work given a sufficiently modern Platform SDK. Only 32-bit builds are supported (though they can be compiled and run on 64-bit Windows). We have noticed occasional trouble with the free Express Editions; if possible, please consider acquiring the full version (e.g. via university programs). In particular, failures of the built-in self-test test_wdbg_sym.h seem to occur with VC2008 EE but not VC2008 nor VC2010 (c.f. <a href="http://trac.wildfiregames.com/ticket/884">#884</a>).</p><h5>Acquiring the code<a href="http://trac.wildfiregames.com/wiki/BuildInstructions#Acquiringthecode"> ¶</a></h5><p>The game's code, data and build environment are stored on a Subversion server. The recommended way to get an up-to-date copy is with TortoiseSVN:</p><ul><li>Download and install <a href="http://tortoisesvn.net/">TortoiseSVN</a>. (Make sure you reboot when it asks you to.) </li><li>Use TortoiseSVN to check out <tt>http://svn.wildfiregames.com/public/ps/trunk/</tt>. This may take a while, and will use around 1.2GB of disk space. If there are errors during the checkout, use TortoiseSVN's &quot;update&quot; to resume downloading. </li></ul><p>The <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html">TortoiseSVN manual</a> has information on <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html">checking out</a>, as well as <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-update.html">updating</a> and <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-patch.html">creating patches</a>.</p><p>(This is the read-only public SVN URL. If you have commit access, you need to use <tt>http://svn.wildfiregames.com/svn/ps/trunk/</tt> instead.)</p><h5>Setting up the build environment<a href="http://trac.wildfiregames.com/wiki/BuildInstructions#Settingupthebuildenvironment"> ¶</a></h5><p>The game must be compiled with Microsoft Visual C&#43;&#43;. If you already have Visual C&#43;&#43; 2005 or 2008 installed, make sure you have SP1 and then continue. Otherwise, you can get the free Express edition:</p><ul><li><a href="http://www.microsoft.com/express/Downloads/#2010-Visual-CPP">Visual C&#43;&#43; 2010 Express Edition</a> is recommended. </li><li>Or download and install <a href="http://www.microsoft.com/express/Downloads/#2008-Visual-CPP">Visual C&#43;&#43; 2008 Express Edition</a>. </li><li>If you have the old VC&#43;&#43; 2005 Express, you need to install the separate <a href="http://www.microsoft.com/express/2005/platformsdk/default.aspx">Platform SDK</a> (steps 1-3). </li></ul><p>The Visual Studio project/solution files are automatically generated from the source files:</p><ul><li>Run <tt>build/workspaces/update-workspaces.bat</tt>. </li><li>Open <tt>build/workspaces/vc2010/pyrogenesis.sln</tt>. (Use the <tt>vc2005</tt> directory for VC&#43;&#43; 2005 or the <tt>vc2008</tt> directory for VC&#43;&#43; 2008.) </li><li>... </li></ul></blockquote><p>So get the source from the SVN repository, run one batch file and launch the solution. Yep, it's really that easy.</p><p>Now the repository/source is huge (the installable version you can also download is 275MB, so you can image the size of source and assets... which is 3.16GB, which includes the post compile/build binaries) so it will take a while to grab it. But once you do, you should be able to build and run it in the debugger. (Well, at least I was... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Here's a <a href="http://www.windirstat.info" target="_blank">WinDirStat</a> snap of my tree, which is in a post build/compile state;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML23024551%5B3%5D.png" target="_blank"><img title="SNAGHTML23024551" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML23024551_thumb.png" alt="SNAGHTML23024551" width="650" height="379" border="0"></a>&nbsp;</p><p>So you get this pretty awesome RTS, you get the source and you get everything to build it too.</p><p>Here's a snap of the Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B8%5D-14.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-33.png" alt="image" width="249" height="353" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B12%5D-17.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B4%5D-26.png" alt="image" width="536" height="427" border="0"></a></p><p>The code is smartly commented (i.e. intent is commented and not just the code re-worded)</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML2305fc21%5B3%5D.png" target="_blank"><img title="SNAGHTML2305fc21" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML2305fc21_thumb.png" alt="SNAGHTML2305fc21" width="545" height="407" border="0"></a></p><p>If you've always wished you could work on a big game, you love the idea of helping out in build an RTS or just wonder what the source of one would look like, this project is looking for you...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4aefc25cf5c3454bbd979fe60114dcb9">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/0-AD-The-C-open-source-RTS-thats-looking-for-game-dev-geeks-not-that-youre-a-geek</comments>
      <itunes:summary>Today&#39;s project is a little outside our usual, delving into C&amp;#43;&amp;#43;, but one that I still thought pretty cool. And since it compiles with VS 2005, VS2008 or VS2010 and is &amp;quot;Fun&amp;quot; I thought it might be something you all might like too.This project is still in an Alpha state, but that&#39;s actually good, since it means that if you want to help them out on it, you can get in closer to the ground floor...I said, &amp;quot;help out?&amp;quot; Yep, they are actively looking for your help...We are seeking contributors in programming, art, sound, web design, taking YouTube videos and more.These roles on the 0 A.D. development team are great if you want to brush up on your skills and update your portfolio, if you&#39;re seeking a project for school with real-life applications, or if you care about the cause of free culture and software and are willing to work pro bono with a group of dedicated volunteers from all over the world.Interested? Please register on our forums and start a new topic introducing yourself in the applications and contributions forum following these instructions.What kind of project are we talking about?0 A.D.• Free and Open Source Software• Cross-platform• Historically based• 6 unique civilizations• Provinces and territories• Realistic maps/terrain• Realistic naval warfare• Comprehensive editor• Several multiplayer modesOverview0 A.D. (pronounced &amp;quot;zero ey-dee&amp;quot;) is a free, open-source, cross-platform real-time strategy (RTS) game of ancient warfare. In short, it is a historically-based war/economy game that allows players to relive or rewrite the history of Western civilizations, focusing on the years between 500 B.C. and 500 A.D. The project is highly ambitious, involving state-of-the-art 3D graphics, detailed artwork, sound, and a flexible and powerful custom-built game engine.The game has been in development by Wildfire Games (WFG), a group of volunteer, hobbyist game developers, since 2001. The code and data are available under the GPL license</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/0-AD-The-C-open-source-RTS-thats-looking-for-game-dev-geeks-not-that-youre-a-geek</link>
      <pubDate>Wed, 01 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/0-AD-The-C-open-source-RTS-thats-looking-for-game-dev-geeks-not-that-youre-a-geek</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/33ae30e3-b3eb-4822-a5ed-03b915acea87.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/b96665a4-9b1a-4aea-9073-1a878b99e1f6.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/0-AD-The-C-open-source-RTS-thats-looking-for-game-dev-geeks-not-that-youre-a-geek/RSS</wfw:commentRss>
      <category>C++</category>
      <category>Coding4Fun</category>
      <category>PC games</category>
    </item>
  <item>
      <title>Bones, I&#39;m just a Skeleton... A the full skeleton tutorial</title>
      <description><![CDATA[<p>The second project in our &quot;skeleton week&quot; takes us a little further down the path of understanding and using this feature of the Kinect for Windows SDK</p><h2>Getting started with Microsoft Kinect SDK - The Full Skeleton</h2><blockquote><p>Article Index</p><ul><li><a href="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html">Getting started with Microsoft Kinect SDK - The Full Skeleton</a> </li><li><a href="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html?start=1">Drawing the body</a> </li><li><a href="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html?start=2">Joining the Bones</a> </li></ul><p>So far in this series we've covered the visual and depth inputs and started to look at skeletonization. In this part we get down to the bare bones of the skeleton.</p><h6>Other Articles in this Series</h6><ol><li><a href="http://www.i-programmer.info/programming/hardware/2623-getting-started-with-microsoft-kinect-sdk.html">Getting started with Microsoft Kinect SDK </a></li><li><a href="http://www.i-programmer.info/programming/hardware/2714-getting-started-with-microsoft-kinect-sdk-depth.html">Depth </a></li><li><a href="http://www.i-programmer.info/programming/hardware/2791-getting-started-with-microsoft-kinect-sdk-player-index.html">Player index</a> </li><li><a href="http://www.i-programmer.info/programming/hardware/2822-getting-started-with-microsoft-kinect-sdk-depth-and-video-space-.html">Depth and Video space</a> </li><li><a href="http://www.i-programmer.info/programming/hardware/3503-getting-started-with-microsoft-kinect-sdk-skeletons.html">Skeletons </a></li><li><a href="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html">The Full Skeleton</a> (this article) </li></ol><p>While there is a very good example of how to draw a complete skeleton in the SDK it isn't explained in detail and, in common with most examples, it does things in clever and correct ways. This makes it a piece of code to admire but only if you can work out what it is doing and how. In this article the objective is not only to create a full skeleton graphic but to make it perfectly clear how it is done.</p><p>First a small digression into GDI graphics.</p><p>...</p><h4>Getting started with the full Skeleton</h4><p>As explained in the previous article, the Kinect doesn't return a skeleton, just a set of joints that it has detected. It is entirely up to us what to do with this set of joints. One of the problems with the example skeleton viewer is that at first look you might think that something clever was going on that relied on the way that the Kinect returns the data.</p><p>Let's try and draw a skeleton in a step-by-step way that shows how it all works. The instructions that follow just get you to the point where the SkeletonFrameReady methods is called as described in the<a href="http://www.i-programmer.info/programming/hardware/3503-getting-started-with-microsoft-kinect-sdk-skeletons.html"> previous article</a>.</p><p>Start a new C# Windows Forms project.</p><p>...</p><p>Now to display the image we simply need to write the code for the FrameReady event handler. However we are going to want to modify the video returned from the camera by adding a small cross at the position of the players head. To do this we will store the video frame in a global variable and allow the SkeletonFrameReady event handler to actually do the displaying of the video frame.</p><p>So the FrameReady method is:</p><pre>void FrameReady(object sender, <br>            ImageFrameReadyEventArgs e)<br>{<br> videoimage= e.ImageFrame.Image;<br>}</pre><p>The videoimage variable is just a global PlanarImage:</p><pre>PlanarImage videoimage;</pre><p>Now we need to define the SkeletonFrameReady event handler to simply show the video. It has to check first to make sure that an image has been stored in the videoimage:</p><pre>void SkeletonFrameReady(object sender,<br>        SkeletonFrameReadyEventArgs e)<br>{<br> if (videoimage.Bits == null) return;</pre><p>We can't display a PlanarImage in, say, a PictureBox unless we first convert it to an Image object. How to do this was covered in <a href="http://www.i-programmer.info/programming/hardware/2623-getting-started-with-microsoft-kinect-sdk.html">Part 1</a> of this series, so the method that does the job PImageToBitmap is simply quoted:</p><p>...</p><h4>Drawing the Body</h4><p>Now that we have the video frame as a bitmap we can start to draw the skeleton on it. First we need a Graphics object:</p><p>Graphics g = Graphics.FromImage(bmap);</p><p>Our next problem is to find the positions of each of the joints that makeup the &quot;body&quot; of the skeleton. If you look at the diagram that gives the names of the joints you can see that we need the positions of the Head, Shoulder Center, Spine and Hip Center.</p><p>....</p><h4>Drawing a Bone</h4><p>it should be obvious that what we have to do next is draw a line between ShoulderCenter and Spine. Clearly this is just a repeat of what we have already done so this suggests another helper function:</p><pre>void DrawBone(JointID j1,<br>              JointID j2, <br>              SkeletonData data, <br>              Graphics g)<br>{<br> Point p1=GetJoint(j1,data);<br> Point p2 = GetJoint(j2, data);<br> g.DrawLine(Pens.Red, p1, p2);<br>}</pre><p>This will draw a line between the two specified Joints. So to draw the body all we need is:</p><p>...</p><p>Now if you run the program you will see a complete skeleton plot.</p><p>You can argue that there are better ways to organize the code but you have to have a list of the joints you want to draw lines between somewhere.</p><p>If you want to try taking it further why not change the drawing of the head for an ellipse and a rectangle for the body. It is all fairly easy.</p><p>...</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html" href="http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html">http://www.i-programmer.info/programming/hardware/3657-getting-started-with-microsoft-kinect-sdk-the-full-skeleton.html</a></p><p>&nbsp;</p><p>Page image, <a href="http://www.flickr.com/photos/thunderchild5/389605926/in/photostream/" target="_blank">America's Next Top Model</a>, courtesy of <a href="http://www.flickr.com/photos/thunderchild5/">Thunderchild7</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:acee68bf021547e0bdbd9fe6012ec303">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Bones-Im-just-a-Skeleton-A-the-full-skeleton-tutorial</comments>
      <itunes:summary>The second project in our &amp;quot;skeleton week&amp;quot; takes us a little further down the path of understanding and using this feature of the Kinect for Windows SDKGetting started with Microsoft Kinect SDK - The Full SkeletonArticle IndexGetting started with Microsoft Kinect SDK - The Full Skeleton Drawing the body Joining the Bones So far in this series we&#39;ve covered the visual and depth inputs and started to look at skeletonization. In this part we get down to the bare bones of the skeleton.Other Articles in this SeriesGetting started with Microsoft Kinect SDK Depth Player index Depth and Video space Skeletons The Full Skeleton (this article) While there is a very good example of how to draw a complete skeleton in the SDK it isn&#39;t explained in detail and, in common with most examples, it does things in clever and correct ways. This makes it a piece of code to admire but only if you can work out what it is doing and how. In this article the objective is not only to create a full skeleton graphic but to make it perfectly clear how it is done.First a small digression into GDI graphics....Getting started with the full SkeletonAs explained in the previous article, the Kinect doesn&#39;t return a skeleton, just a set of joints that it has detected. It is entirely up to us what to do with this set of joints. One of the problems with the example skeleton viewer is that at first look you might think that something clever was going on that relied on the way that the Kinect returns the data.Let&#39;s try and draw a skeleton in a step-by-step way that shows how it all works. The instructions that follow just get you to the point where the SkeletonFrameReady methods is called as described in the previous article.Start a new C# Windows Forms project....Now to display the image we simply need to write the code for the FrameReady event handler. However we are going to want to modify the video returned from the camera by adding a small cross at the position of the players head. To do this we</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Bones-Im-just-a-Skeleton-A-the-full-skeleton-tutorial</link>
      <pubDate>Wed, 01 Feb 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Bones-Im-just-a-Skeleton-A-the-full-skeleton-tutorial</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/03ef7be3-b5d9-4554-a513-8a0428fffcd7.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/bae23a42-37eb-44f3-93d8-45ff341f6864.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Bones-Im-just-a-Skeleton-A-the-full-skeleton-tutorial/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Simple example for implementing skeletal tracking</title>
      <description><![CDATA[<p>To kick off our &quot;Skeleton Week&quot; we're going to start with a simple, getting start project.</p><h2>Kinect Fundamentals #4: Implementing Skeletal Tracking</h2><blockquote><p>Hi and welcome to tutorial #4 in my Kinect Fundamentals tutorial. In this tutorial, I will show you how you can implement Skeletal Tracking using the Kinect SDK for Windows API, and how you can move a cursor by using your hand.</p><p>It’s very simple, and it is quite similar to the approaches we have used in the previous tutorials.</p></blockquote><p><strong>Project Information URL:</strong> <a title="https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/" href="https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/">https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/</a></p><p><strong>Project Source URL:</strong> <a href="http://digitalerr0r.darkcodex.net/Tutorials/kinect4tutorial.zip">http://digitalerr0r.darkcodex.net/Tutorials/kinect4tutorial.zip</a></p><p><a href="https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B7%5D-3.png" alt="image" width="357" height="384" border="0"></a></p><p><a href="https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B3%5D-11.png" alt="image" width="520" height="330" border="0"></a></p><p>Contact Information:</p><ul><li>Blog: <a title="https://digitalerr0r.wordpress.com/" href="https://digitalerr0r.wordpress.com/">https://digitalerr0r.wordpress.com/</a> </li><li>Twitter: <a href="https://twitter.com/#!/petriw" target="_blank">@petriw</a> </li></ul><p>&nbsp;</p><p>Page image,<a href="http://www.flickr.com/photos/shortfatkid/4462921235/" target="_blank">a horse with no name</a>, courtesy of <a href="http://www.flickr.com/photos/shortfatkid/">guy schmidt</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b4bcbae6fc1a4ab394469fe6012b7e1b">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Simple-example-for-implementing-skeletal-tracking</comments>
      <itunes:summary>To kick off our &amp;quot;Skeleton Week&amp;quot; we&#39;re going to start with a simple, getting start project.Kinect Fundamentals #4: Implementing Skeletal TrackingHi and welcome to tutorial #4 in my Kinect Fundamentals tutorial. In this tutorial, I will show you how you can implement Skeletal Tracking using the Kinect SDK for Windows API, and how you can move a cursor by using your hand.It’s very simple, and it is quite similar to the approaches we have used in the previous tutorials.Project Information URL: https://digitalerr0r.wordpress.com/2011/12/13/kinect-fundamentals-4-implementing-skeletal-tracking/Project Source URL: http://digitalerr0r.darkcodex.net/Tutorials/kinect4tutorial.zipContact Information:Blog: https://digitalerr0r.wordpress.com/ Twitter: @petriw &amp;nbsp;Page image,a horse with no name, courtesy of guy schmidt</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Simple-example-for-implementing-skeletal-tracking</link>
      <pubDate>Tue, 31 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Simple-example-for-implementing-skeletal-tracking</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/9dddb5d3-4248-4778-9a88-9daffef125ec.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/1947b955-bf5a-45da-9fa9-4bcce90a7b05.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Simple-example-for-implementing-skeletal-tracking/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Say No to the noise... Real-Time Kinect depth frame smoothing</title>
      <description><![CDATA[<p>This is going to be an exciting week for the Kinect for Windows device and SDK and I wouldn't be surprised if we don't have some &quot;Special Edition&quot; posts later this week. But in the mean time, we're going to be talking code this week. The rest of this week is going to be a &quot;Skeleton&quot; week, but today's project is one that fired up the Coding4Fun team (I got a number of, &quot;Hey did you see this?&quot; emails...lol).</p><p>We've all seen depth &quot;images&quot; right? And we've all seen that they appear a little noisy/blotchy? Well Karl Sanford saw the same thing and decided to apply some smooth moves to the problem...</p><h2>Smoothing Kinect Depth Frames in Real-Time</h2><blockquote><p>Removing noise from the Kinect Depth Frames in real-time using pixel filters and weighted moving average techniques.</p><p>I've been working with the Microsoft Kinect for Xbox 360 on my PC for a few months now, and overall I find it fantastic! However, one thing that has continued to bug me is the seemingly poor quality of rendered Depth Frame images. There is a lot of noise in a Depth Frame, with missing bits and a pretty serious flickering issue. The frame rate isn't bad from the Kinect, with a maximum of around 30 fps; however, due to the random noise present in the data, it draws your perception to the refresh. In this article I am going to show you my solution to this problem. I will be smoothing Depth Frames in real-time as they come from the Kinect, and are rendered to the screen. This is accomplished through two combined methods: pixel filtering, and weighted moving average.</p><p>...</p><h4>The Problem of Depth Data</h4><p>Before I dive into the solution, let me better express the problem. Below is a screen shot of raw depth data rendered to an image for reference. Objects that are closer to the Kinect are lighter in color and objects that are further away are darker.</p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B2%5D-82.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb-77.png" alt="image" width="417" height="330" border="0"></a></p><p>What you're looking at is an image of me sitting at my desk. I'm sitting in the middle; there is a bookcase to the left and a fake Christmas tree to the right. As you can already tell, even without the flickering of a video feed, the quality is pretty low. The maximum resolution that you can get for depth data from the Kinect is 320x240, but even for this resolution the quality looks poor indeed. The noise in the data manifests itself as white spots continuously popping in and out of the picture. Some of the noise in the data comes from the IR light being scattered by the object it’s hitting, some comes from shadows of objects closer to the Kinect. I wear glasses and often have noise where my glasses should be due to the IR light scattering.</p><p>Another limitation to the depth data is that it has a limit to how far it can see. The current limit is about 8 meters. Do you see that giant white square behind me in the picture? That's not an object close to the Kinect; the room I'm in actually extends beyond that white square about another meter. This is how the Kinect handles objects that it can't see with depth sensing, returning a depth of Zero.</p><h4>The Solution</h4><p>As I had mentioned briefly, the solution I have developed uses two different methods of smoothing the depth data: pixel filtering, and weighted moving average. The two methods can either be used separately or in series to produce a smoothed output. While the solution doesn't completely remove all noise, it does make an appreciable difference. The solutions I have used do not degrade the frame rate and are capable of producing real-time results for output to a screen or recording.</p><p>...</p><p><a href="http://www.codeproject.com/Articles/317974/KinectDepthSmoothing" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B10%5D-3.png" alt="image" width="501" height="384" border="0"></a></p><p>As you can see, the demo application will do a side by side comparison of the Raw Depth Image and the Smoothed Depth Image. You can experiment with the smoothing settings in the application as well. The settings that you will find when you first run the application are what I recommend for general purpose use. It provides a good mix of smoothing for stationary objects, moving objects, and doesn't try to &quot;fill in&quot; too much from the filtering method.</p><p>For example: You can turn both band filters down to 1, and turn the weighted moving average up to 10, and you'll have the lowest flicker and noise for stationary blunt objects. However, once you move, you will have a very noticeable trail, and your fingers will all look like they are webbed if you don't have a wall close behind you.</p><h4>Points of Interest</h4><p>I have really enjoyed playing around with these smoothing techniques and learning that there is probably no 'one-size-fits-all' solution for it. Even with the same hardware, your physical environment and intentions will drive your choice for smoothing more than anything. I would like to encourage you to open the code and take a look for yourself, and share your ideas for improvement! At the very least, go borrow your neighbor kid’s Kinect for a day and give the demo application a whirl.</p><p>Another point of interest has been in seeing how reducing noise for rendering purposes can actually introduce noise for depth calculation purposes. The pixel filtering method of reducing noise works well on it's own to reduce noise in depth information prior to further calculations; removing 'white' noise and providing a best guess as to what that information should be. The weighted moving average method works well to reduce noise prior to rendering, but will actually introduce noise along the Z,Y perspective due to the effects of averaging depth information. I hope to continue learning about these effects and how to use them properly for different types of applications.</p><p>...</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://www.codeproject.com/Articles/317974/KinectDepthSmoothing" href="http://www.codeproject.com/Articles/317974/KinectDepthSmoothing">http://www.codeproject.com/Articles/317974/KinectDepthSmoothing</a></p><p><strong>Project Download URL</strong>: <a href="http://www.codeproject.com/KB/audio-video/317974/KinectDepthSmoothingBin3.zip">http://www.codeproject.com/KB/audio-video/317974/KinectDepthSmoothingBin3.zip</a></p><p><strong>Project Source URL:</strong> <a href="http://www.codeproject.com/KB/audio-video/317974/KinectDepthSmoothingSrc3.zip">http://www.codeproject.com/KB/audio-video/317974/KinectDepthSmoothingSrc3.zip</a></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/YZ64kJ--aeg&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/YZ64kJ--aeg&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><a href="http://www.codeproject.com/Articles/317974/KinectDepthSmoothing" target="_blank"><img title="SNAGHTML234020c2" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML234020c2%5B5%5D.png" alt="SNAGHTML234020c2" width="500" height="336" border="0"></a></p><p>Contact Information:</p><ul><li>Twitter: <a href="https://twitter.com/#!/@krsanford" target="_blank">@krsanford</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ba01cd679b7b410a93d49fe601263783">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Say-No-to-the-noise-Real-Time-Kinect-depth-frame-smoothing</comments>
      <itunes:summary>This is going to be an exciting week for the Kinect for Windows device and SDK and I wouldn&#39;t be surprised if we don&#39;t have some &amp;quot;Special Edition&amp;quot; posts later this week. But in the mean time, we&#39;re going to be talking code this week. The rest of this week is going to be a &amp;quot;Skeleton&amp;quot; week, but today&#39;s project is one that fired up the Coding4Fun team (I got a number of, &amp;quot;Hey did you see this?&amp;quot; emails...lol).We&#39;ve all seen depth &amp;quot;images&amp;quot; right? And we&#39;ve all seen that they appear a little noisy/blotchy? Well Karl Sanford saw the same thing and decided to apply some smooth moves to the problem...Smoothing Kinect Depth Frames in Real-TimeRemoving noise from the Kinect Depth Frames in real-time using pixel filters and weighted moving average techniques.I&#39;ve been working with the Microsoft Kinect for Xbox 360 on my PC for a few months now, and overall I find it fantastic! However, one thing that has continued to bug me is the seemingly poor quality of rendered Depth Frame images. There is a lot of noise in a Depth Frame, with missing bits and a pretty serious flickering issue. The frame rate isn&#39;t bad from the Kinect, with a maximum of around 30 fps; however, due to the random noise present in the data, it draws your perception to the refresh. In this article I am going to show you my solution to this problem. I will be smoothing Depth Frames in real-time as they come from the Kinect, and are rendered to the screen. This is accomplished through two combined methods: pixel filtering, and weighted moving average....The Problem of Depth DataBefore I dive into the solution, let me better express the problem. Below is a screen shot of raw depth data rendered to an image for reference. Objects that are closer to the Kinect are lighter in color and objects that are further away are darker.What you&#39;re looking at is an image of me sitting at my desk. I&#39;m sitting in the middle; there is a bookcase to the left and a fake Christmas tree to the r</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Say-No-to-the-noise-Real-Time-Kinect-depth-frame-smoothing</link>
      <pubDate>Mon, 30 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Say-No-to-the-noise-Real-Time-Kinect-depth-frame-smoothing</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f46a6c4e-b0b0-4250-b1df-43f6b9283911.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/73c8294b-0523-4937-84aa-7be09e33b26c.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Say-No-to-the-noise-Real-Time-Kinect-depth-frame-smoothing/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Where there&#39;s smoke, fire and explosions... there&#39;s the 3D particle engine, Tranquility</title>
      <description><![CDATA[<p>Today's Mobile Monday project is one that's both simple, yet complicated. Simple in that this project is just one piece of the overall picture of where you can use it. Complicated in that this might be something the average dev might not be able to just knock out.</p><p>Let's say you're writing a cool game and you need an explosion to cap it off. You'd don't want a cheesy one, but your not sure where else to go?</p><p>Go here...</p><h2><a href="http://tranquillity.codeplex.com/" target="_blank">Tranquility 3D Particle Engine</a></h2><blockquote><p>Tranquility is a compact, easy to use and highly extendible <strong>3D </strong>particle system for Windows Phone 7 XNA projects.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-32.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-31.png" alt="image" width="442" height="407" border="0"></a></p><p>For installation/integration, check out the <a href="http://tranquillity.codeplex.com/wikipage?title=Getting%20Started">Getting Started Guide</a>. To learn how to use Tranquility check out <a href="http://tranquillity.codeplex.com/wikipage?title=Using%20Tranquillity">Using Tranquility</a>.</p></blockquote><p><strong><a href="http://tranquillity.codeplex.com/wikipage?title=Using%20Tranquillity" target="_blank">Using Tranquility</a></strong></p><blockquote><p>Using Tranquility is easy; most tasks can be achieved in a couple of lines of code. The demo project included with the source showcases more advanced scenarios including AppHub’s fire, smoke and explosion samples.</p><h4>Particle Manager</h4><p>All particle properties, behavior and drawing are managed by Tranquility's <em><strong>ParticleManager</strong>. </em><em><strong>ParticleManager</strong></em> is a <em><strong>DrawableGameComponent</strong></em> that can simply be added to your Game’s component collection.</p><p>....</p><p><strong>Using Tranquility</strong></p><p>Using Tranquility is easy; most tasks can be achieved in a couple of lines of code. The demo project included with the source showcases more advanced scenarios including AppHub’s fire, smoke and explosion samples.</p><h4>Particle Manager</h4><p>All particle properties, behavior and drawing are managed by Tranquility's <em><strong>ParticleManager</strong>. </em><em><strong>ParticleManager</strong></em> is a <em><strong>DrawableGameComponent</strong></em> that can simply be added to your Game’s component collection.</p><p>The <em><strong>ParticleManager </strong></em>needs to know how your world is being viewed. Use the <em><strong>SetMatrices</strong></em> method to set the view and projection matrices.</p><h4>Particle Systems</h4><p>A <em>ParticleSystem</em> defines a group of particles that share a texture representation. There are two base particle system types in Tranquility:</p><ul><li><strong>StaticParticleSystem: </strong>All particles in this system have static properties. Once a particle is added to this system type, it cannot move, grow, change color, etc. Although particles can be added and removed to/from this system on the fly, it is ideal for static allocation of particles. </li><li><strong>DynamicParticleSystem:</strong>A dynamic particle system contains particles that can have a velocity, rotation, lifespan and can be affected by various affectors. <h5><em>Creating and registering a particle system</em></h5><p>To create a system, specify the maximum capacity and the texture to be used for this system in the <em><strong>LoadContent</strong></em> method. For example, create a dynamic particle system:</p><ul><li><p>..</p></li><li><h4>Particles</h4><p>The overloaded <em>AddParticle</em> method can be used to add particles to any system. The <em><strong>RandomHelper</strong></em> class can be used to randomize the generation of particles. For example:</p><p>particleSystem.AddParticle(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>RandomHelper.Vector3Between(Vector3.Up, Vector3.Down),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>RandomHelper.Color(),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>RandomHelper.NormalizedVector3(),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>RandomHelper.Float(),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>TimeSpan.FromSeconds(RandomHelper.IntBetween(1, 3))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>);</p></li></ul><h4>Particle Emitters</h4><p>Emission of particles can be automated using a particle emitter. To create a custom particle emitter, implement the <em><strong>IParticleEmitter</strong></em> interface:</p><pre>   1:  public class CustomParticleEmitter : IParticleEmitter </pre><p>Implementing the <strong><em>Update</em></strong> method will allow the emitter to automatically emit particles in the particle system it is added to. The <strong><em>Emit </em></strong>method can be used to emit particles manually.</p><p>...</p></li><li><h4>Particle Affectors</h4><p>A particle affector can affect one or more properties of all particles in a system. There are three default affectors in Tranquillity that use the particle’s age as the time factor:</p></li><li><strong>Decelerate:</strong> Slows a particle down to a complete stop towards the end of its lifespan. This affectors affects only particles that have a velocity. </li><li><strong>Fadeout:</strong> Reduces the alpha of a particle until it becomes completely transparent towards the end of its lifespan. </li><li><strong>Shrink:</strong>Reduces the size of a particle until it disappears completely towards the end of its lifespan. <ul><li>... </li></ul></li></ul></blockquote><p>Here's a snap of the Solution. As you can see, it's not crazy or insanely complicated (nor uses another other libraries).</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B6%5D-26.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-32.png" alt="image" width="283" height="427" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B18%5D-6.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B7%5D-18.png" alt="image" width="234" height="427" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B14%5D-13.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B6%5D-20.png" alt="image" width="327" height="324" border="0"></a></p><p>Here's a snip from the Demo;</p><p><pre class="brush: csharp">public FireParticleSystem(int maxCapacity, Texture2D texture)
     : base(maxCapacity, texture)
{

}

public override void Update(GameTime gameTime)
{
     EmitParticles(gameTime);

     foreach (DynamicParticle particle in liveParticles)
     {
         particle.Color = Color.Lerp(particle.InitialColor, new Color(1.0f, 1.0f, 1.0f, 0.0f), 1.0f - particle.Age.Value);
         particle.Scale &#43;= 0.001f;
     }

     base.Update(gameTime);
}

private void EmitParticles(GameTime gameTime)
{
     particlesEmitted &#43;= (float)gameTime.ElapsedGameTime.TotalSeconds * (float)EmissionRate;

     int emittedCount = (int)particlesEmitted;

     if (emittedCount &gt; 0)
     {
         for (int i = 0; i &lt; emittedCount; i&#43;&#43;)
         {
             AddParticle(
                 RandomPointOnCircle(),
                 new Color(255, 255, 255, 100),
                 RandomHelper.Vector3Between(new Vector3(-0.25f, 0.0f, 0.0f), new Vector3(0.25f, 1.0f, 0.0f)),
                 RandomHelper.FloatBetween(-0.01f, 0.1f),
                 TimeSpan.FromSeconds(RandomHelper.IntBetween(1, 2)),
                 true,
                 RandomHelper.FloatBetween(0.0f, MathHelper.TwoPi),
                 RandomHelper.FloatBetween(0.05f, 0.075f));
         }

         particlesEmitted -= emittedCount;
     }
}
</pre></p><p>This is one of those projects that will help you add that final touch, help you apply a nice bit of polish to your app or game...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:a2cab9a27f8743299a3c9fe601081a06">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Where-theres-smoke-fire-and-explosions-theres-the-3D-particle-engine-Tranquility</comments>
      <itunes:summary>Today&#39;s Mobile Monday project is one that&#39;s both simple, yet complicated. Simple in that this project is just one piece of the overall picture of where you can use it. Complicated in that this might be something the average dev might not be able to just knock out.Let&#39;s say you&#39;re writing a cool game and you need an explosion to cap it off. You&#39;d don&#39;t want a cheesy one, but your not sure where else to go?Go here...Tranquility 3D Particle EngineTranquility is a compact, easy to use and highly extendible 3D particle system for Windows Phone 7 XNA projects.For installation/integration, check out the Getting Started Guide. To learn how to use Tranquility check out Using Tranquility.Using TranquilityUsing Tranquility is easy; most tasks can be achieved in a couple of lines of code. The demo project included with the source showcases more advanced scenarios including AppHub’s fire, smoke and explosion samples.Particle ManagerAll particle properties, behavior and drawing are managed by Tranquility&#39;s ParticleManager. ParticleManager is a DrawableGameComponent that can simply be added to your Game’s component collection.....Using TranquilityUsing Tranquility is easy; most tasks can be achieved in a couple of lines of code. The demo project included with the source showcases more advanced scenarios including AppHub’s fire, smoke and explosion samples.Particle ManagerAll particle properties, behavior and drawing are managed by Tranquility&#39;s ParticleManager. ParticleManager is a DrawableGameComponent that can simply be added to your Game’s component collection.The ParticleManager needs to know how your world is being viewed. Use the SetMatrices method to set the view and projection matrices.Particle SystemsA ParticleSystem defines a group of particles that share a texture representation. There are two base particle system types in Tranquility:StaticParticleSystem: All particles in this system have static properties. Once a particle is added to this system type, it cannot move, </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Where-theres-smoke-fire-and-explosions-theres-the-3D-particle-engine-Tranquility</link>
      <pubDate>Mon, 30 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Where-theres-smoke-fire-and-explosions-theres-the-3D-particle-engine-Tranquility</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/0bf134b1-ea8b-4e4d-8454-005210d6add7.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/7b99b717-36c8-4789-b1e4-28958725517c.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Where-theres-smoke-fire-and-explosions-theres-the-3D-particle-engine-Tranquility/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Windows Phone 7</category>
      <category>XNA</category>
    </item>
  <item>
      <title>Using the Kinect to teach CPR</title>
      <description><![CDATA[<p>The final inspirational project in our run up to v1 week is a project that looks to use the Kinect to help save lives by teaching CPR.</p><h2>Mini-VREM Project</h2><blockquote><p>The main objective of this research project is the development of a low-cost training platform for quality cardiopulmonary resuscitation of lay and health care personnel.</p><p>In a previous work published on Resuscitation, Virtual reality enhanced mannequin (VREM) that is well received by resuscitation experts, We concluded that the prototype of a VREM was met with enthusiastic interest, unaffected by the need of utilizing interaction devices and deserves full technological development (for example movements, improvement of facial signs, and animation in different clinical scenarios) and validation in emergency care training.</p><p>The proposed training platform is composed of a traditional manikin for the physical interaction and Kinect Sensor, that will be automatically and reconstruct trainee’s hands position and posture while performing chest compressions.</p><p>...</p></blockquote><p>Project Information URL: <a title="http://www.kapipal.com/mini-vrem" href="http://www.kapipal.com/mini-vrem">http://www.kapipal.com/mini-vrem</a></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/jTPg2C3N7hM&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/jTPg2C3N7hM&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><a href="http://www.kapipal.com/mini-vrem" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B9%5D-9.png" alt="image" width="520" height="296" border="0"></a></p><p><a href="http://www.kapipal.com/mini-vrem" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B10%5D-2.png" alt="image" width="520" height="235" border="0"></a></p><p><a href="http://www.kapipal.com/mini-vrem" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B11%5D-17.png" alt="image" width="520" height="247" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:07110b8ce3d34aa29a629fdf01335cc3">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Using-the-Kinect-to-teach-CPR</comments>
      <itunes:summary>The final inspirational project in our run up to v1 week is a project that looks to use the Kinect to help save lives by teaching CPR.Mini-VREM ProjectThe main objective of this research project is the development of a low-cost training platform for quality cardiopulmonary resuscitation of lay and health care personnel.In a previous work published on Resuscitation, Virtual reality enhanced mannequin (VREM) that is well received by resuscitation experts, We concluded that the prototype of a VREM was met with enthusiastic interest, unaffected by the need of utilizing interaction devices and deserves full technological development (for example movements, improvement of facial signs, and animation in different clinical scenarios) and validation in emergency care training.The proposed training platform is composed of a traditional manikin for the physical interaction and Kinect Sensor, that will be automatically and reconstruct trainee’s hands position and posture while performing chest compressions....Project Information URL: http://www.kapipal.com/mini-vrem</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Using-the-Kinect-to-teach-CPR</link>
      <pubDate>Fri, 27 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Using-the-Kinect-to-teach-CPR</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/dca8b099-44dc-4c78-8f8e-399859720fd7.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/2fc57a53-fd78-4ca3-a2d9-ece9f0db916f.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Using-the-Kinect-to-teach-CPR/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Home Automation, Kinect, Netduino (and a Squirt Gun), oh my...</title>
      <description><![CDATA[<p>Today's Hardware Friday post comes to us from Dan Thyer (<a href="https://twitter.com/#!/LogicalDan" target="_blank">@LogicalDan</a>) and takes us back to the Netduino and Kinect world (plus just looks kind of fun).</p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/FWINsKcP8oQ&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/FWINsKcP8oQ&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><h3><a href="http://www.codeproject.com/Articles/314774/Home-Automation-with-Netduino-and-Kinect" target="_blank">Home Automation with Netduino and Kinect</a></h3><blockquote><p>Home automation has been an interest of mine for a long time. There is a bunch of bad technology in the marketplace and the products are too expensive so I decided to build my own. I started out with the Arduino microcontroller which was really fun but the code quickly became hard to maintain because it was not object oriented. Additionally it could not do multithreading or real debugging with breakpoints and such. I refactored the code for C# and the .NET Micro Framework. I choose the netduino plus, <a href="http://www.netduino.com/netduinoplus/specs.htm">http://www.netduino.com/netduinoplus/specs.htm</a>, for the microcontroller which has a built in Ethernet adapter for network communication.</p><p>...</p><h4>Netduino Controlled Squirt Gun</h4><p>The first project that I built was a servo controlled squirt gun for the pool. The code that I wrote for the netduino controls the servos to spray the gun in different patterns in the pool. I then built a Windows Phone 7 interface to aim the servos to the position on the screen where you touch. I used IIS live smooth streaming to stream video to the phone so you could remotely nail the kids in the pool from anywhere. I had mixed results with the video piece and at some point I need to spend more time perfecting and reducing the buffering time to make it more real time.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-31.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-30.png" alt="image" width="327" height="407" border="0"></a></p><p>...</p><h4>Kinect</h4><p>One of my colleagues in the office started doing projects with the Microsoft Kinect which has a rich SDK complete with drivers, APIs and plenty of good sample code. The Kinect has a bunch of sensors including a RGB camera, depth sensor and multi-array microphone. With a Kinect, you are the controller! I got the idea of using the Kinect for the controller of the squirt gun in the pool. You can now aim the gun by pointing to where you want it to shoot. The trigger is controlled by bending your other arm so that the hand is above the elbow joint. Plugging in the Kinect for the controller was really simple because of the rich Kinect API and because I had already written the back end tiers to communicate with the netduino microcontroller.</p></blockquote><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/uRda2k9DTx8&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/uRda2k9DTx8&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/cIvLcr7VICE&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/cIvLcr7VICE&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><a href="http://www.codeproject.com/Articles/314774/Home-Automation-with-Netduino-and-Kinect" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B6%5D-25.png" alt="image" width="540" height="407" border="0"></a></p><p><a href="http://www.codeproject.com/Articles/314774/Home-Automation-with-Netduino-and-Kinect" target="_blank"><img title="SNAGHTML247e929d" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML247e929d%5B4%5D.png" alt="SNAGHTML247e929d" width="558" height="407" border="0"></a></p><p><a href="http://www.codeproject.com/Articles/314774/Home-Automation-with-Netduino-and-Kinect" target="_blank"><img title="SNAGHTML247edeba" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML247edeba%5B4%5D.png" alt="SNAGHTML247edeba" width="576" height="407" border="0"></a></p><p><a href="http://www.codeproject.com/Articles/314774/Home-Automation-with-Netduino-and-Kinect" target="_blank"><img title="SNAGHTML247f3dd9" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML247f3dd9%5B4%5D.png" alt="SNAGHTML247f3dd9" width="550" height="407" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML247fb0e6%5B3%5D.png" target="_blank"><img title="SNAGHTML247fb0e6" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML247fb0e6_thumb.png" alt="SNAGHTML247fb0e6" width="650" height="404" border="0"></a></p><p>I don't know about you, but home automation is something I find very cool. Add that to the dream of an automated squirt gun (how fun does THAT look!) and all the other things Dan's showing off, there looks to be a number of cool things where his project can help us get started building. Now where did I put that breadboard...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:fc07a35d3b974436bb8a9fdf0120c5e1">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Home-Automation-Kinect-Netduino-and-a-Squirt-Gun-oh-my</comments>
      <itunes:summary>Today&#39;s Hardware Friday post comes to us from Dan Thyer (@LogicalDan) and takes us back to the Netduino and Kinect world (plus just looks kind of fun).Home Automation with Netduino and KinectHome automation has been an interest of mine for a long time. There is a bunch of bad technology in the marketplace and the products are too expensive so I decided to build my own. I started out with the Arduino microcontroller which was really fun but the code quickly became hard to maintain because it was not object oriented. Additionally it could not do multithreading or real debugging with breakpoints and such. I refactored the code for C# and the .NET Micro Framework. I choose the netduino plus, http://www.netduino.com/netduinoplus/specs.htm, for the microcontroller which has a built in Ethernet adapter for network communication....Netduino Controlled Squirt GunThe first project that I built was a servo controlled squirt gun for the pool. The code that I wrote for the netduino controls the servos to spray the gun in different patterns in the pool. I then built a Windows Phone 7 interface to aim the servos to the position on the screen where you touch. I used IIS live smooth streaming to stream video to the phone so you could remotely nail the kids in the pool from anywhere. I had mixed results with the video piece and at some point I need to spend more time perfecting and reducing the buffering time to make it more real time....KinectOne of my colleagues in the office started doing projects with the Microsoft Kinect which has a rich SDK complete with drivers, APIs and plenty of good sample code. The Kinect has a bunch of sensors including a RGB camera, depth sensor and multi-array microphone. With a Kinect, you are the controller! I got the idea of using the Kinect for the controller of the squirt gun in the pool. You can now aim the gun by pointing to where you want it to shoot. The trigger is controlled by bending your other arm so that the hand is above the elbow joint. </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Home-Automation-Kinect-Netduino-and-a-Squirt-Gun-oh-my</link>
      <pubDate>Fri, 27 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Home-Automation-Kinect-Netduino-and-a-Squirt-Gun-oh-my</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/434df624-982e-484b-a83d-4c1602d93edc.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/a9e35e13-382a-49bb-83ad-87803f281711.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Home-Automation-Kinect-Netduino-and-a-Squirt-Gun-oh-my/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Kinect to 3D Printer with a little magic</title>
      <description><![CDATA[<p>Today's inspirational project shows how in the future we might be able to make the virtual Kinect 3D real...</p><h2>Geomagic demonstrates Kinect-To-Print for 3D printers (video)</h2><blockquote><p>We're still waiting to check out 3D Systems Corporation's <a href="http://www.theverge.com/ces/2012/1/7/2689728/cubify-unveiling-cube-3d-consumer-printer-and-online-create-and-make">3D printing service at CES</a>. In the meantime, Geomagic, which powers the Kinect-To-Print app for the company, has released a video demonstrating the process by which a Kinect image gets turned into a printable template. Essentially, Geomagic uses the Kinect to capture a series of points, then turns them into a 3D model which can be sent to the printer or, presumably, uploaded to &quot;create-and-make&quot; environment Cubify.</p><p>...</p></blockquote><p>Project Information URL: <a title="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video">http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video</a></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/0RsIUI0XVy0&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/0RsIUI0XVy0&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><p><a href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb-76.png" alt="image" width="520" height="319" border="0"></a></p><p><a href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B1%5D-59.png" alt="image" width="520" height="319" border="0"></a></p><p><a href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B2%5D-31.png" alt="image" width="520" height="319" border="0"></a></p><p><a href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B3%5D-20.png" alt="image" width="520" height="319" border="0"></a></p><p><a href="http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B4%5D-11.png" alt="image" width="520" height="319" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e569dcd95fb84e9492bc9fdf01309b14">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Kinect-to-3D-Printer-with-a-little-magic</comments>
      <itunes:summary>Today&#39;s inspirational project shows how in the future we might be able to make the virtual Kinect 3D real...Geomagic demonstrates Kinect-To-Print for 3D printers (video)We&#39;re still waiting to check out 3D Systems Corporation&#39;s 3D printing service at CES. In the meantime, Geomagic, which powers the Kinect-To-Print app for the company, has released a video demonstrating the process by which a Kinect image gets turned into a printable template. Essentially, Geomagic uses the Kinect to capture a series of points, then turns them into a 3D model which can be sent to the printer or, presumably, uploaded to &amp;quot;create-and-make&amp;quot; environment Cubify....Project Information URL: http://www.theverge.com/2012/1/10/2696115/geomagic-cubify-3d-printer-kinect-video</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Kinect-to-3D-Printer-with-a-little-magic</link>
      <pubDate>Thu, 26 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Kinect-to-3D-Printer-with-a-little-magic</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/069f6da9-f99b-4e3c-ad14-4597adf93253.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/34505dea-95be-42b1-9d42-9b124973be4e.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Kinect-to-3D-Printer-with-a-little-magic/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
      <category>3D printer</category>
    </item>
  <item>
      <title>The Kinect Board of Awesomeness</title>
      <description><![CDATA[<p>In a word, Awesome... (sorry, couldn't resist)</p><h2>Board of Awesomeness</h2><blockquote><p>Members of the Chaotic Moon team are like little kids—you tell us we can’t do something, we’re sure going to go out and do it. And when it comes to technology, that rebellious side is magnified by a trillion. So, when the limitations of Kinect for Xbox 360 were revealed, our Chaotic Moon Labs geniuses put it under the microscope to show how we can make Kinect do everything it’s not supposed to do.</p><p>Using a motorized longboard custom rigged with a Microsoft Xbox 360 Kinect device, Samsung Windows 8 enabled tablet with full voice control (yep, the one that’s not yet released), a phidget interface module, and all terrain tires, we took Project Sk8 to the streets to show how we’ve revolutionized Kinect by re-engineering it to not only respond to movement but use that movement to operate something other than a gaming avatar.</p><p>Introducing Chaotic Moon Labs' Board of Awesomeness—a longboard powered by your movement … as well as our imaginative engineering and custom electronics, of course.</p><p>...</p><p>So how does it work? Video recognition, speech recognition, location data, accelerometer data, and other factors determine what the user wants to do and allow the board to follow the operator’s commands without other aid. Very similar to using Kinect for Xbox 360, the Kinect device on our Board of Awesomeness transmits the user’s gestures and movement to the Samsung Windows 8 tablet that serves as the board’s central brain by controlling the speed of the board’s electric motor, which is up to 32 miles per hour. Yeah, that’s fast. Just ask whurley.</p><p>...</p></blockquote><p>Project Information URL: <a title="http://www.chaoticmoon.com/labs/board-of-awesomeness/" href="http://www.chaoticmoon.com/labs/board-of-awesomeness/">http://www.chaoticmoon.com/labs/board-of-awesomeness/</a></p><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=34772360&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=34772360&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/34772360">from Vimeo</a>.</p></p><p><a href="http://www.chaoticmoon.com/labs/board-of-awesomeness/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B19%5D-2.png" alt="image" width="520" height="350" border="0"></a></p><p><a href="http://www.chaoticmoon.com/labs/board-of-awesomeness/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B18%5D-3.png" alt="image" width="520" height="354" border="0"></a></p><p><a href="http://www.chaoticmoon.com/labs/board-of-awesomeness/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B17%5D-5.png" alt="image" width="520" height="348" border="0"></a></p><p><a href="http://www.chaoticmoon.com/labs/board-of-awesomeness/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B16%5D-2.png" alt="image" width="520" height="350" border="0"></a></p><p><a href="http://www.chaoticmoon.com/labs/board-of-awesomeness/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B15%5D-1.png" alt="image" width="520" height="347" border="0"></a></p><p>Contact Information:</p><ul><li>Blog: <a title="http://www.chaoticmoon.com/blog/" href="http://www.chaoticmoon.com/blog/">http://www.chaoticmoon.com/blog/</a> </li><li>Twitter: <a href="https://twitter.com/#!/chaoticmoon" target="_blank">@ChaoticMoon</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ae7662c1b3dc4593860b9fdf012cd5c4">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/The-Kinect-Board-of-Awesomeness</comments>
      <itunes:summary>In a word, Awesome... (sorry, couldn&#39;t resist)Board of AwesomenessMembers of the Chaotic Moon team are like little kids—you tell us we can’t do something, we’re sure going to go out and do it. And when it comes to technology, that rebellious side is magnified by a trillion. So, when the limitations of Kinect for Xbox 360 were revealed, our Chaotic Moon Labs geniuses put it under the microscope to show how we can make Kinect do everything it’s not supposed to do.Using a motorized longboard custom rigged with a Microsoft Xbox 360 Kinect device, Samsung Windows 8 enabled tablet with full voice control (yep, the one that’s not yet released), a phidget interface module, and all terrain tires, we took Project Sk8 to the streets to show how we’ve revolutionized Kinect by re-engineering it to not only respond to movement but use that movement to operate something other than a gaming avatar.Introducing Chaotic Moon Labs&#39; Board of Awesomeness—a longboard powered by your movement … as well as our imaginative engineering and custom electronics, of course....So how does it work? Video recognition, speech recognition, location data, accelerometer data, and other factors determine what the user wants to do and allow the board to follow the operator’s commands without other aid. Very similar to using Kinect for Xbox 360, the Kinect device on our Board of Awesomeness transmits the user’s gestures and movement to the Samsung Windows 8 tablet that serves as the board’s central brain by controlling the speed of the board’s electric motor, which is up to 32 miles per hour. Yeah, that’s fast. Just ask whurley....Project Information URL: http://www.chaoticmoon.com/labs/board-of-awesomeness/from Vimeo.Contact Information:Blog: http://www.chaoticmoon.com/blog/ Twitter: @ChaoticMoon </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/The-Kinect-Board-of-Awesomeness</link>
      <pubDate>Wed, 25 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/The-Kinect-Board-of-Awesomeness</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/12e60b1c-1e6b-47f8-a726-bfe39056a733.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/290ce250-f8cb-490c-adf8-59a498d25bec.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/The-Kinect-Board-of-Awesomeness/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>Using HTML5, web sockets and some C# to build a multiplayer Space Shoot[er]</title>
      <description><![CDATA[<p>Today's Web Wednesday project is multiplayer HTML5 based Asteroids like game, showing off some simple HTML5 canvas dev and C# web socket communication.</p><h3><a href="http://www.codeproject.com/Articles/314965/SpaceShoot-A-multiplayer-game-in-HTML5" target="_blank">SpaceShoot - A multiplayer game in HTML5</a></h3><blockquote><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-30.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-29.png" alt="image" width="610" height="353" border="0"></a></p><p>The interest in using HTML5 to produce awesome cross-platform games has been increased lately. Technologies like WebSockets, Canvas and others are becoming more and more stable as well as safer to use for webdevelopers. The rule is still that products should be built with technologies that will be available when the product ships - not when the product is being built. So I assume that the need for advanced game development using HTML5 in combination with CSS3 and JavaScript will increase even more over the next couple of years.</p><h4>Background</h4><p>I always wanted to write an awesome looking multiplayer game - but I did never have the time to achieve my goal at all areas. Either I had a really solid and fast multiplayer code, or I had a good game idea, or I had the right graphics / graphic methods. With HTML5, a world with new possibilities has come up. First of all, there are plenty of possibilities to write games. There are many kind of games possible. Some browsers have even implemented the (certainly not part of the upcoming HTML5 standard) WebGL technology. Some browsers like Google's Chrome have even the so called native client available. All those technologies make (accelerated) 3D in the browser possible.</p><p>At the moment, the most games are kind of 2D social games. They follow a simple principle and contain nice 2D graphics with an interface to Facebook / Google&#43; / Twitter or other kind of social networks. You'll mostly end up playing a single player that is somehow (mostly over AJAX) connected to the databases of the big sites providing you with updates on how the others do or different kinds of feedback and information. However, there is one technology that will change it all.</p><p>With the emergence of the HTML5 standard, more and more popular technologies will be standardized. One of those technologies will be the <strong>WebSocket</strong> technology. There has already been quite a lot of talk about <strong><em>node.js</em></strong>. The software has been written an order to let everyone write his on (WebSocket-) server code in JavaScript. The code will be compiled to machine code (over Google's open source V8 engine) and will handle all requests in an event based form. This certainly has an advantage if you want to program the server's code in a language similar to the client's one although it must be said that node is a different kind of technology (and I suppose you'll find that out by using it only once!).</p><p>Since I do love C# I wanted to write the server code with C#. The basis for the server code was an open source code called <strong>Fleck</strong>. It does call the necessary .NET-Framework classes and methods and supports most of the current protocol specifications. On the client side, I wanted to use the <code>&lt;canvas&gt;</code> element. I do not want to present here a full game: the one I present here is playable (in multiplayer) and will certainly be quite a fun for a while. I build it to be extensible. It should be possible to include the features you want to. Everything that is in there was provided in order to make this also your game.</p></blockquote><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246b814e%5B3%5D.png" target="_blank"><img title="SNAGHTML246b814e" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246b814e_thumb.png" alt="SNAGHTML246b814e" width="538" height="407" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246be426%5B3%5D.png" target="_blank"><img title="SNAGHTML246be426" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246be426_thumb.png" alt="SNAGHTML246be426" width="566" height="407" border="0"></a></p><blockquote><p>It should be noted that there are many problems arising when trying to program such a game with a multiplayer mode. What about latency? What kind of messages are sent and received? Is logic done on the client as well or only on the server? My approach is kind of simple for this example project. However, my goal is to present this approach and tell you about its advantages and disadvantages as well as how to get rid of those.</p><p>Every client will send keyboard input shortly before it gets evaluated to the server. The server then distributes the input to the other clients. So everyone will see the same actions. This has the advantage that the game remains nearly unchanged to the single player except that messages do have to be sent before logic is evaluated and except messages can be received which result in additional logic being done. However, there are several severe disadvantages - namely:</p><ul><li>If one client lags, he will receive the logic too late and not be able to see the actions of the opponents. </li><li>Even worse, if messages from this client are not distributed in time <em>n</em> messages from one client will not be sent to the other clients. So the other clients will probably just see one message - the last one being sent. Instead of taking some turns and making some shots, only the last action will be seen resulting in a game that is out of sync. </li></ul><p>In order to prevent the syncing problem, every spaceship is sending its current life status and its current position to the server. This data is then distributed to the other clients. This again has some disadvantages:</p><ul><li>One could cheat by altering the own spaceship's life and ammo properties. </li><li>Particles that have been shot are not included, i.e., here the keyboard actions are really crucial. </li></ul><p>Most of these disadvantages can be tackled with the following approach:</p><ul><li>The game's important logic is being executed on the server only in multiplayer. </li><li>The game's not so important logic (like moving an asteroid) is also done on the client. </li><li>The clients are only responsible for drawing and sending keyboard commands. </li><li>The server collects one round of keyboard commands - it will not send the keyboard commands unless everyone has send the keyboard data. </li><li>The clients loop is still send to 40 ms but does only send the keyboard information (in multiplayer). </li><li>The rest is done if all the keyboard commands are received. So everyone will stay in sync for sure. </li></ul><p>This approach has several advantages. First, if a new player joins, the server can give all required objects including coordinates to the client. This is possible since the server does execute logic by itself - knowing all the positions. Also the server just executes one logic step after it received all keyboard commands. So instead of relying on total time (which is sometimes good but mostly bad), it would rely on synchronized time.</p><p>...</p><h4>Using the Code</h4><p>In order to use the code, you do not have to do a lot of things. However, I need to distinguish between the singleplayer mode and the multiplayer mode. The singleplayer mode should run in your browser (if it is not too old!). I tested the game in the following browsers (singleplayer mode):</p><ul><li>Microsoft Internet Explorer 9&#43; </li><li>Opera 11.5&#43; </li><li>Google Chrome 16&#43; </li><li>Apple Safari 5&#43; </li><li>Mozilla Firefox 7&#43; </li></ul><p>Since the singleplayer mode is trivial to play around with - let's take a look at the multiplayer mode. First of all, you need to know that in order to run on your <code>webserver</code>, you probably need to set certain firewall settings. Even if you set them, you should take into consideration that the client side probably sits also behind a firewall (from the local router, your computer, ...). So in order to guarantee a connection, you need to choose your port as well as your testing methods carefully. Otherwise you can do the following:</p><ol><li>Open the provided Visual Studio 2010 solution. </li><li>Change the line with <code>new WebSocketServer(&quot;ws://localhost:8081&quot;);</code> the port you want to pick (instead of 8081). </li><li>Open the file <strong><em>sockets.js</em></strong>. </li><li>Alter the line with <code>new WebSocket('ws://localhost:8081');</code> by replacing both, the port you want to use (instead of 8081) and the IP address or DNS name of the computer (e.g. replace <em>localhost</em> with <em>192.168.0.1</em> or <em>example.com</em>). </li><li>Host the HTML/CSS and JavaScript files either on a local server or on the internet. </li><li>If you execute the server program in a local network, then serving the HTML code over the internet does not make much sense - however, it should still work if you execute the page locally. </li></ol><p>The last two points are quite non-trivial. Why do you still need to host the page on a server (e.g. localhost) instead of hosting the website in the filesystem? The problem is security. Most browsers do have a security setting preventing websites to execute things when being hosted on the local filesystem. Google Chrome does not <code>WebSocket </code>requests from locally hosted websites. The same is true for most XHR requests and other features (like <code>WebWorkers</code>). Some browsers offer options in order to adjust those settings. Since I don't know your browser, I just assume you have a browser that is capable of <code>WebSockets </code>and give you a set of instructions that should work for sure!</p></blockquote><p>Here's a snap of the Server Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246f55dc%5B3%5D.png" target="_blank"><img title="SNAGHTML246f55dc" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML246f55dc_thumb.png" alt="SNAGHTML246f55dc" width="538" height="407" border="0"></a></p><p>If you're thinking about how you can use web sockets in your game or site, this is an interesting and easy to follow example...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:45608c7f1c90468caff69fdf011a699f">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Using-HTML5-web-sockets-and-some-C-to-build-a-multiplayer-Space-Shooter</comments>
      <itunes:summary>Today&#39;s Web Wednesday project is multiplayer HTML5 based Asteroids like game, showing off some simple HTML5 canvas dev and C# web socket communication.SpaceShoot - A multiplayer game in HTML5The interest in using HTML5 to produce awesome cross-platform games has been increased lately. Technologies like WebSockets, Canvas and others are becoming more and more stable as well as safer to use for webdevelopers. The rule is still that products should be built with technologies that will be available when the product ships - not when the product is being built. So I assume that the need for advanced game development using HTML5 in combination with CSS3 and JavaScript will increase even more over the next couple of years.BackgroundI always wanted to write an awesome looking multiplayer game - but I did never have the time to achieve my goal at all areas. Either I had a really solid and fast multiplayer code, or I had a good game idea, or I had the right graphics / graphic methods. With HTML5, a world with new possibilities has come up. First of all, there are plenty of possibilities to write games. There are many kind of games possible. Some browsers have even implemented the (certainly not part of the upcoming HTML5 standard) WebGL technology. Some browsers like Google&#39;s Chrome have even the so called native client available. All those technologies make (accelerated) 3D in the browser possible.At the moment, the most games are kind of 2D social games. They follow a simple principle and contain nice 2D graphics with an interface to Facebook / Google&amp;#43; / Twitter or other kind of social networks. You&#39;ll mostly end up playing a single player that is somehow (mostly over AJAX) connected to the databases of the big sites providing you with updates on how the others do or different kinds of feedback and information. However, there is one technology that will change it all.With the emergence of the HTML5 standard, more and more popular technologies will be standardized. One of</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Using-HTML5-web-sockets-and-some-C-to-build-a-multiplayer-Space-Shooter</link>
      <pubDate>Wed, 25 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Using-HTML5-web-sockets-and-some-C-to-build-a-multiplayer-Space-Shooter</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/a2df60f7-b76b-4f48-83b9-ac52a8025e2c.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/fe214e66-af4b-486e-91fa-496e2076ad27.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Using-HTML5-web-sockets-and-some-C-to-build-a-multiplayer-Space-Shooter/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>HTML5</category>
    </item>
  <item>
      <title>Scientists using the Kinect to study glaciers and asteroids</title>
      <description><![CDATA[<p>The second post of our run up to the v1 release Inspirational week shows how the Kinect is inspiring scientists and students alike...</p><h2>Scientists Hack Kinect to Study Glaciers and Asteroids</h2><blockquote><p>SAN FRANCISCO — Last summer, Ken Mankoff shimmied through zero-degree water and mud into a small cavern underneath Rieperbreen Glacier in Svalbard, Norway, holding a Microsoft Kinect wrapped inside a waterproof bag.</p><p>Using the little toy, originally meant as a motion-sensing device for the Xbox 360 videogame console, Mankoff scanned the cave floor in 3-D. During the summer, water from lakes on the glacier’s surface had gushed through the channel he was sitting in. The Kinect was going to provide a better understanding of its size and roughness, which could help researchers predict how the ice above would flow toward the sea.</p><p>“I’ve always enjoyed repurposing cheap devices, doing things that you’re not supposed to do with them,” said <a href="http://kenmankoff.com/about">Mankoff</a>, a NASA-funded Ph.D. student at the University of California, Santa Cruz, studying ice and ocean interactions. “You know, the hacker ideals.”</p><p>He is currently a bit of an evangelist for the Kinect, trying to get scientist interested in using the device, which can record very accurate 3-D data in visible and infrared wavelengths. As part of this, he presented a poster of his work here Dec. 8 at the <a href="http://www.wired.com/wiredscience/tag/agu-2011">American Geophysical Union meeting</a> in San Francisco. The poster drew strong crowds and piqued the interest of at least a dozen researchers.</p><p>...</p><p>We’ll put the Kinect through its paces in the lab to make sure it’s up to snuff,” he said.</p><p>The Kinect’s best asset may be that it inspires students, Tedesco said. Rather than a daunting black box with convoluted cables and arcane software, the Kinect is something that many students are already familiar with.</p><p>“This creates a different mindset in students,” he said. “They’re not so scared about using the Kinect, and they can really get involved in learning and basic research.”</p></blockquote><p>Project Information URL: <a title="http://www.wired.com/wiredscience/2011/12/hacked-kinect-science/" href="http://www.wired.com/wiredscience/2011/12/hacked-kinect-science/">http://www.wired.com/wiredscience/2011/12/hacked-kinect-science/</a> [Found via <a href="http://blogs.msdn.com/b/see/archive/2011/12/20/how-scientists-are-using-kinect.aspx">How Scientists are Using Kinect</a>]</p><p><a href="http://www.wired.com/wiredscience/2011/12/hacked-kinect-science/" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B3%5D-10.png" alt="image" width="434" height="384" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7f448e97bc6f4e63a1d79fdf01289af1">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Scientists-using-the-Kinect-to-study-glaciers-and-asteroids</comments>
      <itunes:summary>The second post of our run up to the v1 release Inspirational week shows how the Kinect is inspiring scientists and students alike...Scientists Hack Kinect to Study Glaciers and AsteroidsSAN FRANCISCO — Last summer, Ken Mankoff shimmied through zero-degree water and mud into a small cavern underneath Rieperbreen Glacier in Svalbard, Norway, holding a Microsoft Kinect wrapped inside a waterproof bag.Using the little toy, originally meant as a motion-sensing device for the Xbox 360 videogame console, Mankoff scanned the cave floor in 3-D. During the summer, water from lakes on the glacier’s surface had gushed through the channel he was sitting in. The Kinect was going to provide a better understanding of its size and roughness, which could help researchers predict how the ice above would flow toward the sea.“I’ve always enjoyed repurposing cheap devices, doing things that you’re not supposed to do with them,” said Mankoff, a NASA-funded Ph.D. student at the University of California, Santa Cruz, studying ice and ocean interactions. “You know, the hacker ideals.”He is currently a bit of an evangelist for the Kinect, trying to get scientist interested in using the device, which can record very accurate 3-D data in visible and infrared wavelengths. As part of this, he presented a poster of his work here Dec. 8 at the American Geophysical Union meeting in San Francisco. The poster drew strong crowds and piqued the interest of at least a dozen researchers....We’ll put the Kinect through its paces in the lab to make sure it’s up to snuff,” he said.The Kinect’s best asset may be that it inspires students, Tedesco said. Rather than a daunting black box with convoluted cables and arcane software, the Kinect is something that many students are already familiar with.“This creates a different mindset in students,” he said. “They’re not so scared about using the Kinect, and they can really get involved in learning and basic research.”Project Information URL: http://www.wired.com/wi</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Scientists-using-the-Kinect-to-study-glaciers-and-asteroids</link>
      <pubDate>Tue, 24 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Scientists-using-the-Kinect-to-study-glaciers-and-asteroids</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/2f8e6932-ac63-446a-acc2-417acaaf3ca4.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/7f99cd2f-415f-4f1e-80d8-268b6b996616.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>4</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Scientists-using-the-Kinect-to-study-glaciers-and-asteroids/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>
  <item>
      <title>It&#39;s three-for-one QR Code Day</title>
      <description><![CDATA[<p>Today's Mobile Monday post isn't one project, but three. Yep, it's a three for one day...</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B10%5D-18.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B3%5D-26.png" alt="image" width="198" height="192" border="0"></a></p><p>We've all seen <a href="http://en.wikipedia.org/wiki/QR_code" target="_blank">QR codes</a> around, they are appearing on sites, in print, on TV and even <a href="http://news.cnet.com/8301-17938_105-57345193-1/qr-code-tattoo-generates-random-links/" target="_blank">tattoos</a>. Four months ago we covered one way to consume them in a Windows Phone 7.1(5) app, <a href="http://channel9.msdn.com/coding4fun/blog/Window-Phone-75-ZXing-and-QR-codes" target="_blank">Window Phone 7.5, ZXing and QR codes</a>. Today we're going to highlight three other QR Code projects, one that will help you create them and two other ways to consume them in Windows Phone 7.1(5) apps.</p><h3><a href="http://qrcodenet.codeplex.com/">QrCode.Net</a></h3><blockquote><p><strong>Project Description</strong><br>The goal of the project is provding an easy to use, fully managed .Net library for handling QR code according to ISO/IEC 18004. Following features are planned: encoding, rendering (to: screen, file &amp; stream), decoding, detection &amp; recognition, artistic QR code.</p><h3>The Goal of the Project</h3>The goal of the project is to provide an easy to use, managed .Net library for:<ol><li>Crating QR code bit matrix from text – encoding. </li><li>Rendering of QR code bit matrix to screen, into an image file or stream. </li><li>Rendering of so called &quot;artistic&quot; QR codes (see below). </li><li>Decoding QR code given as bit matrix. </li><li>Detection and recognition of QR code captures. </li><li>The library should support Windows Phone 7 and Silverlight </li></ol><p>&nbsp;</p><p><a href="http://geekswithblogs.net/gmamaladze/archive/2011/09/22/just-launched-another-open-source-project-qrcode.net-at-qrcodenet.codeplex.com.aspx">Just launched another open source project QrCode.Net at qrcodenet.codeplex.com</a></p><p><strong>Background</strong></p><p>Recently I was looking for a .NET implementation of QR code generator. Most of components either use online services to generate and/or recognize QR code or the implementation was not “good enough” for my purposes. The most popular and very powerful Java implementation comes from google’s open source project <a href="http://code.google.com/p/zxing/">code.google.com/p/zxing</a> called ZXing (Zebra Crossing =&gt; Z=Zebra &#43; X=Cross &#43; ing).</p><p>There I found a one-to-one c# port of earlier version. The project is focusing on additional features and further development in Java so it seems that no one is taking care of c# branch.</p><p>Thus I have decided to set-up this project <a href="http://qrcodenet.codeplex.com/">QRCode.Net</a> – <a href="http://qrcodenet.codeplex.com/">qrcodenet.codeplex.com</a>.</p><p>As a start point I took a straight forward c# port of google’s QR code implementation from ZXing project.<br>I wrote a wrapper around and a demo application which is able to generate QR code from text as you type and save it to file.</p><p>In addition it contains a very naive and simple implementation of <strong>Artistic QR code</strong> generation. At the highest error correction level it is possible to create artistic QR codes that still scan correctly, but contain intentional errors to make them more readable or attractive to the human eye, as well as to incorporate colors, logos and other features into the QR code block.</p></blockquote><p>Here's a snap of the app running;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML2445fc27%5B3%5D.png" target="_blank"><img title="SNAGHTML2445fc27" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML2445fc27_thumb.png" alt="SNAGHTML2445fc27" width="311" height="407" border="0"></a></p><p>And the Solution from the latest check-in (which ran for me the first time with no issues);</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B25%5D-4.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B10%5D-5.png" alt="image" width="226" height="427" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B26%5D-2.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B11%5D-7.png" alt="image" width="262" height="366" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B24%5D-3.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B9%5D-12.png" alt="image" width="278" height="200" border="0"></a></p><p>Now that we've generated a QR Code, let's look at reading it...</p><h3><a href="http://blogs.msdn.com/b/richmac/archive/2011/11/07/creating-a-qr-code-reader-app-for-windows-phone-7.aspx">Creating a QR Code Reader App for Windows Phone 7</a></h3><blockquote><p>If you’ve updated Windows Phone 7.5, you might have noticed that it has some nice built-in functionality for reading QR Codes using Bing Vision search. After trying it out for a while, I pretty quickly started wondering how I could use this in an app, and equally quickly I was disappointed to find that there are no APIs available for 3rd party developers to access this feature.</p><p>After a short hunt online, I found an excellent library that can be used as an alternative, and I built a simple reader with it. Here are the basic steps to create one yourself:</p><ul><li><strong>Create a new Windows Phone Project in Visual Studio</strong> </li><li><strong>Update the App Manifest</strong> </li><li><strong>Create the QR Reader Window and Output Area</strong> </li><li><strong>Directives and Variables</strong> </li><li><strong>Handle Navigation</strong> </li><li><strong>Add Camera Event Handlers</strong> </li><li><strong>Download the Barcode Library</strong> </li><li><strong>Add the Barcode Library to the Project</strong> </li><li><strong>Decode the QR Code Image</strong> </li><li><strong>Compile and Deploy</strong> </li></ul><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B29%5D-2.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B12%5D-3.png" alt="image" width="384" height="407" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B32%5D.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B13%5D-4.png" alt="image" width="252" height="407" border="0"></a></p></blockquote><p>This project used a barcode library that I don't think I've seen before, <a href="http://twit88.com/platform/projects/show/mt-barcode" target="_blank">messagingtoolkit-barcode</a></p><blockquote><p>MessagingToolkit Barcode library is a C# barcode library that can be used in standalone Windows applications, ASP.NET web applications, and Windows Phone 7 applications.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B35%5D-2.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B14%5D.png" alt="image" width="396" height="407" border="0"></a></p><p>The library current supports encoding and decoding of the following barcode types</p><h5>Encoding</h5><ul><li>QR Code </li><li>Data Matrix </li><li>PDF 417 </li><li>Bookland/ISBN </li><li>Codabar </li><li>Code 11 </li><li>Code 128 </li><li>Code 128-A </li><li>Code 128-B </li><li>Code 128-C </li><li>Code 39 </li><li>Code 39 Extended </li><li>Code 93 </li><li>EAN-13 </li><li>EAN-8 </li><li>FIM </li><li>Interleaved 2 of 5 </li><li>ITF-14 </li><li>LOGMARS </li><li>MSI 2 Mod 10 </li><li>MSI Mod 10 </li><li>MSI Mod 11 </li><li>PostNet </li><li>Standard 2 of 5 </li><li>Telepen </li><li>UPC 2 Digit Ext. </li><li>UPC 5 Digit Ext. </li><li>UPC-A </li><li>UPC-E </li></ul><h5>Decoding</h5><ul><li>UPC-A </li><li>UPC-E </li><li>EAN-8 </li><li>EAN-13 </li><li>Code 39 </li><li>Code 93 </li><li>Code 128 </li><li>QR Code </li><li>ITF </li><li>Codabar </li><li>RSS-14 </li><li>Data Matrix </li><li>PDF 417 </li><li>Aztec </li></ul><p>This library is based on the <a href="http://code.google.com/p/zxing/">zxing</a> library, with some additional features not available in the original code. You can freely use it for non-commercial purpose. To use it commercially, please consider making a payment to support this project <a href="http://twit88.com/platform/embedded/messagingtoolkit">here</a></p></blockquote><p>And last, but not least, our third project of the day, a simple and re-usable QR Code control that makes adding QR Code consumption to your Windows Phone 7.1(5) app drag-n-drop easy</p><h3><a href="http://www.jeff.wilcox.name/2012/01/wpqr-control/">A simple Windows Phone control for reading QR codes</a></h3><blockquote><p>There are great libraries out there written or ported to C# that let us developers rock by standing on the shoulders of giants. Here’s one such project.</p><p>A phone developer who’s also an enthusiast of foursquare suggested a feature that I should add in a future release, and provided some sample code based on the <a href="http://code.google.com/p/zxing/">zxing barcode library</a> and the <a href="http://silverlightzxing.codeplex.com/">Silverlight port of it</a>. I’m working on adding the new feature soon.</p><p>In the process I realized it would be a good and quick opportunity to ship such a simple but useful control to the phone development community, so I’ve gone ahead and pushed that control refactoring and implementation to GitHub, check it out: <a href="https://github.com/jeffwilcox/wpqr-control">https://github.com/jeffwilcox/wpqr-control</a></p><p>Special thanks to Michael Osthege (<a href="http://twitter.com/theCake">@theCake</a>, <a href="http://kuchenzeit.wordpress.com/">blog</a>) for providing the initial contact, sample, and encouragement.</p><p>The control is nice:</p><ul><li>Drop it on the design surface </li><li>Wire up the ScanComplete event (and optionally the Error event) </li><li>The control handles all the underlying image manipulation, scanning work, PhotoCamera initialization, etc. </li></ul><p>Here’s what a simple sample app looks like in use. The control includes default border thickness and coloring properties that use the accent color and provide a nice visual separator:</p><ul><li><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B41%5D.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B16%5D-1.png" alt="image" width="543" height="407" border="0"></a> </li><li>... <h5>Building the sample app</h5><p>All I did to build this app was drop the control into a new Windows Phone app project and wire it up. Here’s how.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B45%5D.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B18%5D.png" alt="image" width="512" height="427" border="0"></a></p></li></ul></blockquote><p>Hopefully, with these three projects and the information and resources they provide, adding QR Code support to your apps should now be that much easier...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b6917d8c2ff342559f909fdf0111f957">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Its-three-for-one-QR-Code-Day</comments>
      <itunes:summary>Today&#39;s Mobile Monday post isn&#39;t one project, but three. Yep, it&#39;s a three for one day...We&#39;ve all seen QR codes around, they are appearing on sites, in print, on TV and even tattoos. Four months ago we covered one way to consume them in a Windows Phone 7.1(5) app, Window Phone 7.5, ZXing and QR codes. Today we&#39;re going to highlight three other QR Code projects, one that will help you create them and two other ways to consume them in Windows Phone 7.1(5) apps.QrCode.NetProject DescriptionThe goal of the project is provding an easy to use, fully managed .Net library for handling QR code according to ISO/IEC 18004. Following features are planned: encoding, rendering (to: screen, file &amp;amp; stream), decoding, detection &amp;amp; recognition, artistic QR code.The Goal of the ProjectThe goal of the project is to provide an easy to use, managed .Net library for:Crating QR code bit matrix from text – encoding. Rendering of QR code bit matrix to screen, into an image file or stream. Rendering of so called &amp;quot;artistic&amp;quot; QR codes (see below). Decoding QR code given as bit matrix. Detection and recognition of QR code captures. The library should support Windows Phone 7 and Silverlight &amp;nbsp;Just launched another open source project QrCode.Net at qrcodenet.codeplex.comBackgroundRecently I was looking for a .NET implementation of QR code generator. Most of components either use online services to generate and/or recognize QR code or the implementation was not “good enough” for my purposes. The most popular and very powerful Java implementation comes from google’s open source project code.google.com/p/zxing called ZXing (Zebra Crossing =&amp;gt; Z=Zebra &amp;#43; X=Cross &amp;#43; ing).There I found a one-to-one c# port of earlier version. The project is focusing on additional features and further development in Java so it seems that no one is taking care of c# branch.Thus I have decided to set-up this project QRCode.Net – qrcodenet.codeplex.com.As a start point I took a straight forward </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Its-three-for-one-QR-Code-Day</link>
      <pubDate>Mon, 23 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Its-three-for-one-QR-Code-Day</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/4d04ddc5-5dac-4f20-a913-0dff6ae9dfd4.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/eb0041d3-22ae-458b-820a-a6fb6b889c23.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Its-three-for-one-QR-Code-Day/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Windows Phone 7</category>
    </item>
  <item>
      <title>The PIX-6T4 kit is out...</title>
      <description><![CDATA[<p>Today's Hardware Friday post isn't another Kinect post... (Yeah, I know you're all sad now...lol. Well if you really want Kinect stuff, please head over to the <a href="http://channel9.msdn.com/coding4fun/kinect/" target="_blank">Coding4Fun Kinect Gallery</a>. Every weekday there's a new post or project... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Anyway... Today's project is one that we mentioned a few months ago, <a href="http://channel9.msdn.com/coding4fun/blog/Building-your-own-hand-held-game-console-with-Netduino-C-and-the-PIX-6T4-project" target="_blank">Building your own hand-held game console with, Netduino, C# and the PIX-6T4 project</a>, but until just recently wasn't one you could really start playing with yet. Well the wait is over and you can now get your own...</p><h2><a href="http://nwazet.com/pix6t4" target="_blank">PIX-6T4</a></h2><blockquote><p><a href="http://nwazet.com/pix6t4" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B4%5D-6.png" alt="image" width="500" height="332" border="0"></a></p><p>The goal of the PIX-6T4 kit and its companion book (coming soon) is to teach you how to use 'Electronic and Software Building Blocks' to become a Skilled Maker and, optionally, a Mad Scientist.</p><p>This little console can be programmed in <a href="http://msdn.microsoft.com/en-us/library/aa288436%28v=VS.71%29.aspx">C#</a> and is a perfect learning tool for an initiation to both microelectronics and game programming. It is also a development board, with easily accessible pins.</p><p>The kit comprises the following parts:</p><ul><li><a href="http://www.netduino.com/netduinomini/specs.htm">Netduino Mini</a>: this is the heart of the system, a micro-controller running the <a href="http://www.microsoft.com/en-us/netmf/default.aspx">.NET Micro Framework</a> </li><li>AS1100PL LED Driver: this little chip receives the data to display from the Netduino and uses it to turn the LEDs on and off. </li><li>LED Matrix (8x8, red): this little and cost effective display may not have color or high definition, but the great thing about it is that you can actually understand exactly how it works. </li><li>SD Card Socket: the PIX-6T4 console uses standard SD card as mass storage. SD cards are game cartridges, with each card containing many games. The SD card itself is not provided. </li><li>2 x Analog Joysticks with built-in switch: when we designed the console, we thought a lot about minimalism. This is why we did away with buttons entirely, replacing them with two clickable sticks. </li><li>Speaker </li><li>2 x 24 PIN DIP Socket: each integrated circuit is mounted on sockets so that you can replace them should anything bad happen. </li><li>Power LED (any color) </li><li>Voltage Regulator (3.3v) </li><li>Power Barrel Jack, Inline DC Power Plug &amp; 9V Battery Connector </li><li>Printed Circuit Board </li><li>Acrylic Case Bottom </li><li>4 x Stand-Offs &amp; 8 Screws </li><li>Power Switch </li><li>Break Away Header: gives easy access to all the Neduino pins for easy testing and extensibility. This makes it possible to use the PIX-6T4 as a development board. </li><li>2N4403 PNP Transistor </li><li>6 x 10K Resistors </li><li>1K resistor </li><li>2.1K resistor </li><li>54.9K resistor </li><li>100µF Electrolytic Capacitor </li><li>0.1µF Ceramic capacitor </li></ul></blockquote><p><a href="http://www.pix6t4.com">http://www.pix6t4.com</a></p><p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/tJP_Kl2HmbU&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/tJP_Kl2HmbU&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p><blockquote><ul><li>Build your own<em><a href="http://en.wikipedia.org/wiki/Video_Game_Console"> Video Game Console</a></em> </li><li>Join the <em><a href="http://en.wikipedia.org/wiki/Make_Magazine">Maker Revolution</a></em> </li><li>Use your console as a Turn-Key development board </li><li>Discover the power of <em><a href="http://forums.netduino.com/">Netduino</a></em> by 'Secret Labs'! </li><li>Learn <em><a href="http://netduinohelpers.codeplex.com/">C# Programming</a></em> </li><li>Have fun building your own <em><a href="http://en.wikipedia.org/wiki/Asteroids_(video_game)">Games</a></em> </li></ul><p>The goal of the <strong>PIX-6T4</strong> and its supporting companion book is to teach you how to use 'Electronic and Software Building Blocks' to become a Skilled Maker and, optionally, a Mad Scientist <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' /></p><p>To achieve this, we'll break down for you the process that we followed when we set out to build a simple video game console from readily available parts. Why a video game console? Because they're fun!... because a game console touches on many fundamental electronic concepts. In addition, a game console offers countless possibilities for learning how to write software: dream up a game and build it yourself by following our <a href="http://netduinohelpers.codeplex.com/">examples and techniques</a>.</p><p>We chose the <a href="http://www.netduino.com">Netduino</a> over other types of microcontrollers simply because the programming skills that you will learn on the .Net Micro Framework, as you discover the Netduino, will also be applicable to the full-featured <a href="http://www.microsoft.com/net/">.Net Framework</a> used to build professional applications, large scale web services, mobile applications running on phones and web applications. Our hope is to empower you with life skills that can help you build a career or just build anything you can think of.</p><p>Last but not least, the <a href="http://forums.netduino.com/">Netduino community</a> and the .Net Micro Framework embrace the <a href="http://netmf.codeplex.com/">open-source</a> / <a href="http://www.netduino.com/downloads/">open-hardware</a> philosophy and whether you're a Mac or Linux user, the .Net Micro Framework is very relevant to you, thanks to the <a href="http://www.mono-project.com/">Mono Framework</a> and its suite of development tools.</p></blockquote><p>Where's the code in this Coding4Fun post?</p><p><a href="http://www.pix6t4.com/source" target="_blank">The PIX-6T4 Source Code</a></p><blockquote><p>The PIX-6T4 code is open source and is part of the <em><a href="http://netduinohelpers.codeplex.com/">netduino helpers repository</a></em> on CodePlex.</p><p>The projects that you will need to build are located in the <strong>\Samples\PIX6T4</strong> folder:</p><h3>The Brain</h3><ul><li><strong>ConsoleBootLoader</strong>: is the program that runs when you turn on the console. Its job is to read the content of the SD card, looking for game modules for you to select in a main menu. When a game is selected, it is dynamically loaded from the SD card and starts. When the game ends, the player is brought back to the main menu. </li></ul><h3>The Games</h3><ul><li><strong>Paddles</strong>: is a two player game of Ping Pong. Each player controls a paddle with one of the analog joysticks of the console, trying to hit the ball back to the opponent. A player scores a point when the other misses the ball. </li><li><strong>MeteorsFromOuterSpace</strong>: is a game where the player controls the movement of a small ship with the left stick of the console, and fires at meteors coming from all directions with the right stick. To shoot a meteor, just point the right stick in its direction </li><li><strong>Tunes:</strong> is a simple application playing the Pacman theme song. </li></ul><p>To get you started quickly with your console, you can just <strong><a href="http://www.pix6t4.com/Media/PIX6T4/Page/schematics/games.zip">download</a></strong> these applications. Then, open up the .zip file, place the folders that are on it on an FAT32-formatted SD card. Finally, insert the SD card in your PIX-6T4 console and play.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B7%5D-11.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-31.png" alt="image" width="452" height="373" border="0"></a></p><h3>Digging Deeper</h3><p>If you want to explore how the 'layers of the cake' really work, you should dig into the <strong>pix6t4.netduino.helpers</strong> project:</p><ul><li><strong>\Fun</strong>: abstracts the hardware away from the game code. It also provides a small framework to write your games simply and efficiently. </li><li><strong>\Hardware</strong>: contains all the drivers for the hardware components used to build the console. </li><li><strong>\Helpers</strong>: contains the resource loader used to read and execute games from the SD card </li><li><strong>\Imaging</strong>: provides an interface to build your game world, create and display sprites, test collisions between objects and display small and large fonts. </li><li><strong>\Math</strong>: a library of trigonometric functions, frequently needed when building games. </li><li><strong>\Sound</strong>: provides a simple method to play tunes using the standard Nokia RTTL ringtone format </li></ul><h3>Digging even deeper...</h3><p>But wait, there's more! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /> The <strong>pix6t4.netduino.helpers </strong>library is only a subset of the larger <strong>netduino.helpers</strong> library which contains drivers and sample applications for many more devices.</p></blockquote><p>If you're looking to build something cool and fun and yet pretty cheap, you don't have to look much farther than the PIX-6T4...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:455653e074bf42298c7a9fd801460f63">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/The-PIX-6T4-kit-is-out</comments>
      <itunes:summary>Today&#39;s Hardware Friday post isn&#39;t another Kinect post... (Yeah, I know you&#39;re all sad now...lol. Well if you really want Kinect stuff, please head over to the Coding4Fun Kinect Gallery. Every weekday there&#39;s a new post or project... Anyway... Today&#39;s project is one that we mentioned a few months ago, Building your own hand-held game console with, Netduino, C# and the PIX-6T4 project, but until just recently wasn&#39;t one you could really start playing with yet. Well the wait is over and you can now get your own...PIX-6T4The goal of the PIX-6T4 kit and its companion book (coming soon) is to teach you how to use &#39;Electronic and Software Building Blocks&#39; to become a Skilled Maker and, optionally, a Mad Scientist.This little console can be programmed in C# and is a perfect learning tool for an initiation to both microelectronics and game programming. It is also a development board, with easily accessible pins.The kit comprises the following parts:Netduino Mini: this is the heart of the system, a micro-controller running the .NET Micro Framework AS1100PL LED Driver: this little chip receives the data to display from the Netduino and uses it to turn the LEDs on and off. LED Matrix (8x8, red): this little and cost effective display may not have color or high definition, but the great thing about it is that you can actually understand exactly how it works. SD Card Socket: the PIX-6T4 console uses standard SD card as mass storage. SD cards are game cartridges, with each card containing many games. The SD card itself is not provided. 2 x Analog Joysticks with built-in switch: when we designed the console, we thought a lot about minimalism. This is why we did away with buttons entirely, replacing them with two clickable sticks. Speaker 2 x 24 PIN DIP Socket: each integrated circuit is mounted on sockets so that you can replace them should anything bad happen. Power LED (any color) Voltage Regulator (3.3v) Power Barrel Jack, Inline DC Power Plug &amp;amp; 9V Battery Connector Printed</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/The-PIX-6T4-kit-is-out</link>
      <pubDate>Fri, 20 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/The-PIX-6T4-kit-is-out</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/1bf80002-dca1-4b9e-addc-3617f1616180.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/10d9cf2d-ee20-4a3e-9174-5a1e9f3da8f4.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/The-PIX-6T4-kit-is-out/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
    </item>
  <item>
      <title>Solving Some Common Kinect Problems</title>
      <description><![CDATA[<p>Sometimes getting started isn't all that easy and if your Kinect isn't working it's hard to start coding with it (Gee, funny that). For the vast majority of people the Kinect and Kinect for Windows SDK is just plug and play. But for a few, it's not and it's hard to know where to go to get help.&nbsp;Here's a forum post that rounds-up a number of problems and their solutions...</p><h2>Guide to Kinect and common problems (updated for beta 2)</h2><blockquote><p>I decided since people keep asking about the same questions over and over again i will make a guide. Note: some things work for different people and as this guide grows its depth will grow too to include the solution to your common problem.</p><p>Common checks to help solve problems:</p><p>1. Check where your kinect is plugged into and if all cables are hooked up. For instance, The usb ports on the back are all connected to the same hardware hub inside of the computer so sometimes any other device can conflict or draw power away from kinect if its plugged into the back. Also, the power cable which is sometimes a separate component needs to be hooked up to kinect for programming on the computer.</p></blockquote><p>Project Information URL: <a title="http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/d0eeb269-2c3f-4a40-8b65-9d6b8dcae147" href="http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/d0eeb269-2c3f-4a40-8b65-9d6b8dcae147">http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/d0eeb269-2c3f-4a40-8b65-9d6b8dcae147</a></p><p><a href="http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/d0eeb269-2c3f-4a40-8b65-9d6b8dcae147" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B3%5D-9.png" alt="image" width="189" height="384" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/coding4fun/RSS&WT.dl=0&WT.entryid=Entry:RSSView:90637c1c80c242dfa2469fd8015c2a37">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Solving-Some-Common-Kinect-Problems</comments>
      <itunes:summary>Sometimes getting started isn&#39;t all that easy and if your Kinect isn&#39;t working it&#39;s hard to start coding with it (Gee, funny that). For the vast majority of people the Kinect and Kinect for Windows SDK is just plug and play. But for a few, it&#39;s not and it&#39;s hard to know where to go to get help.&amp;nbsp;Here&#39;s a forum post that rounds-up a number of problems and their solutions...Guide to Kinect and common problems (updated for beta 2)I decided since people keep asking about the same questions over and over again i will make a guide. Note: some things work for different people and as this guide grows its depth will grow too to include the solution to your common problem.Common checks to help solve problems:1. Check where your kinect is plugged into and if all cables are hooked up. For instance, The usb ports on the back are all connected to the same hardware hub inside of the computer so sometimes any other device can conflict or draw power away from kinect if its plugged into the back. Also, the power cable which is sometimes a separate component needs to be hooked up to kinect for programming on the computer.Project Information URL: http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/d0eeb269-2c3f-4a40-8b65-9d6b8dcae147</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Solving-Some-Common-Kinect-Problems</link>
      <pubDate>Thu, 19 Jan 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Solving-Some-Common-Kinect-Problems</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/c2b53c6b-304b-47ae-aaa4-c96ab3b2b13e.png" height="75" width="100"/>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f699829c-404c-4167-871d-e88f6cc9c838.png" height="165" width="220"/>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Solving-Some-Common-Kinect-Problems/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
    </item>    
</channel>
</rss>
