Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

HandsTrackball - Kinect 3D object manipulation

We've seen XBox's flat 2D based Kinect NUI, but that's like wasting a whole "D"! We don't live in a flat world, so neither should our NUI's. Today's project responds to that and shows off controlling and manipulating 3D objects in a Kinect world.

WPF 3D Manipulation with Kinect

I've created an implementation of a Kinect NUI Trackball which can be used for manipulating a camera around WPF 3D scenes. This "HandsTrackball" is adapted from the Trackball class included in the source code for WPF 3DTools. The original Trackball class allows you to use the mouse to rotate around a WPF 3D scene.

My HandsTrackball basically maps hand movements to what the original Trackball uses as mouse points. Some new ground rules as well as as some Kinect depth-to-screen point calculations are applied in order to make this all work.

The user's left or right hand can be used to rotate around the model. When the user moves their hand, a transform is applied to the camera viewing the 3D scene (the camera moves and the objects in the scene do not move). The camera only moves if the user's hands are at least a minimum distance away from the user's torso. The user can only move the camera when their hand is deliberately extended out from their body. This is a key constraint in order to make the HandsTrackball usable. It allows the user to put their hand(s) down to stop changing the camera angle and prevents accidental movement.

Project Information URL: http://kindohm.com/2011/07/05/WPF3DManipulationWithKinect.html

Project Download URL: http://kindohm.com/files/Kinect3dManipulation.zip

Project Source URL: http://kindohm.com/files/Kinect3dManipulation.zip




Contact Information:

Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • Wow this is probably one of the finest applications that uses the Kinect and actually is easy to use and understand.  Great job!

  • dhkimdhkim

    This is the one what I finding. Great job. Thanks!

  • dhkimdhkim

    Code have tiny error when running this.

    So I move "this.imageWorker = new BackgroundWorker();"

    line 45 in MainWindow.xaml.cs.

    to public MainWindow() {}, then everything work.

  • RocRoc

    There is a run Error: in line 35 of MainWindow.xaml.cs :
    if (!this.imageWorker.IsBusy), the value of "imageWorker" is null, why? and how to solve the problem? Thank you !

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.