xxxxxxxxxx
let simplex
let colors=["#c69322","#c0bd9b","#a08b8d","#005e84","#42a5e4","#4ad3c8","#02c287"]
let single, indent,ttl, tt, ttp, ttpp, ttppp, tttl, center, ttt, inc, nearBottom, incp, bgc
function preload(){
font= loadFont('FamiljenGrotesk-VariableFont_wght.ttf')
bgc= '#f4f1de'
}
function setup() {
single= TAU/TAU //1
let t= TAU//6.28
indent= t+t+t+single
ttl= TAU*TAU-TAU//33
tt= TAU*TAU //39
ttp= ttl+ttl //66
ttpp= ttl+ttl+ttl //99.58
ttppp=ttl+ttl+ttl+ttl
tttl= TAU*TAU*TAU-TAU//241
center= tttl-tt-single-single//center
ttt= TAU * TAU*TAU //248
inc=ttl/ttt //0.133
incp= inc+inc
nearBottom=ttt+ttpp+tt
let cs= center+center
createCanvas(cs, cs);
simplex= new openSimplexNoise(Date.now())
background(bgc)
}
function draw(){
background(bgc)
noStroke()
for(let r=ttppp; r>TAU; r-=single){
fill(colorMixer(r, colors))
beginShape()
for(let a=0; a<TAU; a+=inc){
let roff= simplex.noise4D(cos(a), sin(a), r*incp*incp, frameCount*inc*inc)*(TAU+TAU+single)
vertex(center+cos(a)*(r+roff), center+sin(a)*(r+roff))
}
endShape(CLOSE)
}
noStroke()
textFont(font)
fill(ttpp)
stroke(ttpp)
text('TAU', indent, nearBottom)
}
function colorMixer(r, colorArray, alpha) {
let timer= frameCount*inc*inc*incp
let c = noise(r*incp*incp+timer) * colorArray.length
let cc = floor(c)
let ccc = floor(c + single) % colorArray.length
let colora = colorArray[cc]
let colorb = colorArray[ccc]
let mix = fract(c)
let coloring = color(spectral.mix(colora, colorb, mix))
return coloring
}