SchwarzD

(* ------ programme élémentaire -------*)

Relax[poly_GraphicsComplex]:=With[{faces0=poly[[2,1]],N0=Length[poly[[1]]]},With[{edges0=Union@@(Sort/@Partition[#,2,1,1]&/@faces0)},With[{pts0=Flatten[{#,Function[{e},Mean[#[[e]]]]/@edges0}&@poly[[1]],1]},With[
{faces=Flatten[(({{#[[1,2]],Sort[#[[2]]],Sort[#[[1]]]}&/@Partition[#,2,1,1],{Sort/@#}})&/@(Partition[#,2,1,1]&/@faces0))/.MapIndexed[#1->N0+First[#2]&,Union@@(Sort/@Partition[#,2,1,1]&/@faces0)],2]},With[{pts=Table[If[MemberQ[pts0[[p]],-1/2|1/2],pts0[[p]],Mean[pts0[[DeleteCases[Union@@Select[faces,MemberQ[#,p]&],p]]]]],{p,Length[pts0]}]},GraphicsComplex[pts,Polygon[faces]]]]]]];
Graphics3D[GraphicsComplex[Append[Most@Rest@Tuples[{-1/2,1/2},3],{0,0,0}],
Polygon[Append[#,7]&/@Partition[{1,3,2,6,4,5},2,1,1]]]]
Graphics3D[Relax@GraphicsComplex[Append[Most@Rest@Tuples[{-1/2,1/2},3],{0,0,0}],
Polygon[Append[#,7]&/@Partition[{1,3,2,6,4,5},2,1,1]]]]
Graphics3D[Relax@Relax@GraphicsComplex[Append[Most@Rest@Tuples[{-1/2,1/2},3],{0,0,0}],
Polygon[Append[#,7]&/@Partition[{1,3,2,6,4,5},2,1,1]]]]