(* This computes the action of proper affine parabolic group on a line-- Section 3.1 *)
 (*Phi1 is the linear part of the affine action Section 3.1.2*)
Phi1[t_]:= {{1, t, t^2/2}, {0, 1, t}, {0, 0, 1}}

(* Phi2 is the translation part *)

Phi2[mu1_, t_]:= mu1{t^3/6, t^2/2, t}

(* Inner prodcut in the parabolic coordinate system *)

M={{0,0,-1}, {0, 1, 0}, {-1, 0, 0}}

(* Our line to move around by Phi*)

L[s_]:= { a*s, y0,  c* s}

(* The moved line by parameter t*)

LINE[s_, t_]:= Phi1[t].L[s] + Phi2[mu, t]

LINE[s, t]

(*This gives a section at x= x0. Solving first for the parameter s*)

Solve[a s+(1/2) c s (t^2)+((mu (t^3))/6)+t y0==x0, s]

(*The actual location of the section at x=x0 *)

Simplify[LINE[((-mu (t^3)+6 x0-6 t y0)/(3 (2 a+c (t^2)))), t]]

(* need condition y0 < mu a/c From the paper*)

(*We animate the section as we change x0 for a simple case*)

Animate[ParametricPlot[{((mu (t^2))/2)+y0-((c t (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2))),mu t-((c (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2)))}/.{y0->1, a->1, c-> 0.1, mu->1}, {t, -10, 10}], {x0, -10, 10}]

(* We draw the ruled surface using the sections for a case  *)

ParametricPlot3D[{x0,((mu (t^2))/2)+y0-((c t (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2))),mu t-((c (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2)))}/.{y0->1, a->1, c-> 0.1, mu->1},{x0, -50, 50}, {t, -10, 10}]

(* We draw the ruled surface using the sections for another case   *)

ParametricPlot3D[{x0,((mu (t^2))/2)+y0-((c t (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2))),mu t-((c (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2)))}/.{y0->1, a->1, c-> 0.2, mu->1},{x0, -50, 50}, {t, -10, 10}]

(* Draw the surface in the compactification of the affine space as a unit ball *)

CoorNorm[{x_, y_, z_}]:= {x/Sqrt[(1+Norm[{x, y, z}]^2)], y/Sqrt[(1+Norm[{x, y, z}]^2)],  z/Sqrt[(1+Norm[{x, y, z}]^2)]}

(*stereographic projection of the ruled surface   *)

ParametricPlot3D[CoorNorm[{x0,((mu (t^2))/2)+y0-((c t (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2))),mu t-((c (mu (t^3)-6 x0+6 t y0))/(6 a+3 c (t^2)))}]/.{y0->1, a->1, c-> 0.1, mu->1},{x0, -30, 30}, {t, -20, 20}]