Kinect's open-source ambitions
Kinect's role as a tinker toy for garage developers signals a change in how Microsoft is approaching openness in an otherwise closed gaming ecosystem.
It's a story you don't hear too often: a large company taking a step back from pursuing those who might be using its technology in ways that were never intended, as well as admitting that the product was made to open up those avenues by design.
That much is now true of Microsoft and its stance on going after those who were making third-party software drivers for its Kinect hardware accessory.
The story of how we got there is now, for the most part, well known. The product came out and was taken to immediately, not just by gamers but also by tinkerers who wanted to have their way with the hardware and use it in places Microsoft was not yet offering--like on its Windows operating system.
What's interesting about all this though, is that it's a distinct departure for Microsoft, given a history of increasingly closed hardware accessories that make up the Xbox ecosystem. Admittedly, Kinect is a very young product, having been on store shelves for less than a month, but it's already proving to be a hit for Microsoft, selling more than 2.5 million units in its first 25 days on the market. The company estimates that it will sell another two and a half million by the end of the year, which is quickly approaching.
So is the move to encourage tinkering part of that drive for success? Is Microsoft hoping some of the videos of virtual lightsabers and 3D camera shifting to get people that may not have purchased one to think again?
How we got here
Kinect was made available to developers shortly after at Microsoft's press conference at E3 2009. Following the hardware's consumer release earlier this month, enthusiasts quickly got to work creating software of their own that would let them tap into the device's array of cameras, microphones, and the built-in motor. This process was, in part, incubated with financial encouragement from Adafruit Industries, which promised to who could create an open-sourced driver for the device with an ever-increasing amount of cash.
During this process, Microsoft had told CNET that it had hardened the Kinect's security both on the software and hardware side, and that going forward, the company "will continue to make advances in these types of safeguards and work closely with law enforcement and product safety groups to keep Kinect tamper-resistant."
Then, a week and a half later, two company representatives effectively did an about-face on the subject during an interview with NPR, saying that those who were writing software for the Kinect would not be pursued. Furthermore, the company was paying attention to what users were doing with the hardware.
Those intentions were further elaborated in a follow-up statement by a Microsoft spokesperson saying that the company was "perfectly comfortable with hobbyists taking advantage of that raw data," but that "any of these uses of the Kinect for Xbox 360 are not licensed or authorized by Microsoft and any modification of the Kinect would void the warranty." Part of the reason for all this, as Xbox's director of incubation Alex Kipman said during the original interview with NPR, was that the company had left the Kinect's back door open for tinkerers.
Xbox's closed ecosystem
While Microsoft's Windows operating system is quite open for developers, the Xbox has been intentionally designed as a closed system with tight regulations on how hardware can be used, and how software gets to the end user. This in itself is not unique, or out of character in the world of game consoles, but represents a departure from Microsoft's approach to peripherals and third-party software within Windows.
Unlike the first Xbox, which could be serviced by users, and thus became an easy target for enthusiasts who wanted to do things like swap out the hard drive, and install alternate game launchers, the Xbox 360 was given extra layers of security to keep the same things from happening. Even so, hackers have dug down to the nitty-gritty bits and gotten the machine to run pirated or otherwise modified games, though Microsoft has done a good job at keeping the incentive low for those who choose to go that route by from its Xbox Live service, as well as putting out updates that patch exploits.
That same closed approach spilled out into accessories for the console, including storage options, which Microsoft made proprietary by design. Savvy hardware makers like Datel got around this by creating products that could effectively trick the system into thinking it was standard kit. Though, as part of its frequent system software updates, last year Microsoft put the kibosh on things like third-party memory cards, as well as tools that would let users expand the console's built-in hard drive space.
As an olive branch of sorts, and in part to jibe with the removal of the console's proprietary memory card slots in its hardware refresh earlier this year, Microsoft later updated the Xbox system software toto serve as memory too.
With the Kinect though, it's safe to chalk part of this tinkering movement up to the hardware itself beginning as something closer to a PC peripheral compared to what can be found on other consoles. While the plug uses a special five-sided configuration, it can also work over USB with an included adapter. Microsoft has also spoken, albeit in vague timelines, about getting the hardware toand as a broader part of interacting with devices in living rooms and other parts of the home. But we're not there yet--at least officially.
The next move
How far will tinkerers go with the Kinect? Based on what users have come up with already, the possibilities run the gamut from simple indie games and visual effects tools, to alternate control mechanisms for PC games and other software. Microsoft itself has also using the tool for things like augmented reality as part of advertisements that let you touch and interact with a virtual product.
One thing worth noting is that garage developers are still being kept from some of the action that's happening on the other end of the equation. These are the algorithms being processed by the Xbox. As part of this story, Microsoft would not comment on what some of those algorithms include, however one of the most basic ones in use helps the sensor pick out objects from the background as being more important than others. This includes users, which enables things like taking control of the gesture UIs, or simply signing someone on with their system account.
Some developers have already started to do their own version of this with software that can identify objects. Having access to some of those same tools on the PC-side could open it up to even more types of activities, as well as giving the hardware a better chance to pick up small details in less than ideal lighting situations.
Short of that happening, Microsoft's next big step to bring the Kinect to a wider audience is already in progress. Through its Research branch, Microsoft is offering up Kinect to academic institutions, including USC, which Kipman confirmed during the NPR interview, as well as saying that it's already been in other institutions. It's safe to assume the University of Washington is also on that list, given its close proximity and long-standing collaborative history with Microsoft Research.
It's doubtful academics will come up with games, versus some of the aforementioned control mechanisms and gesture-based software tools. What will be interesting to watch though, is what kind of access they get to the innards of Kinect versus game developers and whether that ends up making it back into the product as part of the SDK.
Additionally, Microsoft has said it's working to bring Kinect to indie developers through its XNA tool set. This is effectively one step down from being a full Xbox developer with an Xbox development kit, and it opens up the Kinect platform to a much broader set of developers, who will then be able to include sensor's functionality in their games. It also takes the Kinect one big step closer to hitting the PC, as XNA developers can write applications that run on Windows.