xxxxxxxxxx
var GW,GH
var P=[]
var t=0
function setup() {
createCanvas(GW = windowWidth, GH = windowHeight);
background(0)
}
function draw() {
t++;
colorMode(HSB)
if(t%30==0){
background(0,.02)
}
noFill();
stroke(255)
imageMode(CENTER)
if(t%50==1){
var temp={
s:L=random(200)+50,
l:L,
g:createGraphics(L*2.5,L*2.5),
id:random(100),
x:random(GW),
y:random(GH),
t:0,
r:random(TAU),
d:int(random(10))+3,
c:random(360),
di:int(random(2))*2-1
}
temp.g.noStroke();
//temp.g.stroke(255)
temp.g.colorMode(HSB)
temp.g.fill(255)
//temp.g.background(255,0,0)
temp.g.translate(L*1.25,L*1.25)
P.push(temp)
}
P=P.filter(e=>e.t/99<TAU)
P.forEach(e=>{
//e.g.background(0,.01)
if(e.t/99<TAU){
e.t++
e.g.fill(255)
var place = int((e.t/99) / (TAU / e.d))
var per = ((e.t/99)/(TAU/e.d))%1
var ratio = 1//(1-(e.t/99)/TAU)/4*3+.25
var alpha = e.t/99<1?e.t/99:e.t/99>5.8?6.2-e.t/99:e.t/99
for(i=0;i<int(e.l/10);i++){
var bx = cos(e.r+e.di*TAU/e.d*place)*e.l/(e.l/10)*i
var by = sin(e.r+e.di*TAU/e.d*place)*e.l/(e.l/10)*i
var ex = cos(e.r+e.di*TAU/e.d*(place+1))*e.l/(e.l/10)*i
var ey = sin(e.r+e.di*TAU/e.d*(place+1))*e.l/(e.l/10)*i
var sat = noise(e.t/9)*40
e.g.fill(0,.04)
e.g.circle(bx+(ex-bx)*per,
by+(ey-by)*per,
noise(i,e.t/49)*50*(ratio/4*3+.25)*(e.l/(e.l/10))*.08)
e.g.fill(e.c,40+sat*2,100-sat,alpha)
e.g.circle(bx+(ex-bx)*per,
by+(ey-by)*per,
noise(i,e.t/49)*20*ratio)
}
}
push()
image(e.g,e.x,e.y)
pop()
})
}