Stabbed in the back by Microsoft
In a recent experiment, I discovered that Microsoft have deliberately capped the minimum depth range of the Xbox Kinect controller (when running it on a Windows 7 PC using the official Beta 2 Kinect SDK) to a lousy 80cm. They have done this so that you will buy the new “Kinect for Windows” controller (which costs more than 4 times as much as the Xbox version) in order to unlock this cap, and track from ~50cm instead. They’re calling this “near mode”, and marketing it as an entirely new feature, when in fact it is not! Your existing Xbox Kinect controller is not only capable of tracking from 46cm and up, we (with the TKinect project) have been doing this for more than a year!
Why is this range important?
The 50 to 80 centimeter range is crucial for such features as hand/finger tracking, facial recognition, and other close-range or high-detail 3D scanning/tracking purposes.
TKinect’s primary feature is the Hand Tracking ability, along with the “Gesture Dictionaries” enabling us (as software developers) to define an infinite variety of hand/finger gestures which in turn can be used to control all aspects of our applications.
Indeed, one of my personal projects using the Hand Tracking and Gesture Dictionaries is to provide Gesture Dictionaries to support various sign languges (such as Makaton, British Sign Language [BSL] and its global counterparts). This will provide new opportunities for handicapped people, particularly as a replacement for speech recognition/dictation for the deaf/mute community… but also those suffering from neurological disorders which limit their range of vocal/precision expression.
Microsoft have basically made it so that in order for people to benefit from these important abilities, they’ll have to pay 4 times more to do it! I consider this both unfair and exploitative.
How do you know Microsoft is deliberately capping the range to 80cm minimum?
This is something you can easily verify for yourself! I know this because TKinect version 1 (using the CL NUI SDK) allowed us to track points as close as 46cm, the Beta 1 version of the Kinect SDK from Microsoft also allowed tracking from 46cm, but Beta 2 does not (check out the third demo project on the TKinect 2 SVN repository to see for yourself).
I also have confirmation from Rob Relyea (Kinect for Windows team at Microsoft) that the Xbox Kinect with the official SDK caps the near range at 80cm (only, he believed it was capped in both Beta 1 and Beta 2… which my tests don’t agree with), and the Kinect for Windows controller does not!
What can be done about it?
Well, for those who don’t know… Microsoft’s Kinect controllers are basically a rebranded version of a technology invented by a company called PrimeSense. The good thing about this is that Microsoft do not hold exclusive rights to this technology, so there are other controllers on the market which do the same thing (and do it better than the Kinect, too).
The ASUS Xtion Pro Live
One of these is the ASUS Xtion Pro Live. Courtesy of the generous and forward-thinking folks at Blaise Pascal Magazine, I now have one of these controllers, and have already begun making the necessary changes to what is currently known as TKinect to make it also support this device.
The ASUS Xtion Pro Live has many substantial advantages over the Kinect…
- The second-most important of these is that both its Depth and RGB cameras are
twicequadruple the resolution of the Kinect’s! Resolution is critical, as the higher the resolution, the more accurate the depth information provided to our software. In turn, this means greater flexibility, higher precision, and less ambiguity between objects.
- Another substantial advantage of the Xtion Pro Live over the Kinect is that the Xtion doesn’t require any external power… it is powered entirely by a single USB socket!
- The Xtion is also much smaller than the Kinect, making it ideal for use with laptops and other portable systems.
- The Xtion supports Windows and Linux (with, I’m told, MacOSX support on the way too), while the Kinect is only officially supported by Microsoft for use on Windows.
- Finally, the most important feature of the Xtion over the Kinect (Xbox version running with the official SDK anyway) is that the Xtion can track from 47cm, as opposed to the Kinect’s lousy 80cm (artificially restricted by Microsoft’s SDK)
What does this all mean for TKinect?
First, TKinect will be re-branded with a new name, as the project is no longer specific to the Kinect controller.
Yes, the Kinect will continue to be supported, but it’s not the only player on the block anymore… and not even the best at that!
For those of you like me whom only own a Kinect for its use on the PC, I would highly recommend either getting a refund (where possible) or selling it to recover some of its cost. Further-more, I recommend getting hold of the ASUS Xtion Pro Live, as this is going to give you far better results than the Kinect, with tons of other advantages over the Kinect, and no downsides (aside from the price, which is about twice that of the Xbox Kinect controller, but still half that of the Kinect for Windows controller). Oh, the Kinect has a motor to control the vertical orientation, the Xtion does not (you can tilt it manually). This is such a minor issue, I almost forgot to mention it… but it is one less thing to go wrong (the Kinect has been prone to having the motor break due either to operator error, or a design flaw with the device itself)!
The suite currently known as TKinect will work almost exactly the same way whether you’re using a Kinect controller or the ASUS Xtion Pro Live… except where advanced features are available on one but not the other! For example, all tracking systems will use the best available resolution provided by the hardware. In the case of the Kinect, this will be 320×240. In the case of the Xtion, it’ll be 640×480 (double that of the Kinect).
The suite will allow you to have your software auto-detect which controller is available on a user’s machine, as opposed to you having to make a Kinect version and an Xtion version!
In summary: Kinect is not as good as it once was. Xtion Pro Live is awesome. TKinect name changing. Suite growing to support other controllers in a very clever way!
What about FreePascal/Lazarus?
FPC/Lazarus will be supported on the new suite… and everything will be tested on both FPC/Lazarus and Delphi to ensure it remains compatible with both!



January 17, 2012 at 5:54 pm
You say changes in the name, will this also happen with the SVN and if so what is the name going to be?
Cheers
Mario
January 17, 2012 at 6:03 pm
It’s going to be a fresh SVN repo and those details will be provided shortly!
January 17, 2012 at 6:29 pm
Interesting!
Did you communicate on this with the Kinect team at Microsoft?
Seems it would be difficult to refute…
January 17, 2012 at 7:20 pm
Yes! Rob Relyea from M$ asked me for some details, I replied with those details and a bunch of questions and am at present waiting for a reply.
Rob did confirm, however, that there is a cap of 80cm in the official SDK applied to the Xbox Kinect, and we know from the marketing of the Kinect for Windows controller as sporting this feature called “Near Mode” that this artificial restriction doesn’t apply to the new (expensive) device.
Ergo, the ASUS Xtion Pro Live is the best solution! It’s cheaper than the Kinect for Windows controller, and in every way superior to it! Why would anyone spend twice as much on an inferior product?
January 17, 2012 at 8:07 pm
640×480 is quadruple 320×240, not double.
And Microsoft in “give one day, take away the next” shock! Who would have thought… LOL
January 17, 2012 at 8:23 pm
320 * 2 = 640 (double)
240 * 2 = 480 (double)
320 * 240 = 76,800
640 * 480 = 307,200
So yes… technically you are correct, it is quadruple in terms of total number of pixels! In terms of dimensions, it’s double (funny how that works).
January 17, 2012 at 8:23 pm
Hi Simon, this is looking good, I have just ordered the “ASUS Xtion Pro Live” so will give it a try when it arrives.
As a prfoundly deaf developer I am also interested in your BSL / SSE Gesture Dictionaries, the idea of being able to dictate by sign is an interesting one, though BSL to english would be quite interesting due to contextual and syntaxtual differences.
Thanks for all your hardwork.
January 17, 2012 at 8:35 pm
Hi Adam… first of all, while I cannot exactly empathise with your condition (I’ve never been deaf for any extended length of time), I have recently been going deaf for a few hours at a time due to fluid in my middle-and-inner ears. It is, to me, a strange way of perceiving the world… and I have a new-found appreciation for being able to hear!
At the same time, it has brought to my attention all of the audio queues I take for granted when using a computer, and I do use speech recognition quite a lot (especially with Android for conducting searches or writing brief statements)
My youngest daughter’s communication development has been going slowly (she was premature at birth), so we’ve been receiving training in a sign language designed to improve communication skills (and the development there-of) in children, called Makaton. Literally today I completed the course. With that in mind, I have begun to see the sorts of limitations she would have today if trying to use a computer… much in the same way as the limitations I notice during times when I genuinely cannot hear anything.
I think it’s not only a great idea to give software an understanding of sign languages (both the signs and the syntax/grammar), it would be fairly cruel (given the technology now exists to do so) not to do it!
I’d be very interested to hear what problems/limitations you encounter when using computers as a deaf person… as you may have noticed other things I (given my brief occasions of being deaf) have not.
Computers should be for everyone!
January 18, 2012 at 12:34 am
This is good news! Open for suggestions? TMotion, T3DScanner?
January 18, 2012 at 1:10 am
All part of the plan, Victory!
January 18, 2012 at 2:48 am
Great research! Glad to see that this technology will be available to other non-Microsoft platforms for those that want to pursue it.
Any plans to support Linux and Mac OS X should volunteers with these systems help port it or you are able to put an environment together?
You could go bitter and call it TNotMicrosoft3DTrackingAPI but it doesn’t have a nice ring to it.
January 18, 2012 at 2:53 am
Well, I have Windows, I have OSX, I have Linux… but this is an open source effort so the more help the merrier, really!
January 18, 2012 at 9:03 am
Supporting FPC/LAZ is such a great news. If you could make it work on ARM Linux board it would be awesome (imagine it working on a 25$ Raspberry Pi ARM Linux Board)! Thank you!
January 19, 2012 at 2:00 pm
That depends on whether PrimeSense provide drivers for ARM Linux! The so-called $25 ARM Linux Board actually costs $35, and for those of us in the UK we have to add tax too
January 22, 2012 at 7:50 pm
Hi Simon,
I’m sorry, but a little correction is needed in the URL to Blaise Pascal Magazine – a colon after http
Btw, don’t you know why on the purchase page http://us.estore.asus.com/index.php?l=product_detail&p=4001 it is stated Effective Distance is 0.8-3.5 meters, not from 0.47 meters? Thanks, nevertheless ASUS device is amazing! It is like new shining thing from Apple after herds of boring PC stuff
January 22, 2012 at 8:25 pm
Cheers for the URL correction (hadn’t noticed).
Yes, I noticed that ASUS is saying 0.8 meters minimum range…. but it’s simply not true! I’ve already proven beyond all doubt that the Xtion Pro Live tracks as close as 47cm (perfectly good enough for even the most demanding scanning/tracking needs)
January 24, 2012 at 4:30 pm
Simon, there is yet another article on Kinect for Windows near mode. What’s confusing is the diagram where near mode starts from 40cm in “good conditions”!
http://www.i-programmer.info/news/91-hardware/3654-kinect-for-windows-near-mode.html
January 24, 2012 at 5:15 pm
It’a all a lie! The Kinect for Xbox controller is PERFECTLY CAPABLE of accuratly measuring distance as close as 46cm! I’ve been doing it for over a year, and only in Beta 2 of Microsoft’s so-called “Kinect SDK” did they add this 80cm minimum restriction!
It’s a lie to sell a pointless “new” device (with literally nothing different from the existing one).
Microsoft are LIARS, and I for one won’t be wasting my time with them!
January 24, 2012 at 7:55 pm
I see your point. Neither I like the way M$ is doing. But I meant that 40cm that mentioned in the article and the diagram is even more close range than 46cm.
January 24, 2012 at 8:57 pm
No… their diagram shows 40cm up, but in actuality is 46cm! This is a limitation of the way the PrimeSense technology actually works… and Microsoft can’t do anything about that other than ESTIMATE nearer ranges (which I’ve been doing in my work).
February 13, 2012 at 7:52 am
Hi Simon,
any update as to progress? Maybe given the interest you should do the same fundraiser as you did for Lua4Delphi so you could be recompensed for your hard work.
Kind regards,
Adrian
February 13, 2012 at 3:01 pm
Hi Adrian,
I certainly can see the potential benefit to expediting this development, but it wouldn’t make sense as it did with Lua4Delphi.
The L4D fundraiser was more of a “pre-order” affair with heavy discounts on the commercial suite which sits atop the free, open source base. The professional suite is aimed at companies or developers with large-scale implementations planned, where the automation tools provided in the professional suite drastically reduce the time it takes to complete (and test) said implementations.
The project formerly-known as “TKinect”, presently known (working title only) as “DelphiNUI” has no such professional additions or automation facilitites to speak of. The entire project is being given away freely to all Lazarus/FPC and Delphi developers.
There’s simply no incentive for the otherwise-unwilling to contribute financially for something they’ll be getting eventually for free (perhaps even as part of future versions of Delphi “out of the box”).
A “Donation” widget sits permenantly on the column to the right, and is there for anyone who chooses to provide financial support to all of the open source developments… so nothing is stopping anyone from helping out.
It stands to reason that the free and open source projects don’t make a penny for myself or my company… thus my source of profit comes from doing client developments on contract. The more contract work I have to do to cover the company’s expenses, the less time I have to work on the free/open source projects. Still, the nature of open source is that it develops even in the absense of financial support. If nobody else seems to understand the immediate worth of these projects, then I don’t expect them to make a contribution.
If someone realizes (as I do) the worth of this motion-based input technology in real-world applications, then they’ll likely make a contribution without having to be asked.
As far as I’m concerned, money donated gives me the time I need to invest in the open source projects others are most interested in (which is also how I manage the development schedule of these projects)
Still, I appreciate the thought…. I just don’t think it’d work in this case, and I don’t expect people to give me money for something they will get for free (albeit after waiting much longer)
February 28, 2012 at 12:15 pm
Perhaps your information is just outdated but:
- I can buy the Xtion Pro for 180€, its just 40€ more than a Kinect costs (not the double)
- The most important benefit over the kinect, the minimum distance doesn’t exists. Not officially. Asus says the distance of use is “Between 0.8m and 3.5m”.
Is it possible that distances lower than 0.8m are actually failure prone? Also, Asus says the Xtion Pro is for Developers only. Therefore i think if we (the developers) made enough software for this device, they start a app store (they already announced this) and release a customer version.
In my opinion a customer device should be more stable than a developer version. Which means i would’nt be surprised if they going to make the same restriction as Microsoft did.
Which would be the exact same behavior Microsoft showed with their SDK. The first unstable sdk allowed near range solutions and the later one not. I don’t want to defend MS but perhaps they got a technical reason for their restrictions.
February 28, 2012 at 1:20 pm
Yes, at the time of writing, the announced price of the Kinect for Windows controller was around double that of the Xtion. Microsoft have had to reduce their price since then!
ASUS is incorrect about the minimum range of the Xtion…. I have conclusively proven it will track from 45cm, not 80 as specified (I’ve sent a letter to ASUS to correct this information).
The Kinect for Xbox controller running on Windows DOES (again, I have conclusively proven this and even have an e-mail from Microsoft confirming it) have an 80.1cm range restriction forced by the SDK. Indeed, the Kinect for Xbox controller appears to no longer work AT ALL with the final release version of the Kinect SDK (released Feb 1st). This is a deliberate betrayal by Microsoft, attempting to force us all to spend even more money on an identical Kinect controller (with literally no difference from the original beyond the lack of “Xbox” branding on the front of it).
Distances closer than 80cm are NOT prone to failure or error. I have been using the original Kinect to track individual fingers at ranges as close as 46cm for over a year without incident. Microsoft are simply LYING (yes, I said it and I’ll defend my position with evidence in court if Microsoft wish to persue a liable suit against me for saying it).
There is a consumer version of the Xtion Pro, but I haven’t yet found it available for sale. The developer edition is fine, though…. the same device, only it comes with the full PrimeSense SDK (which presumably the consumer version does not).
Again to reiterate, the only difference between the Developer edition and a Consumer edition is that the Dev edition comes with the complete SDK, where a Consumer edition would not.
The “near range solution” DID work just fine. As I have said before, I’ve been using the Kinect to track individual fingers with very high precision for over a year. Microsoft are outright LYING about this, despite the abundance of evidence to the contrary
February 28, 2012 at 3:32 pm
I was just wondering if the Xtion is really a better choice. Yes, you wrote that you had no problems in one year. But wihtout details about how often and how intensive you worked/tested the near range solution it is a somehow a useless information.
Don’t misunderstand me. I have no doubts that you telling the truth and i’m grateful for your work. I was just wondering…
That MS droped the support for the XBox controller is something i was not aware of. But now it is quite obvious that you’re right.
February 28, 2012 at 3:36 pm
I was using the near-range tracking of hands and fingers DAILY. For a long time, I had actually been using my Kinect in place of the Keyboard and Mouse (something of a long-term “real-world research project”). The bottom line is that the Kinect (and all PrimeSense devices) are FAR more accurate at the 45 to 80cm range than they are at any other. This is because, between 45 and 80cm, PrimeSense devices have 1mm-or-better precision (it is better than 1cm, I just round it up as any unit lower than 1mm is unnecessary for the majority of uses). 80 to 100cm range you basically lose 1.5mm of precision, so you’re only accurate to 0.25cm, and it gets progressively worse the further away from the controller you get.
This isn’t just me saying it… this is backed up by the research and studies of not only hundreds of other developers around the world, but also by PrimeSense’ own documentation of the technology.