Creating an ambiguous cylinder
Written by Evelyn Sander 2019

Plot[ {1-Abs[t],Sqrt[1-t^2],-(1-Abs[t]),-Sqrt[1-t^2]},{t,-1,1},AspectRatio->Equal]

f1 = 1-Abs[t]
f2 = -(1-Abs[t])
g1 = Sqrt[1-t^2]
g2 = -Sqrt[1-t^2]

alpha = 1/Sqrt[2]
h = 2

sum1 = alpha( f1 + g1)
sum2 = alpha ( f2 + g2)
diff1 = alpha (g1-f1)
diff2 = alpha(g2-f2)

a = ParametricPlot3D[{{t,sum1, h + diff1},{t,sum2,h+diff2}},{t,-1,1},AspectRatio->Equal,ViewPoint->{0,Infinity,Infinity}]

Show[a,ViewPoint->Front]

Show[a,ViewPoint->{0,-Infinity,Infinity}]

a3 = ParametricPlot3D[20{ {t,sum1,u (h + diff1)},{t,sum2,u (h+ diff2)}},{u,0,1},{t,-1,1},PlotStyle->Thickness[2],Mesh-> False,PlotPoints->100, AspectRatio->Equal,ViewPoint->{0,Infinity,Infinity}]

Show[a3,ViewPoint->Back]

Show[a3,ViewPoint->{0,-Infinity,Infinity}]

Export["ambiguity.stl",a3]