createCanvas(windowWidth, screen.availHeight);
simplex = new SimplexNoise();
rect(0, 0, width, height);
for(var i = 0; i < res; i++){
shape.push(createVector(cos(i / res * TWO_PI) * size, sin(i / res * TWO_PI) * size));
translate(width * 0.5, height * 0.5);
var pos = createVector();
for(var j = 0; j < 5; j++){
stroke((0 + frames * 0.001) % 1,0.8,0.5,0.01);
for(var i = 0; i < shape.length; i++){
pos.x = simplex.noise3D(shape[i].x, shape[i].y, 10 + frames * 0.0005);
pos.y = simplex.noise3D(shape[i].x, shape[i].y, 20 + frames * 0.0005);
vertex(pos.x * width * 0.4, pos.y * height * 0.4);
stroke((0.5 + frames * 0.001) % 1,0.8,0.5,0.01);
for(var i = 0; i < shape.length; i++){
pos.x = simplex.noise3D(shape[i].x, shape[i].y, 10 + frames * 0.0005);
pos.y = simplex.noise3D(shape[i].x, shape[i].y, 20 + frames * 0.0005);
vertex(-pos.x * width * 0.4, pos.y * height * 0.4);
stroke((0.75 + frames * 0.001) % 1,0.8,0.5,0.01);
for(var i = 0; i < shape.length; i++){
pos.x = simplex.noise3D(shape[i].x, shape[i].y, 10 + frames * 0.0005);
pos.y = simplex.noise3D(shape[i].x, shape[i].y, 20 + frames * 0.0005);
vertex(pos.x * width * 0.4, -pos.y * height * 0.4);
stroke((0.25 + frames * 0.001) % 1,0.8,0.5,0.01);
for(var i = 0; i < shape.length; i++){
pos.x = simplex.noise3D(shape[i].x, shape[i].y, 10 + frames * 0.0005);
pos.y = simplex.noise3D(shape[i].x, shape[i].y, 20 + frames * 0.0005);
vertex(-pos.x * width * 0.4, -pos.y * height * 0.4);
rect(-10, -10, width+20, height+20, 80);
rect(0, 0, width, height);
simplex = new SimplexNoise(random(-99999999, 99999999));