function fmod(r,theta,phi) = // ellipsoid
let (e=2) [r * sqrt(pow(abs(cos(theta)),2)+ e*pow(abs(sin(theta)),2)), theta,phi];
function fmod(r,theta,phi) = // egg
[r*(1.0 - 0.5*pow(0.8*(cos(theta+60)),2)), theta,phi];
function fmod(r,theta,phi) = // berry
[r*(1.0+ 0.5*pow(1.1*(cos(1*theta)),3)), theta,phi];
function fmod(r,theta,phi) = // cushion
[r*(1.0 - 0.5*pow(0.9*cos(theta),2)), theta, phi];
function fmod(r,theta,phi) = // bauble
[r*(1- 0.5*sin(theta*2) + 0.1* sin(theta)*sqrt(abs(cos(theta*2))))
/ (sin(theta)), theta,phi] ;
function fmod(r,theta,phi) = // bigbauble
[r*(1+abs(cos(theta*1.5))), theta,phi ];
function fmod(r,theta,phi) = // superegg
let (n=2.6,e=1.2)
[ r* (pow(
pow(abs(cos(theta)),n)
+ e*pow(abs(sin(theta)),n)
,-1/n))
,theta,phi];
function fmod(r,theta,phi) = // top
[r*(1+abs(cos(theta*2))), theta,phi ];
function fmod(r,theta,phi) = // double
[r*(1+abs(cos(theta*2))), theta,phi ];