Image Image Image Image Image
Scroll to Top

To Top

Installation Work

Interactive Forest Projection

On 21, May 2010 | 8 Comments | In Installation Work, OpenFrameworks | By Anthony

Screenshot of Interactive Environment

During one of my classes at Carleton we were tasked with creating an interactive installation a few months ago. Though this project is a bit old now ( before the music visualizations ) I figured it might still be interesting to post as many of the lessons learned in this project were used to better optimize following projects.

The group I worked with decided to forgo Processing and use openFrameworks for speed considerations to create an environment that could interacted with by sound, motion, and blob-tracking ( people standing in front ).

The features we ended up implementing were:

  • Particles fields that linked to camera-detected motion to move trees, flowers, the rain, and clouds (using optical flow)
  • The ability to create more clouds by waving arms in front of screen
  • Clouds dissipate and disappear when there is no motion in front of screen leading to the sun getting larger and killing all the trees and flowers. Conversely, as clouds get more numerous the sun gets smaller
  • Once a certain number of clouds was reached they would start to rain which would then grow more trees and flowers
  • Once there are enough clouds raining clapping or stomping in front of projection will create lightning
  • The birds tend to flock towards the tallest person currently standing in front of the screen (using blob-detection)

And technologies/add-ons used in the building of this project:

  • Optical flow for motion detection to move rain, birds, trees, and clouds
  • Blob-tracking for determining where birds will fly and where grass will part
  • Verlet physics used to define movement of trees and flowers
  • Flocking algorithms used to control the birds movement
  • Basic FFT analysis for determining when someone clapped or stomped to create lightning
  • ruiThread for threading classes to better utilize the quad cores of Allan’s machine we used for demonstrations

The following video, uploaded by one of the group members Allan, demonstrates it being displayed at a pre-FITC party we were invited to show at. Though we had some trouble with lighting and sound levels, leading to difficult blob-tracking and sound detection, the motion detection and clarity of screen seemed to work relatively well.

A future presentation may also want to use some sort of pointers to guide users as to how to interact with it as the main difficulty was it not being immediately clear how it worked. Though, perhaps it could also be retooled to be more intuitive.

Group members involved in this project were:

Also a special thanks to our teacher, James Acres, for helping with some, er okay, many of the problems we encountered 😉

Tags | , , , , , , ,


  1. Thank you very much for that marvelous article

  2. Great article . Will definitely copy it to my blog.Thanks.

  3. yty

    Wow .. so beautiful … this project…
    How would you share it with the source code?
    Your works very much like to learn …

    • anthonyScavarelli

      I am planning to but it is kind of a mess right that only works on Macs. I will hopefully get up the source during Christmas break 🙂

  4. jinik

    I like this project very much.. (♥♥,)
    I really want to learn how you make it.
    now, I try to learn openCV and openFramework.
    It’s very nice if you want to share the source code.

  5. I haven’t checked in here for a while since I thought it was getting boring, but the last several posts are great quality so I guess I will add you back to my daily bloglist. You deserve it my friend 🙂

  6. thx so much anthony. I feel so honored 🙂
    Last time, i tried to make simple app using Blob detection. This’s my first time using openFramework and my coding ability is not so good. Yey! but it’s work..
    Unfortunately, i have some problem with Optical flow,There’s “openCV error : input image depth is not supported by function ………..cvInitImageHeader…”
    i’m using ofxCvOpticalFlowPyrLK addon.
    Maybe anthony can help me… 🙂

Submit a Comment