Latish Sehgal's Blog

Kinect.Replay: Record and Replay Your Kinect Sessions

One of the limitations of programming with Kinect is that you always need the Kinect hardware plugged in during development time. You can use Kinect Studio to record and replay sessions (it gets tiring after a while to get up repeatedly in front of the Kinect and debug at the same time, and your spouse/kids/pets start looking at you funny), but you still need the Kinect hardware to replay a Kinect Studio session. Being hardware independent can be useful in scenarios like programming while on the move (Most of my side projects are done in coffee shops), or running integration tests on a server. I created Kinect.Replay as an experiment to see if I can remove the dependency on the hardware during some parts of development. The core of the code is based off the work done by David Catuhe in Kinect Toolbox. My initial approach was to enhance Kinect Toolbox, but the direction I was taking soon started to look like I was butchering the code, and I ended up creating a separate project for my needs. Some of the enhancements I have done include storing ColorToDepthRelationalParameters to recreate CoordinateMapper during replay, and also support for audio recording/replay. You can see a small demo of what the using Kinect.Recorder looks like in the video below.

In the video, I record a small session (Kinect is plugged in at record time), and then replay that session in another application, JediSmash (Kinect is unplugged at this point).