@davidedc@mas.to retweeted
oimo.io/works/bubbles/
Released Bubbles, an interactive soap-bubble simulator!
Runs on your PCs and smartphones 🌬️🫧
公開しました!シャボン玉をくっつけて遊べます
#indiedevs
@davidedc@mas.to retweeted
p=f=0,draw=a=>{for(f++||createCanvas(W=400,W,WEBGL,T=translate,S=sphere,F=fill),background(0),z=-W;z<W;z+=8)for(x=-W;x<W;x+=4)push(d=200),T(x,y=99*noise(x/d+3,(z-f)/d)+99,z),F(99*(y-p)+d-22*!(z%8)),p=y,T(0,-99),S(1,d),F(W),pop(T(0,-y),S(140-y<0?0:35-y/4,d))};//#つぶやきProcessing
@davidedc@mas.to retweeted
setup=_=>{createCanvas(W=720,W)
background("#114")
noStroke()
R=random
for(i=600;i-->39;)fill(W,i/9)+circle(R(W),R(W),i/99)+(i<50?circle(H=360,H,H+i%9*30):0)
fill("#D86")
circle(H,H,H)
drawingContext.clip()
for(i=0;i<W;i++){fill(0,i/99)+circle(R(W),R(W),i/3)}}
#つぶやきProcessing
@davidedc@mas.to retweeted
#つぶやきProcessing
f=0;p=[];draw=_=>{f++||createCanvas(W=801,W)&&background(127);p=p.filter(e=>{push();translate(e.x,e.y);rotate(e.a);stroke(e.b%2*W);circle(d=f-e.b,16*asin(sin(d/16)),2);pop();return d<W});p.push({b:f,x:random(W),y:random(W),a:random(TAU)})}
#p5js #generativeart
@davidedc@mas.to retweeted
Wildflowers 🌻 dwitter.net/d/26439 #generativeart #javascript #tinycode
A=S(B=X=t*t*797%1e3)/4
Y=199+X%57
for(i=t%1>.1||21;i-->-80;x.fillRect(q?X-5+S(a=i+Y)*i:X+=S(A-=.003),q?Y+C(a)*i:Y+=C(A),z=q?9:i/19,z))q=i>0,x.fillStyle=R(z=q&&i*19,q?z/2:B%99)
x.scale(s=1.001,s)
@davidedc@mas.to retweeted
📽️Outsized baubles from a Christmas display have caused chaos on London's Tottenham Court Road after rolling into traffic.
Read more here ⬇️
telegraph.co.uk/news/2022/11…
@davidedc@mas.to retweeted
t=0
draw=_=>{t||createCanvas(W=720,W)
t+=.03
background(0,99)
stroke(W)
fill(W,99)
F=.5
for(r=0;r<TAU;r+=PI/32){
F++
X=Y=360
beginShape()
for(d=0;d<60;d++)vertex(X+=cos(R=r+(noise(d/9-t)-.5)*d*d/400*(L=F%4-2))*d/6*L,Y+=sin(R)*d/6*L)
endShape()}}
#つぶやきProcessing
@davidedc@mas.to retweeted
#つぶやきProcessing
f=0
draw=_=>{f++?background(0):createCanvas(W=600,W)
beginShape()
vertex(0,W)
for(n=W*2;n--;vertex(x,y))for(y=x=n-300,m=14;m--;x=X+d*sin(b=atan2(x-X,y-Y)+max(0,W-d)/250*sin(m+f/W*PI)),y=Y+d*cos(b))a=noise(m)*W,d=dist(x,y,X=a*7%W,Y=a*9%W)
endShape()}
@davidedc@mas.to retweeted
t=0
draw=_=>{t?background(0):createCanvas(W=800,W,WEBGL)
colorMode(HSB,99)
rotateY(t+=.01)
for(N=i=99;i--;){o=~~(t%2)
e=2**(-9*(t%1))*sin((t%1*9-.75)*2.1)+1
push(x=i*(o?1-e:e)*6/N)
rotateX(o?x:6-x)
noFill(stroke(o?i:N-i,N,N))
translate(0,200)
pop(box(i))}}//#つぶやきProcessing
@davidedc@mas.to retweeted
#つぶやきProcessing 「六角スロット」
f=0
draw=_=>{
f++?background(0):createCanvas(W=500,W)
noStroke()
for(r=f%50;r<500;r+=50)
for(i=0;i<TAU;i+=PI/30){
fill((f-r)%100*W)
circle(250+r*cos(I=i+f*(noise(r-f)-.5)/10),250+r*sin(I),r/2*cos(i*3))
}
}
@davidedc@mas.to retweeted
//#つぶやきProcessing
float d,n,r,t;
void setup(){
size(800,800);
}
void draw(){
clear();
stroke(-1);
translate(d=400,d);
for(r=0;r<TAU;r+=PI/300){
n=d*noise(sin(r),cos(r),t);
line(n*sin(r),n*cos(r),0,0);
}
t+=.01;
}
@davidedc@mas.to retweeted
t=0
draw=_=>{t||createCanvas(W=720,W)
t+=.03
background(0,50)
noFill()
for(j=0;j++<9;)for(i=0;i++<200;){stroke(W,i/3)
beginShape()
X=noise(j,I=i/99+t)*W
Y=noise(j,I,9)*W
for(d=0;d<20;d++)vertex(X+=cos(R=noise(I+d)*99)*(D=(200-i)/9),Y+=sin(R)*D+D)
endShape()}}
#つぶやきProcessing
@davidedc@mas.to retweeted
//#つぶやきProcessing
float x,y,k=1,d;
void setup(){size(800,800);}
void draw(){
clear();stroke(-1);
for(y=0;y<800;y++)for(x=0;x<800;x++)point(x+(d=k-k*2*noise(x/99,y/99)),y+d);
k+=.1;}



















