Poi Recorder Project

Description

This project will capture the movements of dancers and play the back.

The motivation is that the movements of these performers are often subconscious and difficult to analyze.

One particular type of dance I would like to capture is the art of tech poi.

Libraries

OpenNI - Kinect interface

NITE - Skeleton tracking library

Uses C++ for all programming components.

Is platform independent.

Code is on Github.

How does it work

Kinect tracks skeleton.

The joint positions are recorded.

Two Modes

Recorder

The recorder will wait until a skeleton is tracked.

You go into the "cactus" pose to start tracking.

The output goes into the recording.poi file.

Datafile

The file is simply a collection of timings and joint positions.

The resolution of the image is the first line.

This is followed by tuples {x, y, z} for 15 joints.

Player

This datafile can be read by the same program when it is given as an argument.

The player accepts another argument for the rate to play the recording.

Player Screenshot

Player Screen

Components

Kinect - Class that drives the kinect device and handles callbacks.

Player - Plays a recording.

Canvas - Draws to the screen.

Presenter - Handles what to draw using the Canvas.

Window - Abstracts platform window APIs.

InputHandler - Handles keyboard input.

PointDrawer - Draws backgrounds.

UserDrawer - Draws skeleton.

Problems

Cannot track joints that go behind a person.

Poi head is actually difficult to track (with my limited expertise).

Accuracy is pretty bad.

Future Work

Attempt to teach the program how to track poi.

Use two Kinects to see all angles.

Advanced playback and choreography tools.

/

#
bring up a menu skip to a particular slide