Steve Ballmer's CES-officially-opening keynote is under way as I type this, but thanks to the liveblogs of folks such as Engadget and The Verge (not to mention the Microsoft-served live video stream), I'm able to keep up even though I'm not in attendance in Las Vegas. One tidbit that I just saw is particularly relevant to embedded vision industry participants; to date, Microsoft has sold 18 million Kinect peripherals worldwide, along with 66 million Xbox 360 consoles.
At first glance, the 18-million-sold figure may not seem terribly impressive, considering that Kinect is 14 months old at this point and that the company sold eight million Kinects in the first 60 days the device was on the market (beginning November 4, 2010 in North America, later that same month in other geographies). But consider that those 60 days spanned the all-important holiday 2010 shopping season. And next, consider that even though the Xbox 360 console went on sale five years earlier than Kinect did, Kinect already has an attach rate of one peripheral for every three and two-thirds consoles. Not bad. Not bad at all.
Back in late July, I mentioned that a console software update substantially added to Kinect's vision capabilities, enabling (for example) on-screen avatars to mimic the facial expressions of their "meatspace" equivalents. In early December, Microsoft released yet another user interface upgrade, although this time around the Kinect enhancements focused predominantly on the unit's four-microphone array, delivering a far richer voice control experience to the console. Gesture control wasn't ignored, however; the Netflix application, for example, was substantially Kinect-enhanced.
And back in early August, I told you that Microsoft had finally released the first public beta of its SDK for using Kinect with Windows 7 on PCs. Mid-November brought word of a beta SDK update, along with a rough timeframe for its out-of-beta transition, and later that same month came word from Microsoft that the PC-intended Kinect design would have some unique capabilities, including the understandably necessary "near mode" (since the Xbox 360 version of the peripheral can't be reliably used any closer than six (in single-player mode) or eight (multi-player) feet away.
Well, as I was writing this post, a "tweet" appeared from Microsoft signaling yet another Kinect-on-PC status update. Kinect for Windows (along with, presumably, the finalized SDK and runtime driver build) will be available on February 1, for $249. This is a substantially higher price tag than the Xbox 360 version of the peripheral; here's why:
We love the innovation we have seen built using Kinect for Xbox 360 – this has been a source of inspiration and delight for us and compelled us to create a team dedicated to serving this opportunity. We are proud to bring technology priced in the tens of thousands of dollars just a few years ago to the mainstream at extremely low consumer prices. And although Kinect for Windows is still value-priced for the technology, some will ask us why it isn’t the same price as Kinect for Xbox.
The ability to sell Kinect for Xbox 360 at its current price point is in large part subsidized by consumers buying a number of Kinect games, subscribing to Xbox LIVE, and making other transactions associated with the Xbox 360 ecosystem. In addition, the Kinect for Xbox 360 was built for and tested with the Xbox 360 console only, which is why it is not licensed for general commercial use, supported or under warranty when used on any other platform.
But rest assured, Kinect for Windows General Manager Craig Esler says, the company could have charged even more (but didn't):
We have chosen a hardware-only business model for Kinect for Windows, which means that we will not be charging for the SDK or the runtime; these will be available free to developers and end-users respectively. As an independent developer, IT manager, systems integrator, or ISV, you can innovate with confidence knowing that you will not pay license fees for the Kinect for Windows software or the ongoing software updates, and the Kinect for Windows hardware you and your customers use is supported by Microsoft.
It's not clear to me to what degree, if at all, Kinect for Windows hardware will differ from its Xbox 360 sibling, versus simply reflecting unique firmware running on the PrimeSense SoC and other processing circuitry. Perhaps, for example, the optics and infrared transmitter have been redesigned for closer-proximity operation. Note, though, that if you're a PC developer, you'll need to sooner-or-later wean yourself off the Xbox 360 version of the peripheral, regardless of whether yours is a commercial or non-commercial application:
Although we encourage all developers to understand and take advantage of the additional features and updates available with the new Kinect for Windows hardware and accompanying software, those developers using our SDK and the Kinect for Xbox 360 hardware may continue to use these in their development activities if they wish. However, non-commercial deployments using Kinect for Xbox 360 that were allowed using the beta SDK are not permitted with the newly released software.
Non-commercial deployments using the new runtime and SDK will require the fully tested and supported Kinect for Windows hardware and software platform, just as commercial deployments do. Existing non-commercial deployments using our beta SDK may continue using the beta and the Kinect for Xbox 360 hardware; to accommodate this, we are extending the beta license for three more years, to June 16, 2016. We expect that as Kinect for Windows hardware becomes readily available, developers will shift their development efforts to Kinect for Windows hardware in conjunction with the latest SDK and runtime.
Followup: According to Wired Magazine, "The Kinect for Windows unit also offers a modified USB connector and better protection against noise and interference. Both tweaks are designed to better incorporate the Kinect hardware to the PC environment — even if the basic hardware looks identical to the original." Is it just me, or does anyone else wonder how quickly the hacker community will figure out how to add "near mode" firmware support to Kinect for the Xbox 360?