Microsoft Says Kinect Left Open By Design
kai_hiwatari writes "Around two week ago when Adafruit announced a bounty for developing an open-source driver for the Kinect, Microsoft made it clear that they didn't condone it. Now Microsoft seems to have realized the potential of their device and has made a U-turn. Alex Kipman, Xbox Director of Incubation, now says that they left the Kinect open by design. Kipman said, 'What has happened is someone wrote an open-source driver for PCs that essentially opens the USB connection, which we didn't protect, by design, and reads the inputs from the sensor.'"
We totally meant to do that cool thing you guys thought we didn't mean to do ... and stuff.
Just guess which will be my next console
I think what he meant to say about the earlier statement was that Microsoft turned 360 degrees and walked away from it.
If Microsoft's knee-jerk reaction is the wrong one, well, that's to be expected. They're assholes by nature. But, if after sleeping on it (and consulting with their lawyers and engineers and finding out there's nothing they can do that won't eat up every cent of profit they might have made on the thing) they come up with the right decision, I'm willing to forget their previous stance. Keep it up long enough, and they might even earn some goodwill.
<xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
This sounds exactly like what was said on NPR Science Friday yesterday -- probably a regurgitation of that program. What the article doesn't point out: M$ is locking down the interesting parts at tightly as possible --- that is, you can drink from the 30 fps firehose of data coming out the USB, but there's no access to the interesting libraries to turn that into information. Can't blame 'em M$ has about three years work (no idea how large the team is) in those libs.
Before open driver:
"Developing open drivers for the Kinect hardware will be considered here at MS as tampering with trade secrets, and will be prosecuted as such."
After:
"Oh no no no no no we totally designed it that way in order to foster, um, innovation?...yeah good job to those guys."
Fixed that for you!
Get other people to invent and develop, then they can patent and troll!
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
The first thing to talk about is, Kinect was not actually hacked. Hacking would mean that someone got to our algorithms that sit inside of the Xbox and was able to actually use them, which hasn’t happened. Or, it means that you put a device between the sensor and the Xbox for means of cheating, which also has not happened. That’s what we call hacking, and that’s what we have put a ton of work and effort to make sure doesn’t actually occur.
What has happened is someone wrote an open-source driver for PCs that essentially opens the USB connection, which we didn’t protect, by design, and reads the inputs from the sensor.
"We also /wanted/ the Kin to fail after like 9 minutes on the market as a learning experience for our Win7 phone team"
Hacking would mean that someone got to our algorithms that sit inside of the Xbox and was able to actually use them, which hasn’t happened. Or, it means that you put a device between the sensor and the Xbox for means of cheating, which also has not happened.
No, that's cracking. Hacking seems to be exactly what has taken place... The device has been used as defined by the user, not the original software, for purposes outside of the original scope of the device as intended by the producer of the device.
Twinstiq, game news
It can produce a depth image. It's not thee-eyed (whatever that should be), but on the other hand, I'm not sure what you bought for $200 - either something else, or somebody really ripped you off.
I haven't seen any Kinect APIs or support in Visual Studio. I do see some very early libraries by some 3rd parties.
For Steve "Developers^3" Balmer to not have the resources in place is pretty ludicrous and tantamount to negligence. They obviously have all the pieces, I just don't see them in play. If they were smart, they would start rolling this out the SDK and OS integration before Christmas. Unfortunately, I have about as much faith in MS handling this right as I do the Dallas Cowboys making the Super Bowl this year.
I am much more excited by gesture and voice controls then touch interfaces. I have a cold this week and just trying to keep my monitor clean without touching it is a challenge.
Most game developers won't develop games for a pricey peripheral until Microsoft can say we've sold XXX (large number) of Kinects. Even if they're losing money on them (I've read arguments both ways) they need every sale they can get to guarantee a steam of games for it. Even if that means Joe-Linux is getting a Microsoft subsidized IR webcam.
People far too often ascribe personal characteristics to a corporation to the extent of viewing them as having one mind, one vision, one goal. That's not the case of course. They are made up of many people, who have different objectives. This is particularly true in the case of the massive conglomerate types like MS that doesn't have a controlling leader.
So what very well could have happened is that the development/project team on Kinect said "Let's leave this sucker open. We aren't going to spend any funds developing alternate uses, but let's not spend any time putting shit to prevent it either. Let people do whatever the hell they want with it." So Kinect gets developed with that in mind. However when it is launched and people look at it Assistant PR Flunky Third Class Number B was asked about hacking it, probably with the journalist using the term "hacking" and then fired back with Standard Lawyer BS Statement Regarding Hacking Form 5114CXX1 Subtype J which said "Graaaah! Hacking bad MS smash!" After a bit this makes the rounds, while Kinect is hacked, and internally the questions is asked as to the real intent. The director of the project says "It was supposed to be open!" and after clearing that with legal and corporate for release, they do so.
Notice the original statement was "a company spokesperson." In other words some low level guy who gets the calls when a news publication wants to know something, someone with no real knowledge or authority. This new statement is from Alex Kipman, a director at Microsoft who is directly involved with this, someone who knows what the hell is going on.
So that's probably what happened. Not changing their minds, just normal corporate confusion. The statement Cnet got was just a generic response from PR, that probably hadn't been well considered or prepared, just pulled from the "We defend our IP," bin. The second statement is their real position, from the project director.
I'm sorry sir, but this isn't the appropriate venue to offer those sorts of services. I'd refer you to Craig's list, but apparently they aren't that sort of venue either.
False. The Kinect has hardware (ASIC's, IIRC) to do stereo vision, as well as an infrared textured light projector. This hardware does textured-light stereo, which is very computationally intensive task. You're getting RGB+D images for the computational price of reading from a webcam, instead the cost setting up a textured light projecter, reading two webcams and running stereo software. You also get a stable, well calibrated system, instead of what you'd get with building your own. It also costs $150 instead of $200, BTW.
Responsibility is an addiction
Virtue is a temptation
Community is a cartel
Can you spell DMCA?
Breaking encryption that was put there for a purpose other than to control access to an original work of authorship does not violate the anti-circumvention provisions of the Digital Millennium Copyright Act. Chamberlain v. Skylink; Lexmark v. Static Control Components.
How is this insightful when its wrong?
The Kinect does not do stereo image capture. Thats what those 3D movie people are doing (when they bother with that.)
The Kinect has two image sensors, thats for sure, but they dont even capture the same wavelengths of light.
The IR sensor captures only infrared.
There is some processing going on in the Kinect, but only to measure the spacing (and perhaps size) of the IR dots that are being projected by the device in order to produce a depth-map. This processing is clearly mostly trivial.
The magic of the Kinect as used by Microsoft is whats going on inside the xbox where they take the optical image, and with assistance from the depth map, detect people and construct a simplified 3d model (usable for input triggers) of how their body is oriented.
It is this second part that is clearly not-trivial. People come in all shapes and sizes, wear different clothing (if any..), and so forth and so on. Simply flagging the pixels that belong to people vs pixels that dont isnt easy, which is why the depth map is used for assistance.
"His name was James Damore."
Hacking means taking a (usually integrated circuit or code based) product that was designed for, built for, tested for, and meant for use A, and modifying it or its inputs or its outputs for use B. Cracking is bypassing a security system, by means of hacking, for the purpose of hacking or some other purpose.
By these definitions, the Kinect was hacked. If the internal Xbox algorithms had been found and used or if someone had augmented the Kinect to cheat in a game, then that would probably be bypassing security systems (I don't know the specific internals of the Xbox) and that would be cracking.
The Kinect wasn't hacked, either. What it does is create a RGB+D image, along with providing a 4-microphone array and a few other ancillary functions. This has not been changed, it's inputs (The images/sounds it captures) and it's outputs (Video, Depth Map, Audio, Accelerometer data) have not changed either. All that has happened is that someone has written a driver for the device by observing the data. If they had opened the unit and read and decompiled the firmware off the ASIC, or decompiled a firmware update, then sure, that's hacking. Observing the (unencrypted) data flow? Not hacking. Replaying the data back to the device? Not hacking.
Is it "Hacking" a printer to write a driver for it, without touching or modifying the printer itself in any way? How about a serial modem? How about any other device out there?
If they had, for example, opened up the device and used a JTAG header to get the data from it, or installed different firmware on it's ASIC to export the data in a different format, then I would be all for your definition of "Hacking". As it is, they've written a driver for an "Unknown device". The proof of this is that you can go and buy a Kinect raw from the store, plug it in fresh out of the box with no modifications whatsoever, and it works perfectly. And that a Kinect thus used can be transferred back to an XBox 360, where it will continue to work as if nothing has changed.
The tl;dr version: Circuit bending a Speak'n'spell? Hacking. Jailbreaking a phone? Hacking. Installing Linux on a consumer router? Hacking. Writing a device driver? Not hacking.
What is not standard about the USB ports on the Xbox? You can even hook up a regular old USB keyboard to it (makes debugging so much easier, by just adding some keyboard listeners to your code and let them fire debug stuff), it's the only device except for my PC that will charge my MP3 player (USB power handshake thing) , and inside the plastic shell lies a regular laptop SATA drive, with a funky connector to connect it to the Xbox (I've broken the thing open because my drive likes to spin down after initial boot, giving me a E68, but a quick disconnect-connect fixes that). That the drive is signed by microsoft with a file on the first couple of sectors is just DRM/anti-piracy/money grabbing, but you can rip it out, format it and use it as a normal drive, nothing abnormal about it.
If you're really so gung-ho for open, I don't see why you would be interested in a PS3, with all the rampant "shove it up your ass" anti-modding updates sony has been going on for the last year or so, or the fact that you'd have to re-encode your MKV's to watch on the damn thing.
The perfect open system is a Windows PC (Linux gaming is still a sad affair, even with Wine) with a beefy videocard, a x360 controller, all hooked up to a nice TV. The Games For Windows thing makes it almost into an Xbox (can't tell the difference between Just Cause 2 PC or Xbox, even the tooltips give you the correct icons0, you get better graphics and you can do whatever the hell you want with it. A cheap dualcore system with a 5770 goes for not that much money these days, and can keep up at full HD resolutions with ease. Also gives you access to every codec you will ever need, as well as multitasking, free multiplayer gaming, home entertainment system and whatever you cook up yourself in whatever programming language that you prefer.
PS: Slight hate on the PS3 for all the "fsck linux" attitude, but not intentional as a flame post
On-Topic: I hope they release some sort of (un)official extension for XNA with kinect integration soon, do that and I will buy the thing in a trifle, just to do some hacking with it. I'd guess the thing could also be used at parties: no flying wii-motes to hit expensive TV's :D.
I no longer consider Windows PCs open systems. Windows NT 6.x builds DRM deep into the system. Certain hardware such as video cards are required to implement undocumented features for Windows certification. This is done to facilitate the "protected path" for Blu-ray playback.
The Windows 7 EULA prohibits you from installing software that would add functionality to the system.
The reason "Linux gaming is still a sad affair, even with Wine" is because the hardware is undocumented. Without documented hardware, it is nearly impossible to write good drivers for that hardware. Wine sucks for games (aside form hardware issues) because of DRM. Currently, the Wine developers have a policy of not "patching out" the DRM on malware-infested games.
Digital Restrictions Management is a problem for Windows too. You can not install AAA titles on a computer you use for business because you can not install games under a separate limited user account. The DRM requires Administrative access: one of the reasons UAC was introduced. Why Microsoft didn't copy Apple in their MacOS9->X transition, I don't know. I suspect it is because they are hoping to make their money on DRM systems in the future.
No it isn't, and that's not how the algorithm works. As the camera is placed very near to the IR projector, the dot spacing is essentially constant. The dots may be farther apart in physical space for farther objects, but the camera can't see that.
As far as we can tell/guess, the way it actually works is by measuring horizontal displacement of the dots caused by objects at different depths, due to the horizontal distance between the projector and the camera. This is a lot harder, requires subpixel processing to achieve any kind of depth resolution, and requires a carefully controlled dot projection and calibration to that specific pattern. Not to mention this is likely the reason why the laser projector is temperature-stabilized with a peltier (to keep the pattern as generated by the diffraction grating stable) and why the Kinect's internal chassis is quite solid (the distance between the camera and projector and their angle is critical).
In fact, you can point two Kinects at the same subject and overlap their IR patterns, and they still work quite well and do not interfere (!) except at a small percentage of points where the clouds line up in the wrong way (you get two almost complete images, with a bunch of small holes where the patterns happen to line up).
Absolutely. You can get a PrimeSense or Kinect camera if you are a serious game developer. You can also just purchase a Panasonic D-Imager depth camera for a few grand. Probably there will be a dozen of these cameras at consumer price points within a year or two. Having the data from the cameras, as pointed out, is somewhat limited.
Creating algorithms that will analyze movement takes about 4 years, and you can get this software from Softkinetic and from Omek (I work for Omek). Microsoft has obviously developed its own software, but it probably won't share it with you. Omek also has a gesture recording capability, which means that instead of programming new moves, you can actually stand in front of the camera and record new moves. You need to use a number of different people to get it right, but it does reduce development time dramatically. So anyone serious about this doesn't have to re-create this --it's out there and you can license it. Eventually there may be open source solutions, but it will take a while.