Saturday, June 25, 2011

StartMenu on CodePlex

With change set 8122 I've added the source code for the Candescent StartMenu WPF application to CodePlex.

To show the menu, present your open hand to the kinect at a distance of around 0.5 - 1 meters. To close the menu again, just close the hand. To start an application, stretch out one finger, move it over the icon (which gets highlighted), then close the hand quickly, so no finger is visible anymore.

If you're using the Kinect SDK the distance is limited to 850 to 950mm.
Open Start Menu

There is currently only one item in the start menu by default (Windows Explorer). You can configure programs or files to be shown in the Settings View. To open it, right click on the task bar icon and select "Settings..." or double click the icon.

Start Menu Settings

The configuration is stored in the file "menu_config.csv", you can also edit this file manually. Please don't change the first line. All other lines have to be in the format <Name>;<Path>.

To stop the program, press escape while the start menu is visible or right click the task bar icon ans select "Close".

The icons in the settings view are from "Crystal Project Icons"
Author:    Everaldo Coelho
License: LGPL

Thursday, June 23, 2011

Minimum Depth in the SDK

In this post in the SDK Beta Forum I asked Microsoft  if there is an artificial depth minimum cap in their code. There is (at around 800 - 850mm) and currently there is no option to change it.

I think the depth range should be configurable. If you have the same opinion, please to go to my post and support my question if they could make this depth minimum confifgurable - thanks a lot!

Saturday, June 18, 2011

Candescent NUI (7665)

I've put a new version on CodePlex (source and binary) and changed the official release to this version.

Please read the new quick start, because the creation of data sources has changed!

For those who use Candescent NUI and want to try the SDK: I'd recommend against installing it at the moment. For this project there are no advantages, only disadvantages. For example the SDK returns no depth data closer than 85cm. I haven't compared performance yet.

There are advantages over OpenNI in general:
- Easier installation
- Audio data is supported
- You can control the motor
- Personally I like that the skeleton tracking does not need the Y calibration pose

Friday, June 17, 2011

Candescent NUI with Microsoft Kinect SDK

With change set 7506 Candescent NUI now supports both OpenNI and Microsoft Kinect SDK.

You can choose to use OpenNI or Kinect SDK. Selecting the one you don't have installed will result in an exception.

Warning 1!  It seems like the SDK returns depth data only between 850mm - 4000mm distance. The default range for the clustering is set to 500mm - 800mm. The algorithm works best at this range. You can try to use it at 850mm - 1000mm, but it's not very reliable.

I don't know yet whether there is an option to get the SDK to return values closer than 85cm (the device clearly can do it with OpenNI).

Warning 2! This was a fast checkin, I will have to refactor quite a lot (did some copy - paste to get it up faster, shame on me).

Thursday, June 16, 2011

Microsoft Kinect SDK is out!

Microsoft has finally released its Kinect SDK.

Guess it is going to be a busy day!

(Has anyone tried to install it along with OpenNI, do they bite each other?)

Update: As expected, the SDK and PrimeSense drivers don't get along, so I can't recommend installing the SDK when you still want to use OpenNI. I'll try to extend my project so that both OpenNI and the Microsoft SDK are supported, but this might take a while.

Wednesday, June 15, 2011

Multiple OpenNI Generators

Anonymous asked in this comment here how you could get both depth and rgb image synchronously.

I've made a quick example, you can download it here. I haven't had time to test it, so I'd be happy to receive feedback if it works for you. If it does, I will add those two classes in the next change set.

Tuesday, June 14, 2011

Configurable Start Menu

There is a new (binary) version of the start menu available at:

  • There is now a task bar icon
    Start Menu Icon
    Right click to bring ip the context menu
    • I've added a user interface to configure the default menu

    Menu Settings

    This is actually the first WPF window I've built. I'm a WinForms veteran and I'm finding it sometimes hard to get my head around how WPF works. But I begin to like it, despite it still lacks some features that were present in WinForms.

      Monday, June 13, 2011


      Because my time budget is limited, I'd like to know what you would like to see me working on with priority:
      • 1 Publish the image manipulation part
      • 1 Publish the start menu code
      • 1 Detect finger direction (2D)   
      • 1 Fix performance issues
      • 0 Try to improve the algoritm (Making it more reliable, use skin detection...)
      • ...?

      Friday, June 10, 2011

      Binary Version of the Start Menu

      I've added a binary version of the Start Menu preview to CodePlex. I'm still working on the code (I've got a lot of ideas!), so the source is coming later.

      There is currently only one item in the start menu by default (Windows Explorer). And there is no user interface for configuration yet, but you can add programs yourself by adding lines to the file menu_config.csv.

      Please don't change the first line. Lines for programs have the following format: [Name];[Path]


      To show the menu, present your open hand to the kinect at a distance of around 0.5 - 1 meter. To close it again, just close the hand. To start an application, stretch out one finger, move it over the icon, then close the hand quickly, so no finger is visible anymore.

      To stop the application, press escape while the menu is shown.

      Side note: Maybe you've noticed the new PayPal donate button on the right side of the blog. I've decided to  publish the quick start menu (and maybe more) applications for free as open source, but added the donate button in return. So if you would have bought the program, you are welcome to donate a small amount to help me cover expenses.

      Friday, June 3, 2011

      Gesture Controlled Start Menu (Preview)

      This is a preview of a quick start menu that I'm implementing. It's based on the current hand / finger detection code that is available on CodePlex. The idea is that you can configure applications and / or files and quickly start them with a simple gesture. The menu is shown when the full hand is visible, then a menu entry can be selected with one finger. When the hand is closed while an icon is selected the program / file gets started.

      This application is written in C# 4.0 and uses WPF.

      Upgrading OpenNI failed

      Yesterday I tried to upgrade to the newest OpenNI release. Long story short: It failed and I had to revert to v1.0.0.25.

      First I uninstalled all old drivers + OpenNI, NITE and PrimeSensor. Then I installed the newest driver from

      I'm running a 64bit Windows 7, so I was happy to see that there are now 64bit versions of OpenNI, NITE and PrimeSensor. First I downloaded the stable versions (v1.1.0.38) and installed it according to this guide. Everything looked fine (in the device manager), but when I tried to start any sample I got this error message:

      "OpenNI library can't find any module!"

      I tried everything twice, including the unstable versions and the 32bit versions, but I couldn't get it working, so now I'm back at OpenNI v1.0.0.25.

      Has anyone got the newest release running on a 64bit Windows 7 machine?