DualPolyhedron[poly]
gives the dual polyhedron of the polyhedron poly.
DualPolyhedron
DualPolyhedron[poly]
gives the dual polyhedron of the polyhedron poly.
Details and Options
- DualPolyhedron is also known as reciprocal or topological dual polyhedron.
- DualPolyhedron generates a Polyhedron with vertex points corresponding to faces of poly and edges corresponding to edges between faces of poly.
- A typical choice for the vertex points of the dual polyhedron is to use the centroid from each face of poly.
- DualPolyhedron takes the same options as Polyhedron.
-
VertexColors Automatic vertex colors to be interpolated VertexNormals Automatic effective vertex normals for shading VertexTextureCoordinates None coordinates for textures
List of all options
Examples
open all close allBasic Examples (2)
Dual polyhedron of a dodecahedron:
DualPolyhedron[Dodecahedron[]]Graphics3D[%]Find the dual of the space shuttle:
𝒫 = DualPolyhedron[Polyhedron[{{-4.999492168426514, -0.6817100048065186, 0.569242000579834},
{-4.999759197235107, -0.4911530017852783, 0.8052060008049011},
{-5.349475860595703, -0.47093498706817627, 0.5660619735717773},
{-4.999759197235107, 0.491153001785278 ... }, {291, 218, 220}, {211, 259, 258}, {280, 206, 218}, {212, 258, 288},
{225, 187, 219}, {245, 197, 196}, {200, 236, 235}, {263, 196, 207}, {274, 205, 193},
{282, 210, 205}, {268, 193, 188}, {226, 219, 210}, {269, 188, 187}, {215, 288, 287}}]];Graphics3D[𝒫, Boxed -> False]Scope (3)
DualPolyhedron works on polyhedrons:
𝒫 = Polyhedron[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1, 2, 3}, {1, 2, 4}, {2, 3, 4},
{1, 3, 4}}];DualPolyhedron[𝒫]Graphics3D[{Opacity[0.2], 𝒫, %}]DualPolyhedron of Platonic solids includes Tetrahedron:
DualPolyhedron[Tetrahedron[1]]Cube:
DualPolyhedron[Cube[1]]Graphics3D[%]DualPolyhedron[Dodecahedron[1]]DualPolyhedron[Octahedron[1]]DualPolyhedron[Icosahedron[1]]Special polyhedron representations:
𝒫 = ExampleData[{"Geometry3D", "SpaceShuttle"}, "BoundaryMeshRegion"]DualPolyhedron[𝒫]Graphics3D[{Opacity[0.2], 𝒫, %}]Applications (9)
Basic Applications (3)
Create a gallery of Platonic solids and their duals:
Grid[Table[{Graphics3D[f[1], Boxed -> False], [image], Graphics3D[DualPolyhedron[f[1]], Boxed -> False]}, {f, {Tetrahedron, Cube, Octahedron, Dodecahedron, Icosahedron}}]]Create a gallery of Archimedean solids and their duals:
Multicolumn[Table[Row[{Graphics3D[f, Boxed -> False, ImageSize -> 50], [image], Graphics3D[DualPolyhedron[f], Boxed -> False, ImageSize -> 50]}], {f, PolyhedronData["Archimedean", "Polyhedron"]}], 2, Spacings -> 3]Dual compounds of Platonic solids:
Table[Graphics3D[{Opacity[0.5], DualPolyhedron[f[1]], f[1]}, Boxed -> False], {f, {Tetrahedron, Cube, Dodecahedron}}]Table[Graphics3D[{Opacity[0.5], f, DualPolyhedron[f]}, Boxed -> False], {f, PolyhedronData["Archimedean", "Polyhedron"]}]Polyhedron Operations (6)
Use DualPolyhedron to compute the polyhedron operations, such as needle operation:
needle[poly_] := DualPolyhedron[TruncatedPolyhedron[poly]]needle[Tetrahedron[1]]Graphics3D[%]meta[poly_] := DualPolyhedron[BeveledPolyhedron[poly]]meta[Tetrahedron[1]]Graphics3D[%]join[poly_] := DualPolyhedron[TruncatedPolyhedron[poly]]join[Tetrahedron[1]]Graphics3D[%]zip[poly_] := DualPolyhedron[AugmentedPolyhedron[poly]]zip[Tetrahedron[1]]Graphics3D[%]ortho[poly_] := DualPolyhedron[TruncatedPolyhedron[TruncatedPolyhedron[poly]]]ortho[Tetrahedron[1]]Graphics3D[%]expand[poly_] := DualPolyhedron[TruncatedPolyhedron[TruncatedPolyhedron[poly, 0.5]]]expand[Tetrahedron[1]]Graphics3D[%]Properties & Relations (4)
The dual of a simple polyhedron is simple:
𝒫 = Polyhedron[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1, 2, 3}, {1, 2, 4}, {2, 3, 4},
{1, 3, 4}}];SimplePolyhedronQ[#]& /@ {𝒫, DualPolyhedron[𝒫]}The dual of a Platonic solid polyhedron is Platonic solid:
𝒫 = Cube[1];DualPolyhedron[𝒫]{Graphics3D[𝒫], Graphics3D[%]}The dual of its dual is the original polyhedron:
𝒫 = Polyhedron[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{1, 2, 3}, {1, 2, 4}, {2, 3, 4},
{1, 3, 4}}];DualPolyhedron[DualPolyhedron[𝒫]];{Graphics3D[𝒫], Graphics3D[%]}Pyramids are self-dual polyhedrons:
DualPolyhedron[Pyramid[]]Graphics3D[%]Possible Issues (3)
DualPolyhedron only supports simple polyhedra:
𝒫 = Polyhedron[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 0}, {2, 0, 0}, {1, 1, 0},
{1, 0, 1}}, {{1, 2, 3}, {1, 2, 4}, {2, 3, 4}, {1, 3, 4}, {5, 6, 7}, {5, 6, 8}, {6, 7, 8},
{5, 7, 8}}];SimplePolyhedronQ[𝒫]DualPolyhedron[𝒫]The dual of a polyhedron is topologically dual:
dual = DualPolyhedron[Tetrahedron[1]]DualPolyhedron[dual]DualPolyhedron can return degenerate polyhedra:
DualPolyhedron[Polyhedron[{{-1, 0, 0}, {-1/2, -1/2, -(1/Sqrt[2])}, {-1/2, -1/2, 1/Sqrt[2]},
{-1/2, 1/2, -(1/Sqrt[2])}, {-1/2, 1/2, 1/Sqrt[2]}, {0, -1, 0}, {0, 1, 0},
{1/2, -1/2, -(1/Sqrt[2])}, {1/2, -1/2, 1/Sqrt[2]}, {1/2, 1/2, -(1/Sqrt[2])},
{1/2, 1/2, 1/Sqrt[2]}, {1, 0, 0}}, {{4, 10, 8, 2}, {3, 9, 11, 5}, {9, 6, 8, 12}, {3, 1, 2, 6},
{5, 7, 4, 1}, {11, 12, 10, 7}, {12, 11, 9}, {3, 5, 1}, {6, 9, 3}, {5, 11, 7}, {8, 10, 12},
{1, 4, 2}, {2, 8, 6}, {7, 10, 4}}]]RegionQ[%]Related Guides
History
Text
Wolfram Research (2019), DualPolyhedron, Wolfram Language function, https://reference.wolfram.com/language/ref/DualPolyhedron.html.
CMS
Wolfram Language. 2019. "DualPolyhedron." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/DualPolyhedron.html.
APA
Wolfram Language. (2019). DualPolyhedron. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DualPolyhedron.html
BibTeX
@misc{reference.wolfram_2026_dualpolyhedron, author="Wolfram Research", title="{DualPolyhedron}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/DualPolyhedron.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_dualpolyhedron, organization={Wolfram Research}, title={DualPolyhedron}, year={2019}, url={https://reference.wolfram.com/language/ref/DualPolyhedron.html}, note=[Accessed: 13-June-2026]}