var('x theta')
def fun(x,theta):
npi=pi.n()
phi=(npi/2.0)*exp(-theta/(8.0*npi))
mo=3.6*theta-(2*npi)*floor(3.6*theta/(2*npi))
X=1-0.5*(1.25*(1-mo/npi)^2-0.25)^2
y=(1.95653)*x^2*((1.27689)*x-1.0)**2*sin(phi)
r=X*(x*sin(phi)+y*cos(phi))
return [r*sin(theta),r*cos(theta),X*(x*cos(phi)-y*sin(phi))]
parametric_plot3d(fun(x,theta),(x,0,1),(theta,-2*pi,15*pi),color='red',plot_points=[100,100],frame=false)