Microsoft Kinect is one of the most exciting computer interface devices to come along in years. Originally known by the code name "Project Natal," Kinect uses a camera, a range sensor, and a microphone to allow the user to control computing devices using nothing more than spoken commands, motions, and gestures made in midair. Just don't expect to actually use it anytime soon – unless you have an Xbox 360 game console. There is no technical reason why Kinect should not be able to break out of its intended gaming niche; The Kinect controller uses a standard USB interface to communicate with its host console, which is supported by every major operating system. Sure enough, independent developers wasted no time writing drivers and other software to link Kinect to ordinary PCs. Earlier this month, hobbyist hardware vendor Adafruit offered a $1000 bounty for open source Kinect drivers, then increased the figure to $3000. It took less than a week for hardware hacker Hector Martin to meet that challenge. Since then, other enterprising developers have unveiled promising Kinect experiments based on Martin's drivers, and Google employee Mike Cutts announced two more bounties of $1000 each for novel Kinect applications. None of this activity has been lost on Microsoft, but the reaction from Redmond has been less than enthusiastic. When contacted by Cnet, Microsoft reps responded with an email saying, "Microsoft does not condone the modification of its products. With Kinect, Microsoft built in numerous hardware and software safeguards designed to reduce the chances of product tampering. Microsoft 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."
Microsoft certainly isn't the first company to try to shut independent developers out of its hardware; this strategy is particularly popular among mobile phone makers. It took a ruling by the Library of Congress to establish that jailbreaking an iPhone – the process of hacking the phone to allow installation of apps from sources other than Apple's iTunes Store – was in fact legal, despite Apple's objections. Even vendors who are friendly with the developer community can find their hand forced by their partner companies. Palm has long encouraged independent developers on its platform, but when a few hackers unveiled an app that allowed users to tether Palm handsets to PCs as wireless modems, Palm warned that the software could run afoul of Palm's agreements with the Sprint wireless network. But the Kinect situation is distinct from either of these cases. While you could easily argue that modifying an iPhone's firmware to jailbreak it constitutes "tampering" with the product, Martin's open source Kinect drivers run on the PC that hosts the Kinect controller, not on the controller itself. It is hard to see how the mere act of communicating with a peripheral could be construed as modifying it, and yet Microsoft seems to be saying it plans to use "hardware and software safeguards" to interfere with such communication in future. Furthermore, by stating that it plans to "work closely with law enforcement," Microsoft seems to be claiming that the Kinect hackers have broken some law. But what law? Jailbreaking an iPhone has been ruled legal under an exception to the US copyright codes, but Martin's Kinect drivers are original works of authorship; they don't violate any copyrights. The lesson of the CueCat
I am reminded of an earlier case in which a peripheral vendor tried to block developers from hacking its hardware. In 2000, a company called Digital Convergence shipped a hand-held bar code reader called the CueCat to subscribers of several magazines. The idea was that you would use the scanner to read special bar codes printed in advertisements in the magazines, which would trigger your browser to display associated web content. As many pointed out at the time, the CueCat was a dumb idea for numerous reasons. Magazine readers never had much trouble typing in URLs by hand, and few people wanted to install an oddball peripheral for the sole purpose of being fed more advertising. Worst of all, the CueCat would record which bar codes users scanned and associate them with an identifying number unique to each device, enabling marketers to track the viewing habits of individual CueCat users. But independent developers saw potential in the CueCat. Their first move was to defeat the scanner's unique identifying code, enabling users to scan CueCat advertising bar codes with their privacy intact. Next, they wrote expanded drivers for the scanner that opened it up to other kinds of bar codes, including UPCs. In no time, the CueCat was transformed from a humdrum toy that displayed advertising to an inexpensive generic bar code scanner suitable for any number of retail, library, and cataloguing applications. Digital Convergence closed up shop in 2001, and the CueCat went down as a dismal commercial failure. As recently as 2005, a liquidator put two million unused CueCat scanners up for sale at US30 cents apiece. To the hobbyist community, however, the CueCat remains a fondly remembered gizmo.
Microsoft could learn a lot from the CueCat's example. By artificially limiting Kinect to a specific application – gaming – it undermines the potential of an innovative, promising new technology. Unlike the CueCat, which Digital Convergence gave away for free, Microsoft claims it will profit from every Kinect sale. So why not allow purchasers to use the device for whatever applications they choose? By comparison, if I want to use a hair dryer to dry paint, should the manufacturer use "hardware and software safeguards" to thwart me or threaten me with lawsuits? Unfortunately, for all of Steve Ballmer's talk about "developers, developers, developers," encouraging and supporting a truly independent developer community just doesn't seem to be part of Microsoft's DNA. As far back as Bill Gates' "open letter to hobbyists" in 1976, Microsoft has made it clear that it sees commercial software development as the only viable model, and that the role of an IT vendor should be a paternal one. This needs to change. In wake of the departures of Bill Gates and then Ray Ozzie, Microsoft customers are left wondering where the spark will come from that will drive future software innovation. If Microsoft could only let independent developers use its products as they see fit – not just in the ways Microsoft itself envisioned – it stands to gain a lot in terms of customer enthusiasm and product momentum. It should start with Kinect. - McAllister is a San Francisco technology writer