Overview

Bound by the limitations of an assignment to move 3D objects on to a 2D plane, I played with several concepts. These included 3D scrabble pieces, winged numbers waging war on letters, and pictographic chase scenes. I committed to musical notes because of their geometric simplicity and their potential to create 3D musical soundscape.

 

 

 

 

Algorithm Overview

I used the five fundamental rules of Craig Reynold’s boids that are freely available on the web. I also added the following to Reynold’s core rules:

  • Dynamic reassignment of predator goal based on prey proximity:
    Each predator is assigned the goal of the nearest prey every loop. While this is computational expensive, the benefit is more intelligent behavior. The predators are able to divert their attention when passing prey.
  • Prey/Predator Behavior
    The prey, here a user defined set of Bass Clefs, are implemented by removing the alignment behavior of the standard boids algorithm I also reassign a goal to any prey that loses velocity.
  • Perching Behavior
    All entities have a variable amount of time they will wait, or land on the surface of the musical sheet.


Implementation
The entities can be controlled before and during run time.

  • Before run time the entity a text file provides guidelines. The text file contents are described here.
  • During run time the entities and few environment variables can be adjusted with specific keystrokes. The keystrokes are described here.

This implementation of the boids algorithm contains a few novel solutions:

  • Entities on Angled Plane:
    In order to provide the illusion that the boids are on an angled plane (i.e. sheet music on a plane) I created a model that is oriented directly parallel to the origin. To accommodate, I simple rotated the room and set the camera at an angle to compliment the illusion.
  • Fast Shadows:
    To create the shadows I copy and flattened its parent model. I also change the weight of the shadow proportionate to the adjustments made to the main scene light source. The shadows are not correct shadows, but they help substantiate the illusion.
  • No Shadows off the platform
    To prevent shadows from appearing when an entity floats over open space, I check the distance of the entity relative to two bisecting planes. These planes are on the left and right of the music stand platform.
  • No Perching off of the Platform
    To prevent entities from perching in mid air, I use a distance check and hard-coded boundaries to turn off perching when appropriate. Perching is returned to any entities that fall within the physical range of a perching area.
  • 3 Dimensional Sound
    The program makes use of attenuation factors to provide the illusion of 3D sound. When an entity is moving near the camera the entity emits and randomly assigned pitch of a single standard sound. The sound as edited to sound as natural as possible when multiple entities emit sounds. I had originally intended to assign a xylophone or bell tone to each to create the effect of chimes, but high tonal sounds caused a cacophony when implemented.