// globals float mainrotation = 0; boolean remove = false; Graviton[] gravioli = new Graviton[0]; void setup(){ size(200,200,P3D); background(0); } void draw(){ fill(0,0,0,1); rect(0,0,width,height); translate(width/2, height/2); rotateY(radians(mainrotation)); translate(-width/2, -height/2); for(int i=0; i 0){ gravioli = removeGravioli(gravioli); } else { gravioli = addGravioli(gravioli); } } class Graviton{ int x, x1, x2, y, y1, y2, radius, offset, r, g, b; int num = 100; float cnt, detail, rotx, roty, rotz; int[] xlist = new int[num]; int[] ylist = new int[num]; Stack xstack = new Stack(); Stack ystack = new Stack(); Graviton(){ radius = int(width * 0.4); // orbit size offset = int(width / 2); // center detail = 6.28 / random(200,500); // speed cnt = random(-3.14, 3.14); // starting location rotx = random(-3.14, 3.14); roty = random(-3.14, 3.14); rotz = random(-3.14, 3.14); r = 0; g = int(random(150, 255)); b = int(random(150, 255)); x = int(sin(cnt) * radius + offset); y = int(cos(cnt) * radius + offset); for(int i=0; i 3.14){ cnt = -3.14; } } void trail(){ for(int i=1; i