One day I felt that using one Kinect on one PC isn’t enough. There could be more interesting things to do with multiple screens.
So I consider sharing the Kinect data with multiple devices. You may know that I created an app called Kv2 Viewer that can access Kinect data on the phone. With the similar technology, I successfully send Kinect data to multiple devices.
Firstly I write a server program to make a Win 8.1 PC as a server. Then all other clients that want the Kinect data would just need to connect to this PC.
Here are the simple demos I made in the video:
Body views
They all get the joint positions, joint states first and generate the body views on screen, not reciving body view images from the server.
Girls staring at target
The girls from different directions would stares at you (According to your head position). And if you act like pointing at something, they would stare at that (According to your hand position.)
This is very impressive.
Can you explain with more details exactly what you did to get the data to multiple computers?
Hi, nikky. I convert all body(skeleton) data to strings like “Skeleton0PosX,Skeleton0PosY,Skeleton0PosZ|Skeleton1PosX,Skeleton1PosY,Skeleton1PosZ|Skeleton3PosX,…” (e.g. “1.5f,4.2f,3.5f|3.56f,2.43f,2.54f|1.3f,…”) Send the string to every connected clients over Wi-Fi. Then on the client side, I use string.Split(‘|’) to split it as skeleton positions and use string.Split(‘,’) to get XYZ strings and convert ’em to floats.
It may not be a smart way but it just works. 🙂
Quite nice! There aren’t many ways to do this. I think that (Lab Streaming Layer) LSL can also provide network capabilities for Kinect motion but it’s really intended for university researchers.