Libraries & Resources

A number of open-source Processing libraries are used within the source code of the project to facilitate various aspects of the installation. All of the libraries used are freely available via Processing’s Library Manager, and are explained further below.

To install the required libraries in Processing, follow these steps:

  1. Click 'Sketch'
  2. Hit 'Import Library'
  3. Go to 'Add Library...' at the top
  4. Search for the libraries and install them

OpenKinect

The OpenKinect library was instrumental in the success of the project, and without it, it is likely that development would have had to occur in something like Unity or C++. The library assisted in retrieving the depth values sent by the Kinect and organising them into a usable form. The library also includes a lot of other functionality which was not used, including skeleton tracking, point clouds, and much more.

More information about Daniel Shiffman’s OpenKinect library can be found here: http://shiffman.net/p5/kinect/ The source code for the library can be found here: https://github.com/shiffman/OpenKinect-for-Processing or by direct download inside Processing.


MSAFluid

“MSAFluid is an open source C++ / Java / AS3 library for solving and displaying real-time 2D fluid simulations based on Navier-Stokes equations.” Memo Akten’s fantastic library was used in the project as the foundation of the visuals projected onto the spandex canvas. With existing support for TUIO, it was the perfect starting point for integration with the Kinect. Although the current visuals are heavily modified, all work was done on top of the existing demo sketch.

More information about Memo Akten's MSAFluid library can be found here: http://www.memo.tv/ofxmsafluid/ The source code for the library can be found here: https://github.com/memo/p5-MSAFluid or by direct download inside Processing.


TUIO

As the MSAFluid library cane with inbuilt functions to support integration with interfaces using TUIO, it was decided that working up our own functions to send the Kinect blobs to the visuals was the easiest path. The TUIO library was used in conjunction with the MSAFluid library to support this functionality.

More information about Martin Kaltenbrunner’s Processing TUIO library can be found here: http://www.tuio.org/?processing The source code for the library can also be found at that site, or by direct download inside Processing.


BlobDetection

This lightweight blob detection library, created by French programmer Julien Gachadoat, was used as an alternative to OpenCV after problems arose whilst using that library inside Processing on the Mac Mini. Despite not providing functionality for tracking blobs, which was later implemented on our own, it was found to be very easy to integrate and quite fast.

More information about V3ga’s BlobDetection library can be found here: http://www.v3ga.net/processing/BlobDetection/ The source code for the library can be found here: http://www.v3ga.net/processing/BlobDetection/index-page-download.html or by direct download inside Processing.


The MidiBus

“The MidiBus is a MIDI library for Processing. It provides a quick and simple way to access and interact with installed MIDI system resources. The MidiBus is aimed primarily at real time MIDI applications. The focus is on strong MIDI I/O capabilities and keeping frills to a minimum.” This library was used in the project to facilitate the MIDI communication from Processing to the virtual MIDI ports created with LoopMIDI which would funnel the MIDI data to Ableton Live.

More information about Severin Smith’s MidiBus library can be found here: http://www.smallbutdigital.com/themidibus.php The source code for the library can be found here: https://github.com/sparks/themidibus or by direct download inside Processing.


oscP5

“Open Sound Control is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology and has been used in many application areas.” This OSC library was used throughout the project to allow communication and passing of data between sketches. This occurred primarily in the transfer between the Kinect and the visuals, where two separate files were involved.

More information about Andreas Schlegel’s oscP5 library can be found here: http://www.sojamo.de/libraries/oscP5/ The source code for the library can be found here: https://code.google.com/archive/p/oscp5/ or by direct download inside Processing.