I copy this code from here
settings.render=8;
import solids;
size(5cm);
currentprojection=orthographic(1,0.3,0.3);
revolution b=sphere(O,1);
draw(surface(b),white+opacity(.5));
skeleton s;
b.transverse(s,reltime(b.g,0.5),P=currentprojection);
draw(s.transverse.back,dashed);
draw(s.transverse.front);
draw(rotate(90,X)s.transverse.back,dashed);
draw(rotate(90,X)s.transverse.front);
real rayon=0.8, phi=90, theta=45;
triple pM=dir(phi,theta);
draw((O--pM),dashed+green+0.7bp,Arrow3(size=7));
label(Label("$\psi$",yellow),pM,0.5dir(-90));
xaxis3("$x$",1,1.5,Arrow3);
xaxis3(-1.3,1,linetype(new real[] {8,8}));
yaxis3("$y$",1,1.5,Arrow3);
yaxis3(-1.3,1,linetype(new real[] {8,8}));
zaxis3("$z$",1,1.5,Arrow3);
zaxis3(0,1,linetype(new real[] {8,8}));
and try to compile at here http://asymptote.ualberta.ca/
I rotate output by hand, the result seems incorrect.

How can I get the result like this?
