If you asked me my idea of a good weekend, I doubt I would answer "compiling a Java wrapper around an unsupported C++ library for a device driver, in Windows."

I would probably say something involving lots of shrooms.

But I didn't have any, so I installed Visual Studio instead :(

What I did have was an Asus Xtion Pro, basically a generic version of the original Xbox Kinect. I use it to make shitty art. My "art stack" is as follows:

  • Asus Xtion Pro
  • OpenNI2
  • SimpleOpenNI
  • Processing
  • Dancing

OpenNI2 is a C++ library for accessing, the camera, and Processing is a language (well, it's a Java package) that, thank the lord, is not C++.

For real, no language bashing here, but the Jesse that makes rainbow colored gifs of drunk dancing is not the Jesse that wants to worry about pointers.

SimpleOpenNI is the Java wrapper that lets you use OpenNI2 from a Processing app.

Processing 3, bah

SimpleOpenNI is unsupported. GitHub is littered with the carcasses of countless failed imports from its Google Code tomb. The breaking API changes in Processing 3 render SimpleOpenNI incompatible, so it can't be used in conjunection with features specific to Processing 3, such as its sound APIs.

If you use Processing 3 and want to use SimpleOpenNI:

  1. Locate your Processing Sketchbook location, (it's configurable in the Preferences window) and the libraries directory in it
  2. Install SimpleOpenNI through the Processing Sketchbook app. (Sketch > Import Library > Add Library) This will download the incompatible version.
  3. Download my recompiled SimpleOpenNI.jar.
  4. Starting in the libraries directory, go to the SimpleOpenNI/library subdirectory and back up the old SimpleOpenNI.jar.
  5. Replace that file with the version you downloaded.