*Animation *update* unresponsive – posting src and snapshot of fully developed animation as featured image (above).*

/*Random lerp circle spirals - cwelke @ SSStudios

last stable build 8/29/2015

Rendered in Java 1.8 using the Processing API which access OpenGL w/in Microsoft Windows 8.1*/

//global vars

float r = 0;

float angle = 0;

float rSteps;

float maxR;

float angleSteps;

float cirSZ;

float centerX;

float centerY;

float r1 = 0;

float angle1 = 0;

float rSteps1;

float maxR1;

float angleSteps1;

float cirSZ1;

float centerX1;

float centerY1;

void setup(){

size (840, 720);

smooth();

setRandomValues();

background(#0E0517); //dk purple-k

}

void draw(){

int i = 0;

int maxBlasts = 0;

//warm & cool spherical sprails ~=40

while(maxBlasts < 21){

displayEllipse2();

moveAngle();

moveAngle1();

checkEdges();

maxBlasts++;

}

while(i < 11){

displayEllipse();

moveAngle();

moveAngle1();

checkEdges();

i++;

}

maxBlasts = 0; //layering

while(maxBlasts < 8){

displayEllipse2();

moveAngle();

moveAngle1();

checkEdges();

maxBlasts++;

}

i = 0;

while(i < 4){

displayEllipse();

moveAngle(); moveAngle1(); checkEdges(); i++;

} //noLoop(); }

void setRandomValues(){

rSteps = random(4, 8); maxR = random(20, 160); angleSteps = random(PI/90, PI/9);

cirSZ = random (12, 44); centerX = random(width); centerY = random(height);

rSteps1 = random(6, 12); maxR1 = random(40, 250); angleSteps1 = random(PI/36, PI/18);

cirSZ1 = random (36, 44); centerX1 = random(width); centerY1 = random(height);

}

void moveAngle(){

angle = angle + angleSteps;

r = r + angleSteps*rSteps; }

void moveAngle1(){angle1 = angle1 + angleSteps1;

r1 = r1 + angleSteps1*rSteps1;

}

void displayEllipse(){

float colorValue = map(r, 0, maxR, 0, 1);

color c = lerpColor(#FF0000, #00FF00, colorValue); fill(c); stroke(#ffffff);

float x = centerX + cos(angle)*r;

float y = centerY + sin(angle)*r;

ellipse(x, y, cirSZ, cirSZ);

}

void displayEllipse2(){stroke(#000000); float colorValue1 = map(r1, 0, maxR1, 0, 1);

color d = lerpColor(#6600FF, #8A2EE6, colorValue1); fill(d);

float x1 = centerX1 + cos(angle1)*r1;

float y1 = centerY1 + sin(angle1)*r1;

ellipse(x1, y1, cirSZ1, cirSZ1);

}

void checkEdges(){

if(r >= maxR || r1 >= maxR1)

r = 0;

r1 = 0;

angle = 0;

angle1 = 0;

setRandomValues();

}

//rest

void mousePressed(){

r = 0;

r1 = 0;

angle = 0;

angle1 = 0;

setRandomValues();

}

//apologies if formatting is bad – ill conjure this up as another convenient XML “fast-loader”

//in fact code will appear as such in future posts for convenience and as jpegs for visualization -c