Antibox Graph

Author

Eric W. Weisstein
July 26, 2026

This notebook downloaded from https://mathworld.wolfram.com/notebooks/GraphTheory/AntiboxGraph.nb.

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

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

Figure

GraphicsGrid[
Partition[
StyleGraphs[
GraphData["AntiboxGraph","Graph","All"]
],
UpTo[5]
],
Dividers->All
]

Graphic

GraphData["AntiboxGraph","Graph","3D"]//StyleGraphs

Embeddings

<<MathWorld`Graphs`

Names

GraphData["AntiboxGraph","StandardName"]

GraphData["AntiboxGraph","StandardNames"]

Primary

GraphData["AntiboxGraph"]//StyleGraphs[#,ImageSize->Small]&

All

GraphData["AntiboxGraph","Graph","All"]//StyleGraphs

Inexact

Select[GraphData["AntiboxGraph","Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData["AntiboxGraph","EdgeList"]]

Default embedding

GraphPlot@RotateGraph[RotateGraph[Graph[GraphData["AntiboxGraph","Edges"]],{4,10}],Pi/2]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

Degenerate

GraphData["AntiboxGraph","Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData["AntiboxGraph","Graph","Degenerate"]

Projection

GraphData["AntiboxGraph","Graph","Perspective"]

GraphData["AntiboxGraph","Graph","3D"]

g=ProjectionGraph[GraphData["AntiboxGraph","Graph","3D"],{1.3,-2.4,2},-.2]

RecognizeGraph@g

ProjectionGraph[GraphData["AntiboxGraph","Graph","3D"],{1,-1,1},-Pi/6]//StyleGraphs

g3=GraphData["AntiboxGraph","Graph","3D"];
dir=Normalize[{1.,-2.5,1.2}];
axisScale=1/Sqrt[1-dir^2];
axisScale={1,1.1,1};

g=LabelGraph@ProjectionGraph[Annotate[g3,VertexCoordinates->GraphEmbedding[g3].DiagonalMatrix[axisScale]],dir,-.1]//StyleGraphs

Bilateral

GraphData["AntiboxGraph","Graph","Bilateral"]//StyleGraphs

Circular

GraphData["AntiboxGraph","Graph","Circular"]//StyleGraphs

Planar

GraphData["AntiboxGraph","Planar"]

GraphData["AntiboxGraph","Graph","Planar"]//StyleGraphs

MinimalCrossing

GraphData["AntiboxGraph",{"RCN","CN"}]

GraphData["AntiboxGraph","Graph","MinimalCrossing"]//StyleGraphs

MinimalCrossing construction

(cn=CrossingNumber[GraphData["AntiboxGraph"],TimeConstraint->1])//AbsoluteTiming

(cn=CrossingNumber[GraphData["AntiboxGraph"],TimeConstraint->10])//AbsoluteTiming

(g=MinimalCrossingGraph[GraphData["AntiboxGraph"],"CrossingNumber"->cn])//PolyhedralGraphQ

GraphData["AntiboxGraph","Polyhedral"]

faces=ReverseSort@SymmetricallyDistinctFaces[g]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[g,"OuterFace"->#]&/@faces

Union[Select[Table[RotateGraph[MinimalCrossingGraph[GraphData["AntiboxGraph"],"CrossingNumber"->cn,RandomSeed->n]],{n,50}],Max[OuterFace[#]]<=GraphData["AntiboxGraph","V"]&]]//Timing

Table[MinimalCrossingGraph[GraphData["AntiboxGraph"],"CrossingNumber"->cn,RandomSeed->i],{i,50}]//Union

g0=

v={#/5,#2/4}&@@@GraphEmbedding[g0];
g=Annotate[g0,VertexCoordinates->v]

GraphPlot@RotateGraph[,Pi/6]

v={#/6,#2/3}&@@@{{0,0},{6,0},{1,1},{2,1},{3,1},{4,1},{5,1},{1,2},{2,2},{3,2},{4,2},{5,2},{0,3},{6,3}};
g=Graph[Range@Length@v,UndirectedEdge@@@{e[3,4,5,6,7,12,11,10,9,8,3,1,13,8],e[12,14,2,7],{1,6},{2,4},{5,10},{13,11},{9,14}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@

v={#/5,#2/4}&@@@{{0,0},{5,0},{1,1},{4,1},{0,2},{2,2},{3,2},{5,2},{1,3},{2,3},{3,3},{4,3},{0,4},{5,4}};
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,8,14,13,5,1,3,4,2],e[13,9,10,11,12,14],e[5,6,7,8],{3,9},{4,12},{6,10},{7,11}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[,-3Pi/4]

v=Join[{{-1,0},{1,0},{0,Sqrt[3]}},
{#,#2+1/4}&@@@Join[Delete[Subdivide[{-1/4,1/4},{1/4,1/4},4],{3}],
Delete[Subdivide[{-1/4,1/2},{1/4,1/2},4],{3}],{{-1/4,3/4},{1/4,3/4},{0,3/4}}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[4,1,3,2,7,11,13,14,12,8,4,5,9,8],e[11,10,6,7],{1,6},{2,5},{3,14},{9,13},{10,12}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[,-Pi/2]

v={{0,0},{5,0},{1,1},{2,1},{3,1},{4,1},{2,2},{3,2},{2,3},{3,3},{2,4},{3,4},{0,5},{5,5}}/5;
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,14,13,1,3,4,5,6,2],e[3,11,12,6],e[4,7,9,11],e[5,8,10,12],{9,10},{13,7},{8,14}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[,-Pi/6]

v={#/7,#2/4}&@@@{{0,0},{7,0},{0,1},{1,1},{6,1},{7,1},{1,2},{3,2},{4,2},{6,2},{1,3},{6,3},{0,4},{7,4}};
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,6,14,13,3,1,8,9,2],e[3,4,5,6],e[4,7,11,12,10,5],{11,13},{12,14},{7,8},{9,10}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

GraphPlot@RotateGraph[,-Pi/6]

GraphPlot@RotateGraph[,-Pi/6]

v={{0,0},{5,0},{1,1},{4,1},{0,2},{2,2},{3,2},{5,2},{1,3},{4,3},{1,4},{4,4},{0,5},{5,5}}/5;
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,8,14,13,5,1,3,4,2],e[3,9,11,12,10,4],e[5,6,7,8],{13,11},{12,14},{6,9},{7,10}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

gs=UnlabelGraph/@{,,,,,,}

RectilinearCrossingCount/@gs

Circulant

GraphData["AntiboxGraph","Circulant"]

GraphData["AntiboxGraph","Graph","Circulant"]//StyleGraphs

Line graph

GraphData["AntiboxGraph","Line"]

LineGraphQ[GraphData["AntiboxGraph"]]//Timing

RootGraph

Select[GraphData[All],GraphData[#,"LineGraph","Name"]=== "AntiboxGraph"&]

RootGraph[GraphData["AntiboxGraph"]]

Halin

GraphData["AntiboxGraph","Halin"]

GraphData["AntiboxGraph","Graph","Halin"]//StyleGraphs

Rigid

GraphData["AntiboxGraph","Rigid"]

GraphData["AntiboxGraph","Graph","Rigid"]//StyleGraphs

Flexible

GraphData["AntiboxGraph","Flexible"]

GraphData["AntiboxGraph","Graph","Flexible"]//StyleGraphs

LCF

GraphData["AntiboxGraph","LCF"]

GraphData["AntiboxGraph","HamiltonianCycleCount"]

GraphData["AntiboxGraph","LCFSignature"]

GraphData["AntiboxGraph","LCFNotations"]

GraphData["AntiboxGraph","Graph","LCF"]//StyleGraphs

Tally[LCFNotation[#][[2]]&/@%]

LCF compute all

Length[FindHamiltonianCycle[GraphData["AntiboxGraph"],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData["AntiboxGraph"],All])[[All,2]]]//Timing

lcf

LCFGraph@@@lcf//StyleGraphs

(gs=Flatten[{
(* all LCF's with order >1, sorted by order and with bilateral graphs first *)
Join[DeleteCases[#,{_Missing,_}][[All,1]],Cases[#,{_Missing,_}][[All,2]]]&/@Map[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

UnitDistance

GraphData["AntiboxGraph","UnitDistance"]

UnitDistanceGraphQ[GraphData["AntiboxGraph"],Debug->True]//Timing

GraphData["AntiboxGraph","Graph","UnitDistance"]//StyleGraphs

Select[%,!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&]

UnitDistance by refinement

UnitDistanceEmbeddingRefine[Graph[GraphData["AntiboxGraph","VertexList"],GraphData["AntiboxGraph","EdgeList"]],MaxIterations->500]

UnitDistanceGraphEmbeddingQ[%]

UnitDistanceEmbeddingRefine[Annotate[#,VertexCoordinates->N[GraphEmbedding[#]]],MaxIterations->500]&/@Complement@@(GraphData["AntiboxGraph","Graph",#]&/@{"All","UnitDistance"})

Select[%,UnitDistanceGraphEmbeddingQ]

UnitDistance construction

GraphData["AntiboxGraph","Graphics"]

soln=NSolve[{
(a-1)^2+(b-1)^2==1,
(u+1-a)^2+(b-v)^2==1,
(c-1)^2+d^2==1,
(u+1-c)^2+(v-d)^2==1,
(x+1-c)^2+(y-d)^2==1,
(x+1-a)^2+(y+1-b)^2==1},{x,y,u,v,a,b,c,d},Reals]

gs=Select[Graph[Range[14],UndirectedEdge@@@{{1,2},{2,4},{4,6},{6,10},{9,10},{3,9},{2,8},{3,4},{1,7},{5,6},{7,8},{8,10},{11,12},{3,11},{9,12},{12,14},{7,14},{5,14},{11,13},{1,13},{5,13}},VertexCoordinates->({{0,1},{1,1},{x+1,y+1},{a,b},{u,v},{u+1,v},{0,0},{1,0},{x+1,y},{c,d},{x,y+1},{x,y},{0,1}+{x+1-c,y-d},{x,y}+{1-a,1-b}}/.#),VertexLabels->"Name"]&/@soln,UnitDistanceGraphEmbeddingQ[#]&&!DegenerateEmbeddingQ[#]&]

GraphEmbedding[gs[[2]]]

GraphData["AntiboxGraph","VertexDegrees"]

VertexDegree[gs[[1]]]

RecognizeGraph/@gs

UnitDistanceGraphEmbeddingQ/@gs

soln=NSolve[{
(a-1)^2+(b-1)^2==1,
(u+1-a)^2+(b-v)^2==1,
(c-1)^2+d^2==1,
(u+1-c)^2+(v-d)^2==1,
(x+1-c)^2+(y-d)^2==1,
(x+1-a)^2+(y+1-b)^2==1,
b==1/5,v==0},{x,y,u,v,a,b,c,d},Reals]

gs=Select[Graph[Range[14],UndirectedEdge@@@{{1,2},{2,4},{4,6},{6,10},{9,10},{3,9},{2,8},{3,4},{1,7},{5,6},{7,8},{8,10},{11,12},{3,11},{9,12},{12,14},{7,14},{5,14},{11,13},{1,13},{5,13}},VertexCoordinates->({{0,1},{1,1},{x+1,y+1},{a,b},{u,v},{u+1,v},{0,0},{1,0},{x+1,y},{c,d},{x,y+1},{x,y},{0,1}+{x+1-c,y-d},{x,y}+{1-a,1-b}}/.#),VertexLabels->"Name"]&/@Select[soln,FreeQ[ConditionalExpression]],UnitDistanceGraphEmbeddingQ[#]&&!DegenerateEmbeddingQ[#]&]

soln=Solve[{
(a-1)^2+(b-1)^2==1,
(u+1-a)^2+(b-v)^2==1,
(c-1)^2+d^2==1,
(u+1-c)^2+(v-d)^2==1,
(x+1-c)^2+(y-d)^2==1,
(x+1-a)^2+(y+1-b)^2==1,
b==1/5,v==0},{x,y,u,v,a,b,c,d},Reals]//FullSimplify

gs=Select[Graph[Range[14],UndirectedEdge@@@{{1,2},{2,4},{4,6},{6,10},{9,10},{3,9},{2,8},{3,4},{1,7},{5,6},{7,8},{8,10},{11,12},{3,11},{9,12},{12,14},{7,14},{5,14},{11,13},{1,13},{5,13}},VertexCoordinates->({{0,1},{1,1},{x+1,y+1},{a,b},{u,v},{u+1,v},{0,0},{1,0},{x+1,y},{c,d},{x,y+1},{x,y},{0,1}+{x+1-c,y-d},{x,y}+{1-a,1-b}}/.#),VertexLabels->"Name"]&/@Select[soln,FreeQ[ConditionalExpression]],UnitDistanceGraphEmbeddingQ[#]&&!DegenerateEmbeddingQ[#]&]

RecognizeGraph/@gs

UnitDistanceGraphEmbeddingQ/@gs

nicegs=Take[gs,2]

r=RecognizeGraph[nicegs[[1]]]

UnitDistance by FindUnitDistanceEmbedding

FindUnitDistanceEmbedding[GraphData["AntiboxGraph"],MaxIterations->5000,"ReturnWithMessage"->True]//Timing

FindUnitDistanceEmbedding[GraphData["AntiboxGraph"],MaxIterations->5000,"ReturnWithMessage"->False]//Quiet//Timing

UnitDistance by FindSubgraphUnitDistanceEmbedding

{ "AntiboxGraph",l=FindSubgraphUnitDistanceEmbedding[GraphData["AntiboxGraph"],TimeConstraint->300,"Results"->All]//Timing}

gs=SortBy[UniqueEmbeddings[l],Replace[RectilinearCrossingCount[#],Infinity->0]&]

gs={,}

Matchstick

GraphData["AntiboxGraph","Matchstick"]

GraphData["AntiboxGraph","Graph","Matchstick"]//StyleGraphs

3D default

GraphPlot3D[GraphData["AntiboxGraph","Edges"]]

v=Join[Tuples[{-1,1},{3}],Sequence@@Table[{x,0,z},{x,{-1,1}},{z,-1,1}]];
g=Graph[Range@Length@v,UndirectedEdge@@@{e[1,2,11,4,3,9,1,5,6,14,8,7,12,5],e[12,13,14],e[9,10,11],{10,13},{2,6},{4,8},{3,7}},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

3D All

GraphData["AntiboxGraph","Graph",{"3D","All"}]

3D UnitDistance

GraphData["AntiboxGraph","Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData["AntiboxGraph","Polyhedral"]

GraphData["AntiboxGraph","Graph",{"3D","Polyhedron"}]

Construction

Robertson et al. 2019

v=DeleteCases[Join[Sequence@@Table[{i,j},{i,4},{j,3}],{{0,0},{0,4},{5,4},{5,0}}],{2|3,2}];
g=Graph[Range[Length[v]],UndirectedEdge@@@Sort[Sort/@{Sequence@@Partition[{11,14,13,12},2,1,1],Sequence@@Partition[{1,4,6,8,9,10,7,5,3,2},2,1,1],{1,11},{3,12},{10,13},{8,14},{2,9},{4,5},{6,7}}],VertexCoordinates->v,VertexLabels->"Name"]

CubicGraphQ[g]

r=RecognizeGraph[g]

PlanarGraphQ[g]

AlmostPlanarGraphQ[g]

CrossingNumber[g,TimeConstraint->10]

GraphData[r,"Graph","All"]

ToCommonEdges[g,GraphData[r]]