Kinect over Sockets

There’s no Kinect support in Windows 8 Metro, so I had to come up with a network-based solution to use the tracked skeleton data. A byproduct of this are the TCD.Networking and TCD.Kinect namespaces. Both have a Server and a Client child namespace (with simple network communication or Kinect over network..).

What I can make available today is a sample of how to send Kinect-skeleton-data from a WPF server application through the network (or to localhost..) to a WPF client application.

While an advantage of network-based routing is that you can have multiple clients, a major disadvantage is that you can’t use the tracking-engines methods to render 3D-coordinates to a pixel coordinate. I had to make a CustomSkeletonData class as well, b/c the JSON deserialization is kind of fussy.

You may use all code and libraries you find in the solution to power your own projects =)

Most of it is self-explanatory, but if you have any questions feel free to ask.

Download KinectNetworkingSampleSources.zip

Oh and here’s a video of how it looks like:

Kinect over Sockets


  1. Ganesh

    I am newbie for coding. Can I send skeleton data to blender3d software?

    1. theCake Post author

      I am unfamiliar with Blender but what I would suggest at the .NET and Kinect end is to run a webserver that provides the skeleton data as JSON via a simple API.
      Then a Blender App or plugin could probably do the HTTP GET to load it.

      1. theCake Post author

        Wait. I confused the context.
        I do not remember how exactly the socket thing worked. I believe since then there should be some more recent examples. I really can’t tell if it works with multiple kinects, sorry.

  2. Santhu

    i above download Link, File Not Found Error… i want kinect Networking samples.. SO pls Send me…

    1. theCake Post author

      I have updated the link.

  3. Rinay

    Does this work with multiple kinect?

    1. theCake Post author

      I’m not sure, but one could definitely modify the program to recognize a second person and inject additional keypresses (arrow keys, for example).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.