cot(x)=1/tan(x)
x(u,v)=(A*sin(b)*cos(u)+R*cos(v)*cos(u)-R*sin(m)*sin(v)*sin(u))*exp(u*cot(a))
y(u,v)=(-A*sin(b)*sin(u)-R*cos(v)*sin(u)-R*sin(m)*sin(v)*cos(u))*exp(u*cot(a))
z(u,v)=(-A*cos(b) + R*sin(v)*cos(m))*exp(u*cot(a))
D=1; a=pi/180*88.1; b=pi/45; m=pi/180; A=22.2; R=2.3
#
set pm3d depth lighting primary 0.75
set palette rgb 8,7,27
set samples 256
set isosamples 32
unset border
unset tics
unset colorbox
unset key
set xyplane 0
set view 65,30, 0.6,3
set term pngcairo size 360,360 background "#003344"

set parametric
set urange[-18*pi:0]
set vrange[-7*pi/4:pi/4]
set zrange [-25:0]

N = 30
do for [i = 0 : N+10]{
  j = i > N ? N: i
  set ur [-18*pi*j/N:0]
  set out sprintf("im%03d.png",i)
  splot x(u,v), y(u,v), z(u,v) w pm3d
}
system("convert -adjoin -delay 10 im*.png shell3m.gif")
system("rm im*.png")