import graph3;
size(200,0);

currentlight=Viewport;

triple f(pair t) {
 real u=log(abs(tan(t.y/2)));
 return (10*sin(t.y),cos(t.x)*(cos(t.y)+u),sin(t.x)*(cos(t.y)+u));
}

surface s=surface(f,(0,pi/2),(2pi,pi-0.1),7,15,Spline);
draw(s,olive+0.25*white,render(compression=Low,merge=true));