DepthJS is a browser extension (currently Chrome & Safari) that allows the Microsoft Kinect to talk to any web page. It provides the low-level raw access to the Kinect as well as high-level hand gesture events to simplify development.
Moving to OpenNI/NITE based backend, forsaking OpenCV for now. Gesture recognition is thus far better than what we had before. Finger-based gestures will soon follow as a few projects parallel to DepthJS will merge in coming months.
Current gesture language:
- Wave to start hand tracking and get "blue pointer".
- Push to click.
- Circle to end tracking and remove "blue pointer".
Note: OpenNI & NITE should be downloaded and linked appropriately to your build.
Event handlers in the browser extension may be placed globally, in content scripts injected into each web page, or pushed via the content script to local DOM elements written by 3rd parties.
Note: As of now we are using OpenNI/NITE for tracking and gesture rec. Download the precompiled libs from: http://www.openni.org/downloadfiles/opennimodules/openni-binaries/21-stable http://www.openni.org/downloadfiles/opennimodules/openni-compliant-middleware-binaries/34-stable
Right now we only support Macs. All dependencies are statically compiled and in the repo.
Linux likely automatically works, although we don't distribute pre-compiled dependencies for it (yet).
Windows seems wayyy complicated, and we are OS snobs. Perhaps once Mac & Linux are done we'll think about trying it. Outside code is always welcome ;)
SAFARI: Safari needs it's own browser plugin & browser extension. webkit-plugin-mac/ contains the plugin, and the extension is in safari-extension-mac/. Unfortunately it does not like soft links, so you must in your terminal run
cd safari-extension-mac/DepthJS.safariextension && ./createHardLinks.shBuild & run the Xcode project in webkit-plugin-mac, then once inside Safari, enable developer tools & extensions, and finally add the extension under safari-extension-mac/ in Extension Builder. If you click on Inspect Global Pages, you'll see output confirming if it could connect to the Kinect or not (it should be plugged in).
Safari is currently our active development browser because of XCode & GDB. It will work before Chrome at any given moment.
CHROME: Chrome extensions support native code, which needs to be compiled. It's under npapi_plugin/ Run build-mac.sh to create it.
The chrome extension is located in chrome-extension-mac/.
In addition to the obvious improvements to our gesture recognition, we need to make the install process easier for end-users.
Eventually when it's ready it will be a 1-click install. As this is a side side project and some of us are trying to finish our PhDs cough "ontime," updates have been steady but infrequent.