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));
