Elongated Gyrobifastigium

Author

Eric W. Weisstein
September 28, 2022

This notebook downloaded from http://mathworld.wolfram.com/notebooks/Polyhedra/ElongatedGyrobifastigium.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/ElongatedGyrobifastigium.html.

©2022 Wolfram Research, Inc. except for portions noted otherwise

Sources

https://en.wikipedia.org/wiki/Elongated_gyrobifastigium#Variations

Varieties

PolyhedronData["*ElongatedGyrobifastigium"]

PolyhedronData[#,"F"]&/@PolyhedronData["*ElongatedGyrobifastigium"]

PolyhedronData[#,"Skeleton","Name"]&/@PolyhedronData["*ElongatedGyrobifastigium"]

GraphData[{"CubicPolyhedral",4}]

GraphicsRow[Show[Graphics3D[{Opacity[.5],PolyhedronData[#,"Polyhedron"]},Boxed->False,ImageSize->700],PlotLabel->TextCell[Style[PolyhedronData[#,"Name"],Directive[Black,Italic,FontFamily->"Times",18,Hyphenation->True]],Hyphenation->True,TextAlignment->Center,PageWidth->200]]&/@{"Gyrobifastigium","CanonicalElongatedGyrobifastigium","EquilateralElongatedGyrobifastigium"},Alignment->Top]

CanonicalElongatedGyrobifastigium

PolyhedronData["CanonicalElongatedGyrobifastigium","Orientations"]

Graphics3D[{Opacity[.2],PolyhedronData["CanonicalElongatedGyrobifastigium","Polyhedron"]},Boxed->False]

Graphics3D[{FaceForm[Green,Red],PolyhedronData["CanonicalElongatedGyrobifastigium","Polyhedron"]}]

Solid and Dual

PolyhedronData["CanonicalElongatedGyrobifastigium",#]&/@{"Graphics3D","Dual","DualCompound"}

Net

PolyhedronData["CanonicalElongatedGyrobifastigium","Net"]

PolyhedronData["CanonicalElongatedGyrobifastigium","Net","Colored"]

NetPrintout[PolyhedronData["CanonicalElongatedGyrobifastigium","Polyhedron"],"SmallTriakisOctahedron.pdf"]

EquilateralElongatedGyrobifastigium

PolyhedronData["EquilateralElongatedGyrobifastigium","Orientations"]

Graphics3D[{Opacity[.2],PolyhedronData["EquilateralElongatedGyrobifastigium","Polyhedron"]},Boxed->False]

Graphics3D[{FaceForm[Green,Red],PolyhedronData["EquilateralElongatedGyrobifastigium","Polyhedron"]}]

Solid and Dual

PolyhedronData["EquilateralElongatedGyrobifastigium",#]&/@{"Graphics3D","Dual","DualCompound"}

Net

PolyhedronData["EquilateralElongatedGyrobifastigium","Net"]

PolyhedronData["EquilateralElongatedGyrobifastigium","Net","Colored"]

NetPrintout[PolyhedronData["EquilateralElongatedGyrobifastigium","Polyhedron"],"SmallTriakisOctahedron.pdf"]

Properties: "CanonicalElongatedGyrobifastigium"

p=PolyhedronData[pname="CanonicalElongatedGyrobifastigium","Polyhedron"]

Centroid

Graphics3D[{AbsolutePointSize[10],
Point[{0,0,0}],{Blue,Point[PolyhedronData[pname,"Centroid"]]},Opacity[.2],PolyhedronData[pname,"GraphicsComplex"]}]

PolyhedronData[pname,"Centroid"]

RegionCentroid[p]//RootReduce//Timing

PolyhedronCentroid[p]//Quiet//Timing

Circumsphere

sphere=PolyhedronData[pname,"Circumsphere"]

bug(427951): Circumsphere[CanonicalElongatedGyrobifastigium] spits Function and Slot messages

sphere=Circumsphere[p]

(sphere=MyCircumsphere[p])//Timing

Graphics3D[{{Opacity[.2],Yellow,sphere},p},Boxed->False]

Compound

PolyhedronData[pname,"Compound"]

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

SimplifyNumericallyDistinct[DihedralAngles[p]]//Quiet//Tally//Timing

PolyhedronData[pname,"DihedralAngles"]//N//Union

DihedralAngles[p//N]//Union

EdgeCount

PolyhedronData[pname,"EdgeCount"]

EdgeLengths

PolyhedronData[pname,"EdgeLengths"]

PolyhedronData[pname,"Lines"]/.Line[l_]:>EuclideanDistance@@l//FullSimplify//Union//Quiet

lens=SimplifyNumericallyDistinct[PolyhedronEdgeLengths[p]];//Quiet

(distinctlens=Mean/@Split[Sort[lens],Abs[#1-#2]<1.*^-10&])//N//Quiet

v=PolyhedronCoordinates[p];

colors=With[{n=Length[distinctlens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[distinctlens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[p],Boxed->False]//Quiet

FaceCount

PolyhedronData[pname,"FaceCount"]

Faces

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

(i=((MomentOfInertia[p,{0,0,0}])/(Volume[p])))//Timing

Map[ToAlgebraicRoot,i,{2}]

PolyhedronInertiaTensor[p]//Quiet//Timing

Insphere

PolyhedronData[pname,"Insphere"]

bug(427951): Circumsphere[CanonicalElongatedGyrobifastigium] spits Function and Slot messages

Insphere[p]

(sphere=MyInsphere[p//N])//Timing

(sphere=MyInsphere[p,Debug->True,"Simplification"->RootReduce]//Timing

Graphics3D[{{Opacity[.5],p},{Red,sphere}},Boxed->False]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

NIntegrate

((NIntegrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

V13.2 Integrate over polyhedron

bug(427954): Integrate[Sqrt[x^2 + y^2], {x, y, z} ∈ p] returns Total[Failure[...]]

(i=((Integrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"])))//Timing

V13.3 Integrate over polyhedron

(i=((Integrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"])))//Timing

$Version

V13.3 Integrate over inequalities

ineq=PolyhedronData[pname,"RegionFunction"][x,y,z]

(i=Integrate[Boole[ineq](Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])//Timing

crash or out of memory...

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

((NIntegrate[(x^2)+(y^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

(i=((Integrate[(x^2)+(y^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//ToAlgebraicRoot)//Timing

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

((NIntegrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

(i=((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"])))//Timing

p=Polyhedron[];

vol=(NumericalApproximation[Root, (RowDefault["4.67", FEExpressionsNumericalApproximationElider]), Root[-183184-284760 ((#1)^2)-113481 ((#1)^4)+5832 ((#1)^6)&,2], ]);

(i=((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/vol))//Timing

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

((NIntegrate[(x^2)+(y^2)+(z^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

(i=((Integrate[(x^2)+(y^2)+(z^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//ToAlgebraicRoot)//Timing

Midsphere

sphere=PolyhedronData[pname,"Midsphere"]

(sphere=Midsphere[p])//Timing

(sphere=Midsphere[p,Method->"PointLineDistance",Debug->True,"Simplification"->RootReduce]//RootReduce)//Timing

Graphics3D[{{Opacity[.5],Yellow,p,Red,sphere}},Boxed->False]

Region

PolyhedronData[pname,"Region"]

RegionFunction

PolyhedronData[pname,"RegionFunction"]

Collect[#,{x,y,z},RootReduce]&/@PolyhedronInequalities[p,{x,y,z}]

FullSimplify[%]

Skeleton

PolyhedronData[pname,"Skeleton"]

PolyhedronData[pname,"Skeleton","Name"]

SimplePolyhedron

PolyhedronData[pname,"Simple"]

SimplePolyhedronQ[p]

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

SurfaceArea[p]//RootReduce//Timing

Total[Area/@PolyhedronData[pname,"Polygons"]]//RootReduce//Timing

VertexCount

PolyhedronData[pname,"FaceCount"]

VertexSubsetHulls

PolyhedronData[pname,"VertexSubsetHulls"]

Platonic

(h=VertexSubsetHulls[p,"Platonic","Skip"->{}])//Timing

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p]//FullSimplify

Properties: "EquilateralElongatedGyrobifastigium"

p=PolyhedronData[pname="EquilateralElongatedGyrobifastigium","Polyhedron"]

vol=PolyhedronData[pname="EquilateralElongatedGyrobifastigium","Volume"]

Centroid

PolyhedronData[pname,"Centroid"]

Graphics3D[{AbsolutePointSize[10],
Point[{0,0,0}],{Blue,Point[PolyhedronData[pname,"Centroid"]]},Opacity[.2],PolyhedronData[pname,"GraphicsComplex"]}]

RegionCentroid[p]

Expand[%]

PolyhedronCentroid[p]

Circumsphere

sphere=PolyhedronData[pname,"Circumsphere"]

sphere=Circumsphere[p]

(sphere=MyCircumsphere[p])//Timing

Graphics3D[{{Opacity[.2],Yellow,sphere},p},Boxed->False]

Compound

PolyhedronData[pname,"Compound"]

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

SimplifyNumericallyDistinct[DihedralAngles[p]]//Tally

EdgeCount

PolyhedronData[pname,"EdgeCount"]

EdgeLengths

PolyhedronData[pname,"EdgeLengths"]

PolyhedronData[pname,"Lines"]/.Line[l_]:>EuclideanDistance@@l//FullSimplify//Union//Quiet

lens=SimplifyNumericallyDistinct[PolyhedronEdgeLengths[p]];//Quiet

(distinctlens=Mean/@Split[Sort[lens],Abs[#1-#2]<1.*^-10&])//N//Quiet

v=PolyhedronCoordinates[p];

colors=With[{n=Length[distinctlens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[distinctlens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[p],Boxed->False]//Quiet

FaceCount

PolyhedronData[pname,"FaceCount"]

Faces

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

(i=((MomentOfInertia[p,{0,0,0}])/(Volume[p])))//FullSimplify//Timing

PolyhedronInertiaTensor[p]//Timing

Insphere

PolyhedronData[pname,"Insphere"]

Insphere[p]

sphere=MyInsphere[p]

Graphics3D[{{Opacity[.5],p},{Red,sphere}},Boxed->False]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

((NIntegrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/vol)//Timing

bug(427954): Integrate[Sqrt[x^2 + y^2], {x, y, z} ∈ Polyhedron[...]] returns Total[Failure[...]]

(i=((Integrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/vol))//Timing

{{xmin,xmax},{ymin,ymax},{zmin,zmax}}=MinMax/@Transpose[PolyhedronCoordinates[p]]

ineq=2 ((Sqrt[3]) y+z)≤1+(Sqrt[3])&&2 (Sqrt[3]) x≤1+(Sqrt[3])+2 z&&2 z≤1+(Sqrt[3])+2 (Sqrt[3]) y&&1+(Sqrt[3])+2 (Sqrt[3]) x+2 z≥0&&1+2 x≥0&&2 y≤1&&2 x≤1&&1+2 y≥0;

(i1=FullSimplify[Integrate[Boole[ineq](Sqrt[(x^2)+(y^2)]),{z,(1/2) (-1-(Sqrt[3])),(1/2) (1+(Sqrt[3]))}],ineq])

NIntegrate[(i1/vol),{x,xmin,xmax},{y,ymin,ymax}]

Integrate[(i1/vol),{x,xmin,xmax},{y,ymin,ymax}]//Timing

FullSimplify[%[[2]]]

expr=-(1/192) (-2+(Sqrt[3])) (5 (Sqrt[3]) ArcCosh[99]+ArcCosh[577]+2 (12+5 (Sqrt[3])) ArcSinh[1]+8 (8 (Sqrt[2])+2 (Sqrt[3])+(Sqrt[6])-Log[17-12 (Sqrt[2])]));

N[expr,20]

TrigToExp[expr]

Log[1+(Sqrt[2]),99+70 (Sqrt[2])]//FullSimplify

Log[1+(Sqrt[2]),577+408 (Sqrt[2])]//FullSimplify

Log[1-(Sqrt[2]),12 (Sqrt[2])-17]//FullSimplify

(((1-(Sqrt[2])))^4)//Expand

N[-(1/192) (-2+(Sqrt[3])) (8 (8 (Sqrt[2])+2 (Sqrt[3])+(Sqrt[6])-Log[(((1-(Sqrt[2])))^4)])+2 (12+5 (Sqrt[3])) Log[1+(Sqrt[2])]+5 (Sqrt[3]) Log[(((1+(Sqrt[2])))^6)]+Log[(((1+(Sqrt[2])))^8)])]

N[-(1/192) (-2+(Sqrt[3])) (8 (8 (Sqrt[2])+2 (Sqrt[3])+(Sqrt[6])-4Log[(Sqrt[2])-1])+2 (12+5 (Sqrt[3])) Log[1+(Sqrt[2])]+5 (Sqrt[3]) 6Log[(1+(Sqrt[2]))]+8Log[(1+(Sqrt[2]))])]

FullSimplify[-(1/192) (-2+(Sqrt[3])) (8 (8 (Sqrt[2])+2 (Sqrt[3])+(Sqrt[6])-4Log[(Sqrt[2])-1])+2 (12+5 (Sqrt[3])) Log[1+(Sqrt[2])]+5 (Sqrt[3]) 6Log[(1+(Sqrt[2]))]+8Log[(1+(Sqrt[2]))])]

N[(1/24) (-6+13 (Sqrt[2])+4 (Sqrt[3])-6 (Sqrt[6])+(1+2 (Sqrt[3])) ArcSinh[1])]

N[expr-(1/24) (-6+13 (Sqrt[2])+4 (Sqrt[3])-6 (Sqrt[6])+(1+2 (Sqrt[3])) ArcSinh[1]),1000]

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

((NIntegrate[(x^2)+(y^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

(i=((Integrate[(x^2)+(y^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"])))//FullSimplify//Timing

N[i]

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

((NIntegrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/vol)//Timing

(i=((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/vol))//Timing

N[i]

MinMax[PolyhedronCoordinates[p][[All,2]]]

MinMax[PolyhedronCoordinates[p][[All,-1]]]

ineq=2 ((Sqrt[3]) y+z)≤1+(Sqrt[3])&&2 (Sqrt[3]) x≤1+(Sqrt[3])+2 z&&2 z≤1+(Sqrt[3])+2 (Sqrt[3]) y&&1+(Sqrt[3])+2 (Sqrt[3]) x+2 z≥0&&1+2 x≥0&&2 y≤1&&2 x≤1&&1+2 y≥0;

(i1=Integrate[Boole[ineq](Sqrt[(x^2)+(y^2)+(z^2)]),{z,(1/2) (-1-(Sqrt[3])),(1/2) (1+(Sqrt[3]))}])//Timing

NIntegrate[(i1/((1/2) (2+(Sqrt[3])))),{x,-1/2,1/2},{y,-1/2,1/2}]

(i2=Integrate[(i1/((1/2) (2+(Sqrt[3])))),{x,-1/2,1/2},Assumptions->-1/2<y<1/2])//Timing

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

((NIntegrate[(x^2)+(y^2)+(z^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

(i=((Integrate[(x^2)+(y^2)+(z^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"])))//FullSimplify//Timing

Midsphere

sphere=PolyhedronData[pname,"Midsphere"]

(sphere=Midsphere[p])//Timing

(sphere=Midsphere[p,Method->"PointLineDistance"])//Timing

Graphics3D[{{Opacity[.5],Yellow,p},{Red,sphere}},Boxed->False]

Region

PolyhedronData[pname,"Region"]

RegionFunction

PolyhedronData[pname,"RegionFunction"]

Collect[#,{x,y,z},RootReduce]&/@PolyhedronInequalities[p,{x,y,z}]

FullSimplify[%]

SimplePolyhedron

PolyhedronData[pname,"Simple"]

SimplePolyhedronQ[p]

Skeleton

PolyhedronData[pname,"Skeleton"]

PolyhedronData[pname,"Skeleton","Name"]

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

SurfaceArea[p]//Timing

Total[Area/@PolyhedronData[pname,"Polygons"]]//RootReduce//Timing

SymmetryGroup

https://en.wikipedia.org/wiki/Elongated_gyrobifastigium#Geometry

PolyhedronData[pname,"SymmetryGroup"]

SymmetryGroupString

PolyhedronData[pname,"SymmetryGroupString"]

VertexCount

PolyhedronData[pname,"FaceCount"]

VertexSubsetHulls

PolyhedronData[pname,"VertexSubsetHulls"]

Platonic

(h=VertexSubsetHulls[p,"Platonic","Skip"->{}])//Timing

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p]//FullSimplify

Perspective projections

CanonicalElongatedGyrobifastigium

Manipulate[PolyhedronProjectionGraph[p,{a,b,c}],{a,-1,1},{b,-1,1},{c,-1,1}]

{0, .28, 1}

PolyhedronProjectionGraph[p,{0,.28,1,Pi}]

{0,0,1}

PolyhedronProjectionGraph[p,{0,0,1}]

{1, 1, 0}

PolyhedronProjectionGraph[p,{1,1,0}]

EquilateralElongatedGyrobifastigium

Manipulate[PolyhedronProjectionGraph[p,{a,b,c}],{a,-1,1},{b,-1,1},{c,-1,1}]

Construction

CanonicalElongatedGyrobifastigium

Dual of the snub disphenoid

PolyhedronData[{"Johnson",84},"#"]

GraphData[{"JohnsonSkeleton",84},"DualGraph","Name"]

GraphData[{"CubicPolyhedral",4}]

Graphics3D[GraphData[{"CubicPolyhedral",4},"Polyhedron","Canonical"]]

can=GraphData[{"CubicPolyhedral",4},"Polyhedron","Canonical"]

Graphics3D[{FaceForm[Green,Red],can}]

(can=FindCanonicalPolyhedron[can,WorkingPrecision->1000,MaxIterations->50000,PrecisionGoal->500,"ProgressInterval"->1000,Debug->True])//Timing

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

v=PolyhedronCoordinates[can];

Mean[v]//N[#,5]&

Graphics3D[{can,MapIndexed[Text[#2[[1]],#,Background->White]&,v]}]

Mean[v[[{4,8}]]]//N

rot2=RotationMatrix[{Mean[v[[{4,8}]]],{0,0,1}}];

can2=Polyhedron[v2=rot2.#&/@v,can[[2]]];

Graphics3D[{can2,MapIndexed[Text[#2[[1]],#,Background->White]&,v2]}]

rot3=RotationMatrix[{v2[[4]]-v2[[8]],{1,0,0}}];

can3=Polyhedron[v3=rot3.#&/@v2,can2[[2]]];

Graphics3D[{can3,MapIndexed[Text[#2[[1]],#,Background->White]&,v3]}]

vexact=Map[ToAlgebraicRoot,v3,{2}]

poly=Polyhedron[vexact,can[[2]]]

PolyhedronEdgeLengths[poly]//RootReduce//Union

EquilateralElongatedGyrobifastigium

s=Sqrt[3];
v=Join[Tuples[{-1,1},3],{{-1,0,1+s},{1,0,1+s}},{{0,-1,-(1+s)},{0,1,-(1+s)}}]/2;

poly=ConvexHullRegion[v]

Graphics3D[poly,BoxRatios->Automatic]

PolyhedronEdgeLengths[poly]//FullSimplify//Quiet

Net construction

CanonicalElongatedGyrobifastigium

Table[{poly=UnfoldPolyhedron[p,WorkingPrecision->1000],Graphics[{FaceForm[LightYellow],EdgeForm[Black],poly}]},100]

{Polygon[],},

net=Polygon[];

Graphics[{FaceForm[LightYellow],EdgeForm[Black],net,MapIndexed[Text[#2[[1]],#,Background->White]&,v=net[[1]]]}]

rot=RotationMatrix[{v[[18]]-v[[1]],{1,0}}];

v2=(rot.(#-v[[1]]))&/@v;

Graphics[{FaceForm[LightYellow],EdgeForm[Black],Polygon[v2,net[[2]]],MapIndexed[Text[#2[[1]],#,Background->White]&,v2]}]

vexact=Map[ToAlgebraicRoot,v2,{2}]

net[[2]]//Sort

RootReduce[Total[Area/@Flatten[PolyhedronData["CanonicalElongatedGyrobifastigium","Net","Polygons"]]]]

PolyhedronData["CanonicalElongatedGyrobifastigium","SurfaceArea"]

poly3d=PolyhedronData["CanonicalElongatedGyrobifastigium","Net","Polygons"]/.Polygon[v_]:>Polygon[Append[#,0]&/@v]

Graphics3D[{FaceForm[Green,Red],poly3d}]

EquilateralElongatedGyrobifastigium

Table[{poly=UnfoldPolyhedron[p,WorkingPrecision->1000],Graphics[{FaceForm[LightYellow],EdgeForm[Black],poly}]},100]

{Polygon[],}

net=Polygon[]/.Polygon[v_,f_]:>Polygon[Reverse/@v,f];

Graphics[{FaceForm[LightYellow],EdgeForm[Black],net,MapIndexed[Text[#2[[1]],#,Background->White]&,v=net[[1]]]}]

vexact=Delete[Map[ToAlgebraicRoot,v,{2}],List/@{20,21}]

faces=Delete[net[[2]]//Sort,{4}]/. 22->20

Graphics[{FaceForm[LightYellow],EdgeForm[Black],Polygon[vexact,faces],MapIndexed[Text[#2[[1]],#,Background->White]&,vexact]}]

vexact2=Join[vexact,Map[
ToAlgebraicRoot,
{v[[15]]+RotationMatrix[Pi/2].(v[[19]]-v[[15]]),v[[19]]+RotationMatrix[-Pi/2].(v[[15]]-v[[19]])},
{2}
]]

faces2=Sort[Append[Reverse/@faces,{15,19,22,21}]]

Graphics[{FaceForm[LightYellow],EdgeForm[Black],Polygon[vexact2,faces2],MapIndexed[Text[#2[[1]],#,Background->White]&,vexact2]}]

RootReduce[Total[Area/@Flatten[PolyhedronData["EquilateralElongatedGyrobifastigium","Net","Polygons"]]]]

PolyhedronData["EquilateralElongatedGyrobifastigium","SurfaceArea"]

poly3d=PolyhedronData["EquilateralElongatedGyrobifastigium","Net","Polygons"]/.Polygon[v_]:>Polygon[Append[#,0]&/@v]

Graphics3D[{FaceForm[Green,Red],poly3d}]

PolyhedronData

CanonicalElongatedGyrobifastigium

file=OpenWrite["~/elong-gyro.m"]

WriteString[file,PolyhedronDataString[poly,
"StandardName"->"CanonicalElongatedGyrobifastigium",
"Name"->"canonical elongated gyrobifastigium"]]

Close[file]

EquilateralElongatedGyrobifastigium

file=OpenWrite["~/elong-gyro.m"]

WriteString[file,PolyhedronDataString[poly,
"StandardName"->"EquilateralElongatedGyrobifastigium",
"Name"->"equilateral elongated gyrobifastigium",
"Information"->"ElongatedGyrobifastigium"]]

Close[file]