<<Graphics`Colors`

col[0] = Red
col[1] = Green
col[2] = Blue
col[3] = Yellow
col[4] = Orange
col[5] = Olive
col[6] = Turquoise
col[7] = Maroon
col[8] = DarkGreen
col[9] = LightBlue
col[n_] := col[Mod[n,10]] /; n>9

LiveForm[g_] := NumberForm[InputForm[N[g]], 5]

WriteLiveForm[filename_, g_] := (
        WriteString[filename, 
        ToString[NumberForm[InputForm[N[g]], 5]]];
        Close[filename];)

g3D[t_,vp_] :=
 Graphics3D[t,
  {PlotRange -> {{-2,2},{-2,2},{-2,2}},
   BoxRatios -> {1,1,1},
   Boxed -> False,
   Lighting -> False,
   Background -> GrayLevel[0],
   ViewPoint -> vp}
]

g3D[t_] := g3D[t,{5,1,1}]

Polify[{i__}] := Polygon[v /@ {i}]

Linify[{i__}] := Line[v /@ {i}]

DualVertex[{i__}] := N[(Plus @@ v /@ {i})/Length[{i}]]

DualFace[i_] := 
 Module[{unord,ord,currface},
  unord = Select[Faces,MemberQ[#,i]&];
  ord = {unord[[1]]};
  unord = Drop[unord,1];
  currface = ord[[1]];
  While[unord =!= {},
   currface = 
    First[Select[unord,Length[Intersection[#,currface]]==2&]];
   ord = Join[ord,{currface}];
   unord = Complement[unord,{currface}]
  ];
  Polygon[DualVertex /@ ord]
 ]
 

BasicPicture[] :=  g3D[{
 EdgeForm[],
 Table[{col[i-1],Polify[Faces[[i]]]},{i,Length[Faces]}]
}]
   
DualPicture[] := g3D[{
 White,
 Linify /@ Edges,
 Table[{col[i],DualFace[i]},{i,0,numVertices - 1}]
}]

BWSolid[] := {
 EdgeForm[{GrayLevel[0]}],
 Polify /@ Faces
}

VertexNumbers[] := 
 Table[Text[ToString[i],1.1 v[i]],{i,0,numVertices-1}]