Open the Net

A = (-4, 5)
B = (-4, 4)
f = 1 (slider from 0 to 1, step 0.01)
a, C, D, E, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF, faceCDHG, faceEFGH, edgeAD, edgeAB, edgeBC, edgeCD, edgeAE, edgeDH, edgeEH, edgeEF, edgeBF, edgeFG, edgeCG, edgeGH = Cube(A, B, xOyPlane)
t = 1 (slider from 0 to 1, step 0.01)
faceABFE' = Rotate(faceABFE, (90° * t), edgeAB)
I = Midpoint(A, C)
b = OrthogonalLine(I, xOyPlane)
faceABFE'' = Rotate(faceABFE', 90°, b)
faceABFE''_1 = Rotate(faceABFE', 180°, b)
faceABFE''_2 = Rotate(faceABFE', 270°, b)
E' = Rotate(E, (90° * t), edgeAB)
F' = Rotate(F, (90° * t), edgeAB)
c = Segment(E', F')
poly1 = Rotate(Rotate[faceEFGH, (90° * t), edgeAB], (90° * t), Segment[E', F'])
J = (1, 5, 0)
K = Translate(J, Vector[A, B])
poly2 = Translate(faceABFE''_1, Vector[A, J])
faceABCD' = Translate(faceABCD, Vector[A, J])
faceABFE''_3 = Translate(faceABFE', Vector[A, J])
poly1' = Translate(poly1, Vector[A, J])
poly4 = Translate(Rotate[Rotate[faceADHE, (90° * t), edgeAB], ((-(90°)) * t), Segment[Rotate[E, (90° * t), edgeAB], Rotate[A, (90° * t), edgeAB]]], Vector[A, J])
faceABFE''' = Translate(faceABFE'', Vector[A, J])
L = (6, 5, 0)
faceABCD'_1 = Translate(faceABCD, Vector[A, L])
poly3 = Translate(faceABFE''_1, Vector[A, L])
faceABFE''_4 = Translate(faceABFE', Vector[A, L])
poly1'_1 = Translate(poly1, Vector[A, L])
faceABFE'''_1 = Translate(faceABFE'', Vector[A, L])
M = Midpoint(B, E')
d = OrthogonalLine(M, faceABFE')
poly5 = Translate(Rotate[faceABFE'', 180°, d], Vector[A, L])
O = (6, 1, 0)
faceABCD'_2 = Translate(faceABCD, Vector[A, O])
poly6 = Translate(faceABFE''_1, Vector[A, O])
faceABFE''_5 = Translate(faceABFE', Vector[A, O])
poly1'_2 = Translate(poly1, Vector[A, O])
faceABFE'''_2 = Translate(faceABFE'', Vector[A, O])
poly8 = Translate(Rotate[Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]]], Vector[A, O])
N = (-4, 1, 0)
faceABCD'_3 = Translate(faceABCD, Vector[A, N])
poly7 = Translate(faceABFE''_1, Vector[A, N])
faceABFE''_6 = Translate(faceABFE', Vector[A, N])
poly1'_3 = Translate(poly1, Vector[A, N])
poly9 = Translate(Rotate[faceABFE'', 180°, d], Vector[A, N])
P = Rotate(Rotate[H, (90° * t), edgeAB], (90° * t), Segment[E', F'])
Q = Midpoint(P, F')
e = OrthogonalLine(Q, poly1)
poly10 = Translate(Rotate[Rotate[faceABFE'', 180°, d], 180°, e], Vector[A, N])
R = (1, 1, 0)
faceABCD'_4 = Translate(faceABCD, Vector[A, R])
poly11 = Translate(faceABFE''_1, Vector[A, R])
faceABFE''_7 = Translate(faceABFE', Vector[A, R])
poly1'_4 = Translate(poly1, Vector[A, R])
poly12 = Translate(Rotate[faceABFE'', 180°, d], Vector[A, R])
F'' = Rotate(F', 180°, b)
S = Midpoint(C, F'')
g = OrthogonalLine(S, faceABFE''_1)
poly15 = Translate(Rotate[Rotate[Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]]], 180°, g], Vector[A, R])
T = (-4, -3, 0)
faceABCD'_5 = Translate(faceABCD, Vector[A, T])
poly13 = Translate(faceABFE''_1, Vector[A, T])
faceABFE''_8 = Translate(faceABFE', Vector[A, T])
poly14 = Translate(Rotate[faceABFE', 270°, b], Vector[A, T])
poly16 = Translate(Rotate[poly1, (-(90°)), b], Vector[A, T])
poly17 = Translate(Rotate[Rotate[Rotate[faceADHE, (90° * t), edgeAB], ((-(90°)) * t), Segment[Rotate[E, (90° * t), edgeAB], Rotate[A, (90° * t), edgeAB]]], 180°, d], Vector[A, T])
U = (1, -3, 3.552713678800501E-15)
faceABCD'_6 = Translate(faceABCD, Vector[A, U])
poly18 = Translate(faceABFE''_1, Vector[A, U])
faceABFE''_9 = Translate(faceABFE', Vector[A, U])
poly19 = Translate(Rotate[faceABFE', 270°, b], Vector[A, U])
poly20 = Translate(Rotate[Rotate[Rotate[faceADHE, (90° * t), edgeAB], ((-(90°)) * t), Segment[Rotate[E, (90° * t), edgeAB], Rotate[A, (90° * t), edgeAB]]], 180°, d], Vector[A, U])
poly22 = Translate(Rotate[faceABFE'', 270°, d], Vector[A, U])
V = (6, -3, -3.552713678800501E-15)
faceABCD'_7 = Translate(faceABCD, Vector[A, V])
poly21 = Translate(faceABFE''_1, Vector[A, V])
poly23 = Translate(Rotate[faceABFE, (90° * t), edgeAB], Vector[A, V])
poly24 = Translate(Rotate[Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]]], Vector[A, V])
poly25 = Rotate(Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]])
W = Rotate(Rotate[E, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]])
Z = Midpoint(D, W)
h = OrthogonalLine(Z, poly25)
poly26 = Rotate(faceABFE''_1, 90°, h)
poly27 = Translate(Rotate[faceABFE''_1, 90°, h], Vector[A, V])
C' = Rotate(C, 90°, h)
A_1 = Midpoint(W, C')
i = OrthogonalLine(A_1, poly26)
poly25' = Rotate(poly25, 180°, i)
poly28 = Translate(Rotate[poly25, 180°, i], Vector[A, V])
B_1 = (-4, -7, 3.552713678800501E-15)
faceABCD'_8 = Translate(faceABCD, Vector[A, B_1])
poly29 = Translate(faceABFE''_1, Vector[A, B_1])
faceABFE''_{10} = Translate(faceABFE', Vector[A, B_1])
poly30 = Translate(Rotate[Rotate[Rotate[faceADHE, (90° * t), edgeAB], ((-(90°)) * t), Segment[Rotate[E, (90° * t), edgeAB], Rotate[A, (90° * t), edgeAB]]], 180°, d], Vector[A, B_1])
poly31 = Translate(Rotate[Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]]], Vector[A, B_1])
poly32 = Translate(Rotate[faceABFE''_1, 90°, h], Vector[A, B_1])
C_1 = (1, -7, -3.552713678800501E-15)
faceABCD'_9 = Translate(faceABCD, Vector[A, C_1])
poly33 = Translate(faceABFE''_1, Vector[A, C_1])
poly34 = Translate(Rotate[Rotate[faceADHE, (90° * t), edgeCD], (90° * t), Segment[Rotate[H, (90° * t), edgeCD], Rotate[D, (90° * t), edgeCD]]], Vector[A, C_1])
poly35 = Translate(Rotate[faceABFE''_1, 90°, h], Vector[A, C_1])
faceABFE'''_3 = Translate(faceABFE'', Vector[A, C_1])
G' = Rotate(G, 90°, b)
F''_1 = Rotate(F', 90°, b)
D_1 = Midpoint(B, F''_1)
j = OrthogonalLine(D_1, faceABFE'')
faceABCD'_{10} = Rotate(faceABCD, 90°, j)
poly36 = Translate(Rotate[faceABCD, 90°, j], Vector[A, C_1])