Fly! Courtesy of this small project linking Kinect -> OpenNI -> Processing -> WebSockets -> CoffeeScript -> Google Earth API
CoffeeScript Processing JavaScript Java Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 19 commits ahead, 6 commits behind jawj:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Processing Libraries


Pigeon Sim

Pigeon Sim simulates flight, using your arms as wings.

It links a Kinect via Simple-OpenNI, Processing, some GCSE trigonometry, WebSockets and CoffeeScript or a LeapMotion sensor to the Google Earth API and browser plugin.

It also introduces Spindlytext, a nice way to write in the sky with KML, which is used to display various kinds of live data.

There’s a brief write-up, with video clip, in New Scientist. It’s also in the Independent.

NCRM have also made a video which dives into the different parts of PigeonSim


Pigeon Sim has been tested on Windows 7 and Mac OS 10.7. The Google Earth plugin seems somewhat more stable and less glitchy on Windows — but this may depend on your graphics card.

  • Install Simple-OpenNI, OpenNI and Processing, following the instructions provided by Simple-OpenNI. Note that on 64-bit Windows, you probably still want the 32-bit OpenNI libraries, since Processing comes with its own 32-bit Java.
  • Install the p5websocket library (version 0.1.3+) for Processing.
  • Launch Chrome with the --disable-web-security command-line flag (to allow cross-domain AJAX requests for the live data), and open web_client/index.html. If you don’t already have it, you’ll need to agree to install the Google Earth plugin.
  • Plug in your Kinect, run the pigeonsim Processing sketch, and fly!
  • Alternatively, if you don’t have a Kinect, run the pigeon_dummy sketch. Click and drag to bank/steer, and press [up] to flap, [down] to dive, and [space] to go home. This mainly defeats the point, though.

A .BAT file is included to start PigeonSim on boot, just check your own paths and username in this file. Drop it into your Startup folder located in by typing shell:startup in the Start Menu (Windows 7).

LeapMotion Support

To enable LeapMotion Support append enableLeap=1 to the query string (e.g. /pigeonsim/web_client/?enableLeap=1) which will allow you to control the sim with your hand movements. See this video, for instructions and an example of how to fly with a LeapMotion.

HUD Mode

To enable a top down map of your current position and path flown append hud=1 to the query string.


This code is released under the GPL v3. To negotiate GPL-incompatible uses, feel free contact me.