The video analysis and motion tracking program which provided data concerning the dancer’s movements was a third-party program written for the Max programming language called Cyclops (authored by Eric Singer). It allows for a digitized video signal to be processed in real time in a variety of ways. It works by dividing up each new frame of the digitized video into a grid of a predetermined size (for e-Motion I chose to use an 8x8 grid containing sixty-four blocks for reasons I will explain later). Within each coordinate block contained in the grid the user can include a “zone” function, which designates that a particular kind of analysis is to occur for the block containing the zone. With each successive frame the pixels contained within the block are summed together to produce an average shade or color. Depending on whether any change has occurred, and or what type of analysis has been specified for the zone, a value may be sent out. The values, along with an ounce of imagination, can then be used to control an infinite variety of processes within Max.
The 3-D motion capture space for the music was that area where the separate views of the two cameras overlapped, in other words the shared image from two different perspectives. Since there were some areas where the cameras' views naturally did not overlap, but yet were still visible, this was considered to be part of the peripheral 2-D motion capture space.
In the arrangement used in e-Motion both cameras formed a nearly perpendicular angle with each other, therefore it is possible to think of the 3-D motion capture space as similar in shape to a cube (even though its actual geometry was closer to an asymmetric polygon due to the fact that the diameter of the view seen by the video camera widened exponentially with distance from the lens).
For each camera, the 8x8 grid within Cyclops was divided up into four quadrants of equal dimensions (4x4, or 16 blocks each). The zones assigned to each of these blocks were numbered 1 to 64 and distributed so that modular arithmetic could be used to determine which quadrant any particular zone number, that was currently registering a change in values, belonged to (quadrant 1 contained the series: 1, 5, 9...; quadrant 2 contained the series: 2, 6, 10...; quadrant 3 contained the series 3, 7, 11...; quadrant 4 contained the series: 4, 8, 12...). For example, if zone #34 was registering a change in values, than 34 would be divided by 4 to produce a remainder of 2 thus indicating that the change was occurring in quadrant 2.
The picture below shows the arrangement of zones in the Cyclops grid