"Kinect Client Server System" v0.2 and the 3D-TV app
- Posted: May 06, 2014 at 6:00AM
- 11,042 views
Today we're covering an update to project from Marc Drossaers that we originally highlighted a couple years ago (wow, really, years? Yep, we've been at this since 2011...), "Kinect Client Server System", that he's rev'd to v0.2 and added a cool example app to too.
Related, we've also recently mentioned his, Jitter Filter for the Kinect project.
This system shows 'Kinect for Windows' data in a WinRT application. Using the keyboard, you can navigate through the scene that is registered by the Kinect.
Version 0.2 has been released. Please find details in three blog posts:
- General information about the release
- About the filter for the depth jitter
- About very strong data compression for the Kinect
The Kinect Client Server system consists of a desktop application and a WinRT application. The desktop is a server that sends Kinect for Windows data over a WinSocket2 socket. The WinRT application is a WinRT client that connects to the server to receive and show the Kinect data.
You can download the server binary from here, and run it. You can also download a compiled version of the client (named 3D-TV) from here directly. You will need a developer license to install it on your Windows 8 pc. Only the x86 platform is currently supported. An entry in the Windows store for the client will come in time (removes the requirement of a developer license).
You can also download the source code and build the system yourself. The client application requires the WinRT DirectX Bus to build. So you will have to download that one too and use it as described. The Project file assumes that the TheByteKitchenLibs directory (either the source code or the compiled version) is a sibling of the KinectClientServer directory.
Project Information URL: https://thebytekitchen.codeplex.com/
Project Download URL: https://thebytekitchen.codeplex.com/releases
Project Source URL: https://thebytekitchen.codeplex.com/SourceControl/latest
The Kinect Client Server System V0.2 adds the possibility to V0.1 to watch Kinect Color and Depth data over a network, and to navigate the rendered 3D scene.
To support data transfer over TCP, the Kinect Client Server System (KCS system) contains a custom build implementation of Run Length Encoding compression.
To both maximize compression and improve image quality the KCS system uses a jitter filter
Version 0.1 of the KCS system allowed the display of Kinect data in a Windows Store app. This is a restricted scenario: for security reasons, a Windows Store app cannot make a network connection to the same PC it is running on, unless in software development scenarios. Version 0.2 overcomes this restriction by:
1. Support for viewing Kinect data from another PC.
2. Providing the 3D-TV viewer from the Windows Store (free of charge).
Of course, V0.2 is an open Source project, the code and binaries can be downloaded from The Byte Kitchen’s open Source project at CodePlex.
The easiest way to start using the KCS system v0.2 is to download 3D-TV from the Windows Store, navigate to the Help-About screen (via the ‘Settings’ popup), click on the link to the online manual and follow the stepwise instructions.
The general usage schema is depicted below.
3D-TV is a remote client for viewing integrated Kinect Color and Depth data. The intended use is to run 3D-TV on one PC (the client) and to run the KinectColorDepthServer software on another PC (the server) to which a Kinect has been attached. The client and the server are to be connected by gigabit Ethernet
In order to run the KinectColorDepthServer application on your server PC, the following steps are required:
- download and install the Kinect runtime.
- Download and install the DirectX end-user runtime (June 2010), if required.
- Download the KinectColorDepthServer executable.
- Install the applicable VC++ redistributable (included in the KinectColorDepthServer package)
- Copy the server executable and DLL to a suitable location on your pc.
- Connect your Kinect for Windows.
- Configure a Gigabit LAN adapter to use ip4 address 192.168.0.20. 3D-TV is hardcoded configured to connect to that ip4 address. Typical network throughput is larger than 100Mbit/s.
- Connect the cable to your client pc, directly or indirectly.
- Double click KinectColorDepthServerApp.exe.
The KinectColorDepthServer application should now display a message stating that it is waiting for connections.
In order to run the 3D-TV application on your client PC, the following steps are required:
Once the client is rendering Kinect frames, you can navigate through the scene.
- Use the arrow buttons to retarget the virtual camera.
- Alternatively use the A, D keys to turn left and right.
- Alternatively use the R, F keys to turn up and down.
- Use the W, S keys to move forward an backward.