0x57ca1267…d46csent to0xf28f163e…abec·#24,238,200·view on Etherscan
ipfs://bafybeie4oc7oabjov37ys3vp7sbkfbk5ixdatgealgxdvcnm6bdvajgfmqlet circleRadius,timeOffset=0,res=2;
function setup(){
let s=min(windowWidth,windowHeight);
createCanvas(s,s);
colorMode(HSB,360,100,100);
circleRadius=width*0.4;
noStroke();
}
function windowResized(){
let s=min(windowWidth,windowHeight);
resizeCanvas(s,s);
circleRadius=width*0.4;
}
function draw(){
if(frameCount<2){background(0);return;}
background(0);
timeOffset+=0.015;
push();
translate(width/2,height/2);
let t1=timeOffset*0.3,t2=timeOffset*0.2,t3=timeOffset*0.4,t4=timeOffset*0.5,t5=timeOffset*0.6;
let hue=(timeOffset*100)%360,ns=0.01,off=res*0.7,lf=15;
for(let y=-circleRadius;y<=circleRadius;y+=res){
for(let x=-circleRadius;x<=circleRadius;x+=res){
let d=sqrt(x*x+y*y);
if(d>circleRadius)continue;
let r1x=x*0.7-y*0.7,r1y=x*0.7+y*0.7,r2x=-x*0.5+y*0.866,r2y=-x*0.866-y*0.5;
let n1=noise(x*ns+t1,y*ns+t2,t3),n2=noise(r1x*ns*1.3+t3,r1y*ns*1.3+t2,t4),n3=noise(r2x*ns*1.7+t4,r2y*ns*1.7+t3,t5);
let c=n1*0.5+n2*0.3+n3*0.2;
let nb1=noise((x+off)*ns+t1,y*ns+t2,t3),nb2=noise((r1x+off*0.7)*ns*1.3+t3,r1y*ns*1.3+t2,t4),nb3=noise((r2x+off*0.5)*ns*1.7+t4,r2y*ns*1.7+t3,t5);
let nc=nb1*0.5+nb2*0.3+nb3*0.2;
let m=(c*lf)%1,tl=m<0.025||m>0.975,g=abs(c-nc),gl=g>0.05&&g<0.1;
if(tl||gl){
let r=d/circleRadius,sat=map(r,0,1,100,20),br=r<0.67?map(r,0,0.67,95,70):map(pow((r-0.67)/0.33,2.5),0,1,70,0);
fill(hue,sat,br);
rect(x,y,res,res);
}
}
}
pop();
}