42 Spikes

Mike's Blog on Software and Tech

David McCandless TED Talk: The Beauty of Data Visualization

Interesting talk on data visualization.  I like that the talk focused not really on the visualizaiton part, but that you need to contrast data / put it in context to make the visualizations make sense.  David gives a few scenarios such as reporting not just raw numbers (military budget), but needing to relate that to GDP; when doing that, the visualizaitons completly change their influence on the viewer.


Some Videos from Mix'11

I'd like to share a video I made at Mix, as well as also show one I found on YouTube of a part of the second day keynote.

The first I took and is of the MSR team using Kinect to drive the virtual telescope data.  I love they way this shows flying through the solar system with just your hands:

The next is of the Kinect Drivable Lounge Chair:

I asked how much this cost to make and he said something like $30,000!

Installing a Kinect on your PC

Well I'm back from Mix'11 with a Kinect and lots of ideas on how to use it in applications.  As you probably know the actual Microsoft Kinect SDK will not be available for probably another month, so in the interim if you want to use one you need to hack it to be able to make it work with your applications.  I spent the last two days trying to do this, and just got it working after two days of trying.  There's a lot of information out there on how to do this, but none of it seems all that concise, and all of it had me doing things that just had endless problems.  But I appear to have it working now so I'll describe here exactly what I did so that it hopefully is to your benefit.

First, the configuration I am using is as follows:

  • MacBook Pro
  • Windows 7 x64 SP1 running in Bootcamp

I believe that the x64 version of Win 7 really caused a lot of troubles as I could not get things to work using all of the 64-bit kits that I used, and ended up using a hybrid of 64 and 32 software.  In total you will need to get three pieces of software, and do four installations.  But first just start by plugging in your Kinect and opening device manager.  You should see the following:

This is the norm as there are no drivers installed for the Kinect.  Our first step will be to install drivers.  The location of the drivers is https://github.com/avin2/SensorKinect:

Click on downloads and save the package to your system, unblock the zip file, and copy the folder in the zip file to your local system.  It should look like the following (note that I also have the other downloads already in this folder):

The first thing we need to do is install the drivers in this package.  They are in the Platform\Win32\Driver folder:

In my case since I'm using 64-bit Windows 7 I will run dpinst-amd64.exe.  You may need to just execute dpinst-x86.exe if you are on 32-bit Windows.  When clicking this you will see a series of screens like the following:

Note that this is installing a driver for the PrimeSense Sensor device.  My understanding is that this is a driver for the PrimeSense Kinect-like device, not the actual Kinect.  PrimeSense is the company that made the Kinect for Microsoft, but they also sell their own device.  This driver will be installed now and patched later.  So continue with the install going through the following screens:

Install in progress, and select install anyway when the following is shown:

And when complete you'll see the following:

The next step is to plug the Kinect back in, and keep an eye on device manager for the following:

Note that your system now thinks it has a PrimeSense/Kinect device with audio, camera and motor.

The next step is to install software from OpenNI.Org.  These are the alternate/open source natural interface API's that we'll use between now and when Microsoft releases their actual SDK for Kinect (and I would think this is also valid to use with that SDK when it is available).  So, go to OpenNI.Org where you'll see the following:

Click on downloads and be taken to the following screen:

I downloaded two installers from this site: The OpenNI Binaries, and the OpenNI Compliant Middleware Binaries, and in both cases I used the latest unstable versions.  I believe that the use of the latest unstable is actually crittically important as the patch for the PrimeSensor / Knect driver assumes use of the most recent OpenNI drivers which are the unstable versions.   Each of those two downloads screens are as follows, and also note that I used the 32-bit versions.  I had absolutely no luck with the 64-bit versions.  Maybe your luck will be better, but the 32-bit ones seem to work for me.  Also, make sure to download the development versions as you will get the source code for the samples with those.

When you have those downloaded, and along with the PrimeSense drivers you should have the following files (shown before, but now repeated for convenience):

The next step is to intall the OpenNI package OpenNI-Win32.  Start the install and you'll be taken through the following step(s):

Click install and when done we now will go back the the SensorKinect download and apply the patch to make the atual Kinect appear to the PrimeSense drivers we installed earlier.  Note that this patch must be installed after the previous OpenNI software as it requires the OpenNI software, as well as version  If you did not get the latest unstable versions, you will be or earlier and this software will not install, and you all the apps wil fail looking for the actual Kinect via the PrimeSense drivers.

The package / patch you want to install is at the following location in the folder hierarchy:

Run the package and complete all the steps:

We're almost there now!  There is one last step, and I'm not sure that this is totally required but it's good to do (but pretty sure is needed), which is to install the NITE middleware (NITE-Win32- downloaded earlier).  Start that installer and you'll see the following:

Agree and you'll be taken to this screen:

Note that you need to enter a license key.  This key is on the OpenNI website and is a key that PrimeSense provided for our OpenNI purposes.  Finish the install and we are basically ready!

To check that everything is working, lets go into the samples folder installed by the OpenNI install and run NiViewer.exe:

If everything worked, then you will get a screen similar to the following:

The speckles / white snow is an issue that SnagIt had making the screen shot, so you shouldn't see that on your screen.  But if you get this, then things are working!

I'll be following this post up with a series of posts on using the samples and doing to practical programming with the Kinect.

So stay tuned!