(* catenoid cousins in explicit form *)

mu=3.0;

xsteps = 29;
ysteps = 16;
xstepsize = -0.027;
ystepsize = 1.57075/8;
xbegin = 1.0; (* x is r *)
xend = xbegin-0.783; 
ybegin = 0.0; (* y goes from 0 to pi *)
yend = 6.283/2;

j=0;Do[{i=0;j=j+1;
Print["next y = ",y];
Do[ 
{i=i+1;
z=x x Exp[I y];
v[i,j,1] = Sqrt[1/(2 mu+1)] (mu+1) z^mu;
v[i,j,2] = Sqrt[1/(2 mu+1)] mu z^(-mu-1);
v[i,j,3] = Sqrt[1/(2 mu+1)] mu z^(mu+1);
v[i,j,4] = Sqrt[1/(2 mu+1)] (mu+1) z^(-mu); 

(* Now convert to SL(2,C) model for H3.  *)
f11 = (v[i,j,1])*Conjugate[v[i,j,1]] + (v[i,j,2])*Conjugate[v[i,j,2]];
f12 = (v[i,j,1])*Conjugate[v[i,j,3]] + (v[i,j,2])*Conjugate[v[i,j,4]];
f21 = (v[i,j,3])*Conjugate[v[i,j,1]] + (v[i,j,4])*Conjugate[v[i,j,2]];
f22 = (v[i,j,3])*Conjugate[v[i,j,3]] + (v[i,j,4])*Conjugate[v[i,j,4]];

(* Now convert to Minkowski model for H3.  *)
t = (f11 + f22)*(0.5);
x1 = (f12+f21)*(0.5);
x2 = (f12-f21)*(-0.5 I);
x3 = (f11-f22)*(0.5);

(* Now convert to Poincare model for H3.  *)
v[i,j,13] = -Re[x1/(1+t)];
v[i,j,14] = -Re[x2/(1+t)];
v[i,j,15] = Re[x3/(1+t)]; 
w[i,j,13] = -Re[x1/(1+t)];
w[i,j,14] = -Re[x2/(1+t)];
w[i,j,15] = -Re[x3/(1+t)]; 

},{x, xbegin, xend, xstepsize} ];},
{y, ybegin, yend, ystepsize} ];

(* Now we make the graphics.*)

forjavaview=Show[Table[Graphics3D[{EdgeForm[ ],Polygon[{Table[v[i,j,k],{k,13,15}],Table[v[i+1,j,k],
  {k,13,15}],Table[v[i,j+1,k],{k,13,15}]}]}],{i,1,xsteps},{j,1,ysteps}],
  Table[Graphics3D[{EdgeForm[ ],Polygon[{Table[v[i+1,j,k],{k,13,15}],Table[v[i+1,j+1,k],
  {k,13,15}],Table[v[i,j+1,k],{k,13,15}]}]}],{i,1,xsteps},{j,1,ysteps}],
  Table[Graphics3D[{EdgeForm[ ],Polygon[{Table[w[i+1,j,k],{k,13,15}],Table[w[i,j,k],
  {k,13,15}],Table[w[i,j+1,k],{k,13,15}]}]}],{i,1,xsteps},{j,1,ysteps}],
  Table[Graphics3D[{EdgeForm[ ],Polygon[{Table[w[i+1,j+1,k],{k,13,15}],Table[w[i+1,j,k],
  {k,13,15}],Table[w[i,j+1,k],{k,13,15}]}]}],{i,1,xsteps},{j,1,ysteps}],
  PlotRange -> {{-1,1},{-1,1},{-1,1}}, Boxed -> False];

<< JavaView`RunThrough`

RunJavaView[forjavaview]