size(200);
import graph3;

currentprojection=perspective(5,4,4);

real R=3;
real a=1;

/*
 import solids;
 revolution torus=revolution(reverse(Circle(R*X,a,Y,32)),Z,90,345);
 surface s=surface(torus);
*/

triple f(pair t) {
 return ((R+a*cos(t.y))*cos(t.x),(R+a*cos(t.y))*sin(t.x),a*sin(t.y));
}

surface s=surface(f,(radians(90),0),(radians(345),2pi),8,8,Spline);
draw(s,green,render(compression=Low,merge=true));