The Nil circle
This function calculates and plots a circle in nil space. The circle is calculated by taking a fixed step and then turning  fixed degrees and taking another step. It then prints a point plot of all the points on the circle, then and animation of how the plane changes traveling around the circle, then finally it outputs a plot with a line connected all the points.

(*The User can change the degree, the step size, and the number of interations*)
θ = Pi/32;
stepSize = .5;
interations= 100;

(*The user should not change any of the following code*)
{x1,y1,z1} = {0.0,0.,0};
point = {x1, y1,z1};
pointList = {point};
u = {1,0, 2y1};
v = {0,1, -2x1};
v1 = {1,0,2y1};

For[i=0, i < interations, i ++,
u = {1.0,0, 2*point[[2]]};
v = {0,1,-2*point[[1]]};
n = Cross[u,v];
n = n/Norm[n];
vtemp = ((v1 -(v1.n)*n)/Norm[(v1 -(v1.n)*n)])*Norm[v1];
v2 = vtemp*Cos[θ] + (Cross[n,vtemp])*Sin[θ];
newpoint = point +stepSize*v2;
pointList = Append[pointList, newpoint];

point = newpoint;
v1 =v2;

]
Print["The points on the path"]
ListPointPlot3D[pointList]

Print["The animation showing how the tangent plane changes as the circle is traverse"]
Animate[{f,g,h}=pointList[[i]];
u={1,0,2 g};
v={0,1,-2 f};
e=Cross[u,v];
{a,b,c}=e;
d=e.{f,g,h};
Show[Graphics3D[{Thick,Line[pointList]},Axes->True,PlotRange->All,BoxRatios->{1,1,3}],Plot3D[(-a/c)*x+(-b/c)*y+d/c,{x,-10,10},{y,-10,10},PlotLabel-> {f,g,h},Mesh->{{{f, Thick}}, {{g,Thick}}}, ClippingStyle->None,PlotRange->All, BoxRatios->{1,1,3}]] , {i, 1,interations,1}, AnimationRate->.75]
Print["A curved formed by connecting the points"] 
Graphics3D[{Thick,Line[pointList]}]