Monday, April 18, 2011

Official Kinect SDK to be Open Source

Microsoft had previously announced its plans to make the Kinect for Windows SDK available this Spring, initially for non-commercial use and later for commercial use. At the MIX11 conference this past week during the day 2 keynote (starting at the 1:40:10 mark of the video) they reiterated this plan and gave a few more details, including support for C++, C#, and VB development. They did not mention it explicitly but they used WPF during the live coding demonstration.

On day 3, several Kinect and Microsoft Research (MSR) presented a panel Q&A session. At 26:05 of the Kinect panel video, I introduced myself as the founder of the OpenKinect community and asked whether they had considered embracing the open source Kinect movement started by this community, which has lead to hundreds of Kinect Hacks around the world, by open sourcing their code.

KristinTolleTo my surprise, Dr. Kristin Tolle, Director of MSR’s Natural User Interface team, responded that they will be publishing the Kinect SDK as open source! She referenced earlier discussion about embracing and enabling the community to take what Microsoft has created and using it in new ways and mentioned that MSR has a history of releasing open source SDKs.

When I returned to my seat, another MSR researcher approached me and suggested that Kristin may have misunderstood my question or had misspoken; however, I followed up with Kristin afterwards and reconfirmed that she meant open source as in the public can modify and recompile the sources as well as share the modifications. She also emphasized that they want to enable people to share modifications and enhancements.

This is great news!

It is not clear yet what type of license they will use. If the license allows modification and redistribution but is, at least initially, limited to non-commercial use, then it would not be a standard open source license according to the Open Source Definition. Looking at other projects published by MSR, I could see them choosing the MSR-LA as used by the Singularity experimental OS.

I’ll restate here that Microsoft has on multiple occasions confirmed that a commercial license will be available at a date after the initial non-commercial release. The ideal scenario would be if they switched from MSR-LA to a true open source license and set up a collaborative project between MSR, Kinect team, and the open community styled after the successful Nuget project, which uses the Apache 2 license and includes Microsoft and non-Microsoft contributors.

Considering the reaction by the other MSR researcher to this open source statement, there may be some confusion internally about whether this will happen like this. I think the best thing that we as a community can do is to express support for Microsoft open sourcing the Kinect for Windows SDK (including the skeleton tracking and training components), even if they use a non-commercial license initially, and keep the pressure on them to create a better relationship with the open community and transition to a Nuget style collaboration with a liberal license such as Apache 2.

Update 4/18 7:34pm: Mary Jo Foley picks up this story, but the Microsoft spokesperson she talked to denied that the Kinect SDK will be open source. As she notes, Microsoft has pulled 180’s before regarding Kinect. After spokespeople initially were hostile to the idea of Kinect hacking, Xbox executives later embraced the idea that people are using Kinect for non-gaming purposes on the PC. Let’s hope Microsoft stays open to this idea.

2 comments:

  1. It realy seems they`ll make Kinect opensource.
    Because after releasing open source version, they will get a huge feedback form developers.
    After some time, when they will see, that developers are creating solutions using their SDK (not OpenNI, not OpenKinect), they will release commercial version. I am sure, that no one will choose another SDK, if he was previously working with microsoft`s SDK.

    Vahag

    ReplyDelete