Quiver

People:

Quiver is a live audio-visual performance exploring how simple patterns can be used to construct a multitude of forms of vastly different scales. The video is generated from manipulating hundreds of individual triangles into various shapes and relationships, creating the illusion of small condensed forms to vast open spaces and everything in between. The video and audio are controlled independently (i.e. there's no data sharing between the two) with the audio being generated from a custom built interface called the BoingBoing and a synthesis program written in SuperCollider. The video synthesis was written with Jitter.

Audio

The main source of data driving the audio comes from the BoingBoing, an accelerometer-based interface. It has 4 spring hanging down with 2D accelerometers attached at the end, covered with ping-pong balls. When a ball is flicked, it precesses according to the length of the spring, sending 2D sinusoidal data to synthesis algorithms that generate the audio. The spring constant of each of the 4 springs can be adjusted by raising and lowering the height of a plunger inside the springs. By adjusting the plunger's height, the effective length of the spring is changed, which is one of the parameters for the spring constant. The BoingBoing also has a rotary dial for each spring for changing synthesis settings independent of the spring data.

During the performance of Quiver, data from BoingBoing is sent over OSC to a SuperCollider synthesis program running on another laptop. The program has a collection of synthesis settings for creating audio from the BoingBoing data. It also exposes synthesis parameters to the second music performer and is the basis for the audio composition of Quiver.

Video

The video for Quiver is generated from a program written with Jitter, using the OpenGL extensions. The idea behind the structure of the video is to take a simple form and use it to construct spaces of every scale, from the very compact to the most expansive. This is accomplished during the performance by the controlling size of shapes, their density and proximity, and their type of movement.

The main shape is a simple tube which has been converted explicity into triangles in software using a custom object called xray.jit.grid2tri. There is also a particle simulation running that describes an orbit about a line. From the particles, another set of triangles is generated with the position of the particle as one vertex, the scaled velocity vector as one edge, and a vector from the particle's position to the line as another edge. The third edge is beteen the endpoints of the two vectors just mentioned. There are exactly as many particles as there are triangle facets on the tube shape, and the position of any given triangle rendered to screen is a crossfade between a position on the tube and a particle's position.

The particle simulation is done in a custom jitter C external. It produces both a forcefield simulation and an explicit calculation the force. The parameters exposed by the C external allow for positioning of the line in space, adjusting the angle around the line of the forcefield vectors, the timestep of the simulation, a weight that crossfades between the forcefield and explicit force simulation, as well as a factor that deflects the force vectors along the axis of the line. By adjusting these parameters, the particles can be directed into a wide range of patterns.

The rendering of the triangles is done with shaders. A custom modification of the mat.xray.jxs shader that comes with Jitter is used for Quiver. The main modification was to add textures to the shader. During the performance, a video clip from Modular Radiation textures the surface, giving it a simmering metallic look.

Video

Quiver Movie

Stills

quiver still 1 quiver still 2 quiver still 3 quiver still 4