rd = 40;
th = 0..360;
ph = -90..90;
x1 = Math.Pow(rd,2) * Math.Cos(th)<2> * Math.Sin(th) * Math.Sin(ph)<1>;
y1 = Math.Pow(rd,2) * Math.Cos(th)<1> * Math.Sin(th) * Math.Cos(ph)<2>;
z1 = Math.Pow(rd,2) * Math.Pow(Math.Cos(th), 2) * Math.Cos(ph)<1> * Math.Sin(ph);
s1 = NurbsSurface.ByPoints(Point.ByCoordinates(x1, y1, z1));
// Tspline Surface
c1 = List.Flatten(List.Flatten(s1.GetIsoline((0..1)<1>,0..1..#33),-1).SplitByParameter(0..1..#33));
t1 = TSplineSurface.BuildPipes(c1, 10, 0.001, null, true,true, null, null, null,null, null, null, false);[GeometryColor.ByGeometryColor(t1,Color.ByARGB(250,20,100,120)),GeometryColor.ByGeometryColor(s1,Color.ByARGB(150,150,150,20))];