CanonicalizePolyhedron[poly]
gives a canonical representation of the polyhedron poly with shared coordinates and with inner and outer boundaries.
CanonicalizePolyhedron
CanonicalizePolyhedron[poly]
gives a canonical representation of the polyhedron poly with shared coordinates and with inner and outer boundaries.
Details
- CanonicalizePolyhedron is used to get a simple standard representation of a polyhedron from various representations and descriptions.
- CanonicalizePolyhedron converts a polyhedron to an optimized standard form Polyhedron[{p1,p2,…},{outer1,outer2inner2,…}].
- The points pi are the vertex points of non-intersecting polygonal faces and sorted into Sort order.
- An outer boundary outeri is a closed surface with polygonal faces {fi1,fi2,…}, possibly touching at edges.
- An inner boundary inneri is a closed surface with polygonal faces {fj1,fj2,…}, possibly touching at edges.
Examples
open all close allBasic Examples (1)
Find the canonical form of a Polyhedron:
𝒫 = Polyhedron[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{0, 1, 0}, {1, 0, 0}, {0, 0, 0}}, {{0, 0, 1}, {0, 0, 0}, {1, 0, 0}}, {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}}}];CanonicalizePolyhedron[𝒫]Graphics3D[%]Scope (3)
CanonicalizePolyhedron works on polyhedra:
Polyhedron[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{0, 1, 0}, {1, 0, 0}, {0, 0, 0}}, {{0, 0, 1}, {0, 0, 0}, {1, 0, 0}}, {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}}}];CanonicalizePolyhedron[%]CanonicalizePolyhedron[Tetrahedron[]]CanonicalizePolyhedron[Octahedron[]]Polyhedron[{{0, 0, 0}, {0, 3, 0}, {3, 3, 0}, {3, 0, 0}, {0, 0, 3}, {0, 3, 3}, {3, 3, 3}, {3, 0, 3}, {1, 1, 1}, {1, 2, 1}, {2, 2, 1}, {2, 1, 1}, {1, 1, 2}, {1, 2, 2}, {2, 2, 2}, {2, 1, 2}}, {{2, 3, 4, 1}, {1, 4, 8, 5}, {4, 3, 7, 8}, {3, 2, 6, 7}, {2, 1, 5, 6}, {5, 8, 7, 6}} -> {{{10, 11, 12, 9}, {9, 12, 16, 13}, {12, 11, 15, 16}, {11, 10, 14, 15}, {10, 9, 13, 14}, {13, 16, 15, 14}}}];CanonicalizePolyhedron[%]Graphics3D[{Opacity[0.5], %}]Polyhedrons with disconnected components:
Polyhedron[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 1}, {2, 1, 1}, {1, 2, 1}, {1, 1, 2}}, {{1, 2, 3}, {1, 2, 4}, {2, 3, 4}, {1, 3, 4}, {5, 6, 7}, {5, 6, 8}, {6, 7, 8}, {5, 7, 8}}];CanonicalizePolyhedron[%]Applications (1)
Set up a graphics complex with shared coordinates:
𝒞𝒫 = CanonicalizePolyhedron[Polyhedron[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{0, 1, 0}, {1, 0, 0}, {0, 0, 0}}, {{0, 0, 1}, {0, 0, 0}, {1, 0, 0}}, {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}}}]]Graphics3D[{GraphicsComplex[𝒞𝒫[[1]], Polyhedron[𝒞𝒫[[2]]]]}]Properties & Relations (5)
Using CanonicalizePolyhedron to get PolyhedronCoordinates:
𝒫 = Polyhedron[{{0, 0, 0}, {0, 1, 0}, {1, 1, 0}, {1, 0, 0}, {0, 0, 1}, {0, 1, 1}, {1, 1, 1},
{1, 0, 1}}, {{2, 3, 4, 1}, {1, 4, 8, 5}, {4, 3, 7, 8}, {3, 2, 6, 7}, {2, 1, 5, 6}, {5, 8, 7, 6}}];First[CanonicalizePolyhedron[𝒫]]PolyhedronCoordinates[𝒫]The CanonicalizePolyhedron of a platonic solid is a polyhedron:
CanonicalizePolyhedron[Icosahedron[]]The CanonicalizePolyhedron of simple polyhedra preserve the number of polyhedron coordinates:
𝒫 = Polyhedron[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {{0, 1, 0}, {1, 0, 0}, {0, 0, 0}}, {{0, 0, 1}, {0, 0, 0}, {1, 0, 0}}, {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}}}];SimplePolyhedronQ[𝒫]Length[PolyhedronCoordinates[#]]& /@ {𝒫, CanonicalizePolyhedron[𝒫]}OuterPolyhedron gives the canonical representation of the outer polyhedron:
OuterPolyhedron[Polyhedron[{{-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20*#1^2 + 80*#1^4 & , 3, 0]},
{Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20*#1^2 + 80*#1^4 & , 2, 0]},
{Root[1 - 20*#1^2 + 80*#1^4 & , 1, 0], (-3 - Sqrt[5])/4, Root[1 - 20*#1^2 + 80*#1^4 & , 3, 0]},
{R ... },
{11, 12, 8, 16, 7}, {12, 6, 20, 4, 8}, {6, 2, 13, 18, 20}, {2, 5, 19, 17, 13},
{4, 20, 18, 10, 15}, {18, 13, 17, 9, 10}, {17, 19, 3, 14, 9}, {3, 7, 16, 1, 14},
{16, 8, 4, 15, 1}, {22, 23, 24}, {23, 22, 21}, {24, 21, 22}, {21, 24, 23}}]]InnerPolyhedron gives the canonical representation of the inner polyhedron:
InnerPolyhedron[Polyhedron[{{-Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20*#1^2 + 80*#1^4 & , 3, 0]},
{Sqrt[1 + 2/Sqrt[5]], 0, Root[1 - 20*#1^2 + 80*#1^4 & , 2, 0]},
{Root[1 - 20*#1^2 + 80*#1^4 & , 1, 0], (-3 - Sqrt[5])/4, Root[1 - 20*#1^2 + 80*#1^4 & , 3, 0]},
{R ... },
{11, 12, 8, 16, 7}, {12, 6, 20, 4, 8}, {6, 2, 13, 18, 20}, {2, 5, 19, 17, 13},
{4, 20, 18, 10, 15}, {18, 13, 17, 9, 10}, {17, 19, 3, 14, 9}, {3, 7, 16, 1, 14},
{16, 8, 4, 15, 1}, {22, 23, 24}, {23, 22, 21}, {24, 21, 22}, {21, 24, 23}}]]Related Guides
History
Text
Wolfram Research (2019), CanonicalizePolyhedron, Wolfram Language function, https://reference.wolfram.com/language/ref/CanonicalizePolyhedron.html.
CMS
Wolfram Language. 2019. "CanonicalizePolyhedron." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CanonicalizePolyhedron.html.
APA
Wolfram Language. (2019). CanonicalizePolyhedron. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CanonicalizePolyhedron.html
BibTeX
@misc{reference.wolfram_2026_canonicalizepolyhedron, author="Wolfram Research", title="{CanonicalizePolyhedron}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/CanonicalizePolyhedron.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_canonicalizepolyhedron, organization={Wolfram Research}, title={CanonicalizePolyhedron}, year={2019}, url={https://reference.wolfram.com/language/ref/CanonicalizePolyhedron.html}, note=[Accessed: 13-June-2026]}