Pensieve header: The Schwartz Lantern.

cyl[α_,β_] := {Cos[2π α], Sin[2π α],β};

dots[n_,m_]:=dots[n,m]=Table[
cyl[((i+If[OddQ[j],1/2,0])/n),(j/m)],
{i,0,n},{j,0,m}
]

dots[3,4]

poly[n_,m_] :=Module[{vs},
vs=dots[n,m];
Flatten[Table[
{
Polygon[{vs[[i,j]],vs[[i+1,j]],vs[[i,j+1]]}],
Polygon[{vs[[i+1,j+1]],vs[[i+1,j]],vs[[i,j+1]]}]
},
{i,1,n},{j,1,m}
]]
]

poly[3,4]

Graphics3D[poly[8,40]]