xxxxxxxxxx
let font
let simplex
function preload(){
font= loadFont('FamiljenGrotesk-VariableFont_wght.ttf')
}
function setup() {
createCanvas(400, 400);
background(255)
simplex= new openSimplexNoise(Date.now())
for(let i=0; i<20; i++){
let r= random(5, 50)
let x=random(60+r, 340-r)
let y=map(i, 0, 20,340-r, 60+r)+ random(-10, 10)
blob(x,y, r )
}
textFont(font)
fill(0)
text('1.14', 20, 380)
}
function blob(x, y, r){
strokeWeight(r*0.0075)
stroke(0)
fill(255)
beginShape()
for(let a=0; a<=TAU; a+=TAU/200){
let sizer=r*0.5
let roff= simplex.noise3D(cos(a), sin(a), x+y)*sizer
let thisR=r+roff
let newX=x+cos(a)*thisR
let newY=y+sin(a)*thisR
vertex(newX, newY)
//line(newX, newY, newX+(r*0.2), newY-(r*0.2))
}
endShape()
push()
translate(r*0.2, -r*0.2)
beginShape()
for(let a=0; a<=TAU; a+=TAU/200){
let sizer=r*0.5
let roff= simplex.noise3D(cos(a), sin(a), x+y)*sizer
let thisR=r+roff
let newX=x+cos(a)*thisR
let newY=y+sin(a)*thisR
line(newX, newY, newX-(r*0.2), newY+(r*0.2))
vertex(newX, newY)
}
endShape()
let decrease=1.1
for(let sr=r; sr>r*0.1; sr-=decrease){
decrease= pow(decrease, 1.6)
beginShape()
for(let a=0; a<=TAU; a+=TAU/200){
let sizer=sr*0.5
let roff= simplex.noise3D(cos(a), sin(a), x+y)*sizer
let thisR=sr+roff
let newX=x+cos(a)*thisR
let newY=y+sin(a)*thisR
vertex(newX, newY)
}
endShape()
}
pop()
}