February 21st, 2009

My first GLSL -based animation. The blob is made of 3 glutWireSpheres deformed by applying a vertex shader. Deformation is affected by the music and mouse coordinates. In the code snippet below, fft is a value taken from ofSoundGetSpectrum and mult is the pair of mouse coordinates (x, y).

#version 120
uniform float fft;
uniform vec2 mult;
uniform vec3 col;
varying vec4 v;
void main()
    v = vec4(gl_Vertex);
    vec4 v2 = v;
    v.x += cos( v2.z * mult.x ) * fft;
    v.y += sin( v2.x * mult.y ) * fft;
    v.z += cos( v2.y * mult.x ) * fft;
    gl_Position = gl_ModelViewProjectionMatrix * v;

Check the high-res images at Flickr .
Made with OpenFrameworks .
Music: “Geek Down” by J Dilla.