Kinect plus JavaScript = KinectJS

Sign in to queue


Today's project takes us to a place where that we have not visited often, using the Kinect in a browser, melding HTML5, JavaScript and the Kinect...


KinectJS, (aspiring to) bring motion controls to HTML5.
:: Download Here
:: Try the Demos
:: Documentation ( work in progress)
:: Youtube Videos


  • Provide motion tracking for up to 2 people at the same time
  • 20 joints tracked for each skeleton, and two extra parameters of data (height, joints length etc)
  • Stream RGB (640x380) and Depth data (320x240), even simultaneously
  • Control the motor through JS
  • Take snapshots and save them locally
  • Predefined gestures (swipe, jump, escape etc)
  • Listening for specific URL calls, one can for example use his cellphone that way as an extra controller
  • Cursor object
  • The ability to track joints, relative to the player's body, or absolute to Kinect's Field of View.
  • Modal and notifications plugins
  • Framework agnostic ( does not have any external dependencies )
  • Chrome and Firefox support


List of Demos explained (Work in progress)

  • Nokia WebGl maps - Original :: Video tracking( left hand, right hand ). Gestures( hands_dist, body_angle, escape )
  • FastKat - Original :: Video tracking( head, right hand ). Gestures( escape )
  • Air Hockey - Original :: Video traking( left hand, right hand, head ). Gestures( escape ), 2 player enabled
  • WebGL Cars - Original :: Video tracking( head ). Gestures( hands_dist, foot_lean, escape )
  • Theremin - tracking( left hand, right hand ). Gestures( escape )
  • Pong - Original :: Video tracking( left hand, right hand ). Gestures( hands_dist, body_angle, escape ), 2 player enabled
  • Tunnel Game - Original :: tracking( left hand, right hand ). Gestures( hands_dist, body_angle, escape )
  • Stream Demo - none
  • Image Gallery / Menu - tracking( left hand, right hand ). Gestures( hands_dist, swipe, escape )
  • DuckHunt - Original :: Video tracking( right hand, "cellphone controls" ). Gestures( escape )
  • Impress - Original :: Video tracking( none ). Gestures( swipe )


i. Kinect SDK 1.0 OR Kinect SDK BETA 2
ii. A compatible browser (Chrome 15+ / Firefox 10+)


After having installed the drivers drivers succesfully (and you can confirm that the kinect works by running the included Microsoft's demos) run and install KinectSocketServer.exe.

Once that is done, load the KinectSockerServer, the kinect should do a full-vertical scan movement and you should see your network addresses in the main textarea. If that does not happen then something has gone astray and please make sure that you followed the steps correctly or reach me at pkalogiros [AT]

Next, run one of the demos (use this link, or the demos from your localhost) and input your IP address and port as specified in the KinectSocketServer's main window. If the kinect is installed in the same system as your browser, then only the port is required (not the full address) since it will default to localhost.

Project Information URL:

Project Download URL:

Contact Information:

The Discussion

  • User profile image

    hey I'm using chrome coolnovo & kinect sdk beta

    and confirm sdk sample file, running good.

    Connect to KinectSoceketServer is OK. but it dosen't running with kinect.

    What's wrong with me?

  • User profile image

    Hello dhkim,

    Could you please provide a bit more info on where it stops working? If the kinectsocketserver works, then the problem must be with the version of chrome you are using.

    Could you please try Firefox 10 or Chrome 16+ ?
    I will check to see why it fails to work on coolnovo, later today and get back to you soon. I apologize for the inconvenience i didnot had a chance to test it to many browsers yet, that is why the supported list is that small currently (that will change though soon)


  • User profile image

    Nice Job!! Keep up the good work Tongue Out

  • User profile image


    I tested KinectJS with coolnovo today and everything worked properly, could you please describe all of the steps that you are following? Does the KinectSocketServer see you? ( Should say 1 players (or more) at the top left region. By default that is 0 playes. If it doesnot see you, try clicking the "Kinect Reset" button )

    And please make sure that you have the correct version of the KinectSocketServer installed. There are two included, one for each SDK (Beta, or SDK 1.0)

  • User profile image

    Hello,I have everything for this project. But when I write IP address,which give me KinectSocketServer,it do nothing. Go button on web page does`t push. What is the problem?

  • User profile image

    Hello Dulat,

    A couple of things could be happening actually. If you could send me an email and describe the steps you are following then I could be of much more help.

    First of all, please make sure that you are using a compatible browser (currently firefox 10+ and chrome 16+ are supported - in the next versions safari, mobile safari and IE will be supported as well)

    Then please, make sure that you are putting the address exactly as provided by the KinectSocketServer - port included, if the KinectSocketServer and the browser run on the same machine, then only the (4 digit) port would suffice. Can you please check at your browser's JS console (firebug in firefox, inspector in chrome) and tell me if any errors pop up?

    Feel free to send me a mail at pkalogiros [at] with more info and questions.


  • User profile image


    Thanks your comment.

    I reinstalled kinect sdk beta2

    and everything works good!

    Nice work! :)

  • User profile image


    Awesome, thanks! I 'm very glad you got it working : )

Add Your 2 Cents