let a=3,k=10,m=0.2;
let b;
function setup(){
createCanvas(600,600,WEBGL);
noStroke()
normalMaterial()
b=a*(abs(exp(2*m*PI))-1)/(exp(2*m*PI)+1)*sqrt(1+k*k)
}
function draw(){
background(255)
t=frameCount/200
orbitControl()
shell1()
}
function shell1(){
for(let v=0;v<2*PI;v+=0.1){
for(let u= 0;u<9*PI;u+=0.1){
x=(a+b*cos(v+t)*exp(m*u)*cos(u+t))+3*sin(t+u);
y=(a+b*cos(v+t)*exp(m*u)*sin(u+t/2))+3*sin(t+u);
z=(k*a*u/1.5+b*sin(v+t)*exp(m*u)+30*sin(t))
push()
translate(x,z,y)
sphere(1,3,3)
pop()
}
}
}