$4^3=3^3+3 \times 3^2 + 3 \times 3 + 1$

$3^3=2^3+3 \times 2^2 + 3 \times 2 + 1$

$2^3=1^3+3 \times 1^2 + 3 \times 1 + 1$   

$1^3=0^3+3 \times 0^2 + 3 \times 0 + 1$      

O: (0, 0, 0)
I: (1, 0, 0)
A = Point(Circle[I, Distance[O, I], Segment[O, I]])
cube1, B, C, D, E, F, faceABOI, faceBFCO, faceCDIO, faceAEDI, faceABFE, faceCDEF, arêteBO, arêteIO, arêteAI, arêteAB, arêteCO, arêteBF, arêteCF, arêteCD, arêteDI, arêteDE, arêteAE, arêteEF = Cube(O, I, A)
cube2 = Dilate(cube1, 2, O)
cube3 = Dilate(cube1, 3, O)
cube4 = Dilate(cube1, 4, O)
A_1: (3, 0, 0)
A_2: (4, 0, 0)
A_3: (4, 3, 0)
A_4: (3, 3, 0)
A_5: (3, 0, 3)
pavéA, G, H, J, face1, face3, face4, face2, face5, arête1, arête2, arête3, arête4, arête5, arêteGH, arêteHJ_1, arête6 = Prism(Polygon[A_1, A_2, A_3, A_4], A_5)
A_6: (4, 4, 0)
pavéA', K, L, M, face6, face7, face8, face9, face10, arête7, arête8, arête9, arête10, arête11, arête12, arête13, arête14 = Prism(Polygon[A_3, A_4, J, H], A_6)
N = Point(Circle[H, Distance[J, H], Segment[J, H]])
cube5, P, Q, R, S, T, faceHJPN, faceJPTQ, faceHJQR, faceHNSR, faceNPTS, faceQRST, arêteJP, arêteHJ, arêteHN, arêteNP, arêteJQ, arêtePT, arêteQT, arêteQR, arêteHR, arêteRS, arêteNS, arêteST = Cube(J, H, N)