Keywords

1 Introduction

Unfolding a geometric three-dimensional shape consists in providing a two-dimensional flat non-overlapping and connected representation of it. This problem is as old as cartography and is still widely open with many potential applications including puzzle design [1], 3D paper craft [12], manufacturing [14, 16]...

Our interest lies in the grid edge-unfolding without refinement of a very specific class of polyhedra: the level 1 Menger polycube of arbitrary size (a generalisation of the Menger sponge [11]). A polycube is a set of face-connected voxels without inner cavity. An edge unfolding is an unfolding along the original edges of the polyhedron. A grid unfolding of a polycube is an unfolding that consists in creating a 2D net of all the faces of the polycube (faces that are face-connected to the complement) in a 2D orthogonal grid. Many grid unfolding algorithms found in the literature require refinements. A \(n\,\times \,m\) refinement means that a polycube face is cut into \(n\,\times \,m\) rectangular subfaces. Oftentimes, algorithms deal with orthogonal polyhedra rather than polycubes. An orthogonal polyhedron is a polyhedron where all the faces are parallel to Cartesian coordinate planes and can be seen as a generalisation of polycubes.

Edge-unfolding of a general polyhedron is not always possible [8]. There are several examples of non-convex polyhedra that cannot be edge-unfolded. As for convex polyhedra, it is still an open question whether they always admit an edge unfolding. These last couple of years, the community tried to make some progress by focusing on various subclasses of orthogonal polyhedra that admit a grid edge-unfolding without refinement such as orthotubes [2], well-separated orthotrees [6], orthoterrains [13], H-convex Manhattan towers... [15] For some other subclasses, the known methods require the grid to be refined further by adding cutting planes in a constant or linear number of times: for example, \(4\,\times \,5\) grid-unfolding for Manhattan towers [7], \(1\,\times \,2\) grid-unfolding for orthostacks...Ā [2]

More recently, the community has begun to focus on orthogonal polyhedra of genus greater than zero. In [10], edge-unfolding of several classes of one-layered orthogonal polyhedra (one layer of voxels) with cubic holes are considered and it was shown that several special classes of them admit grid unfoldings. In [4], authors generalised the work of [10] and offered a grid unfolding method suitable for a wider class of one layer polyhedra of genus greater than zero using a \((2\,\times \,1)\)-refinement. In [5], an algorithm for unfolding all orthogonal polyhedra of genus 1 or 2 is proposed; it extends the idea of [3] to deal with holes, and both require a linear refinement. In [9], Ho et al. treat two subclasses of orthogonal polyhedra with arbitrary genus with \(2\,\times \,1\) refinement. Our Menger polycube is a subclass of their well-separated orthographs, but our algorithm does not need any refinement.

The general question whether there always exists a grid unfolding without refinement for any polycube is an open question. A grid unfolding without refinement means that each polycube voxel face can be unfolded as a square 2D grid face (a pixel if you prefer). The final 2D net should be connected and it should be noted that two faces in the net are considered as neighbours iff the original corresponding faces in the 3D polyhedra share a common edge. Two 2D grid faces may be neighbours in the classical 4-connected sense and not be neighbours in the net.

One way of looking at unfolding problems is to consider 3D vertices. In three dimensions, a polycube vertex may have a degree from 3 to 7, meaning that there is a cycle of 3 to 7 faces around a vertex. However, once unfolded, a face can have a maximum degree of 4. All the faces around a vertex of degree over 4 cannot be placed together on the unfolding. Does the proportion of vertices of degree greater than 4 limit the unfoldability of a polycube? This question led us to the level 1 Menger polycube of arbitrary size with \(L\, \times \,M\,\times \,N\) holes [11]. The dimensions correspond to the number of holes in a direction: L holes along the x-axis, M along the y-axis and N along the z-axis. This represents a polycube with a potentially high genus and almost all the vertices in such a polycube are of degree 6 except for the 8 corner vertices that are of degree 3, some outer faces that are of degree 4 and the hole vertices on the outer envelope faces that are of degree 5.

In this paper we propose a deterministic algorithm for grid unfolding without refinement (edge unfolding) of level 1 Menger polycubes of arbitrary size. The idea is to focus on the ā€œinnerā€ faces (those that are not on the outer envelope). The outer envelope is defined as all the faces that have minimum or maximum x, y or z centroid coordinates. The inner faces is where the vertices of degree 6 can be found. Our unfolding method requires the help of some ā€œouterā€ faces only at specific places. Once all the inner faces are unfolded with help of some outer faces, all the other outer faces can then be unfolded very simply.

The paper is organized as follows: Sect.Ā 2 presents some preliminaries as well as the particular polycubes we are interested in. The unfolding method is then detailed. We finish the paper with a conclusion and prospects.

2 Unfolding Level 1 Menger Polycubes

2.1 Introducing Level 1 Menger Polycubes of Arbitrary Size

A Menger sponge is a fractal object [11]. In this paper, we only consider the level 1 of this construction: a simple level 1 Menger polycube is made of 20 unit cubes forming a greater \(3\,\times \,3\,\times \,3\) cube where the cubes in the centre of each face are missing as well as the cube in the very centre of the greater cube (Fig.Ā 1a). This is what we call here a level 1 (1,Ā 1,Ā 1)-Menger polycube. The genus of this polycube is 5.

A level 1 (L,Ā M,Ā N)-Menger polycube is the Minkowski addition between a Cartesian (L,M,N) subset of points of \((2Z)^3\) and a structuring element that is simply the (1,Ā 1,Ā 1)-Menger sponge. This polycube has L holes along the x-axis, M holes along the y-axis and N holes along the z-axis. Each hole is the size of one unit cube and is separated from the holes around it by one unit cube. Such a polycube has a size of \((2L+1)\,\times \,(2M+1)\,\times \,(2N+1)\). An example is presented on Fig.Ā 2a for the level 1 (1,Ā 3,Ā 1)-Menger polycube. This polycube is of genus 13. The general formulas for a level 1 (L,Ā M,Ā N)-Menger are:

  • number of voxels: \(1+2(L+M+N)+3(LM+LN+ MN)+ 4 LMN\)

  • number of faces: \(6 + 8 (L + M + N) + 10 (LM + LN + MN) + 12 LMN\)

  • number of vertices: \(8(1+L)(1+M)(1+N)\). From which:

    • 8 vertices of degree 3;

    • \(8(L+M+N)\) vertices of degree 4

    • \(8(LM + MN + LN)\) vertices of degree 5

    • and 8LMN vertices of degree 6.

  • genus: \(LM + LN + MN + 2 LMN\).

For instance, a (3,Ā 3,Ā 3)-Menger polycube (see Fig.Ā 6) has a genus of 81, is composed of 208 voxels, 672 faces with 8 vertices of degree 3, 72 vertices of degree 4, 216 vertices of degree 5 and 216 vertices of degree 6. The ratio of vertices of degree 6 to other vertices climbs rapidly. For a (100,Ā 100,Ā 100)-Menger we have 8 million vertices of degree 6 and 242408 vertices of other degrees (and a genus of 2030000).

In the following, we start with handling the inner faces of such polycubes. These faces form a volume that, to unfold, we will divide in simpler structures: we can unfold a volume if we know how to unfold planes. In the same way, each plane is divided into lines and each line into crosses.

The outer faces (forming the outer envelope of the polycube) can be unfolded in a similar way as a simple cube as we will see in Sect.Ā 2.5.

2.2 Unfolding an Inner Line

We call inner cross (or simply cross) the inner faces of a (1,Ā 1,Ā 1)-Menger polycube, i.e. the faces around the central ā€œholeā€. A complete cross has 6 branches (see Fig.Ā 1a and b). We can merge several crosses to form an inner line: the back branch of one cross is also the front branch of the next one (see Fig.Ā 2b). An inner line is defined as the inner faces of a (1,Ā M,Ā 1)-Menger.

We first explain how to unfold a simple cross and then how to go on with another connected one and finally how to unfold the whole inner line.

Unfolding a Cross: First we start with the simple cross which is the object obtained with the (1,Ā 1,Ā 1)-Menger polycube (i.e. the Menger sponge) inner faces (see Fig.Ā 1b).

As we can see on Fig.Ā 1d, unfolding one branch leads to four aligned faces. In Fig.Ā 1d, ā€œu, b, d, f, l, rā€ stands for ā€œup, back, down, front, left, rightā€ faces as they appear visually in Fig.Ā 1b. We can navigate from one branch to the next by reversing the faces cycle: this way, the unfolding keeps progressing in the same direction, ensuring the non-overlapping property we seek. On Fig.Ā 1c and d we propose an order to browse the branches and show the corresponding unfolding.

Fig. 1.
figure 1

The (1,Ā 1,Ā 1)-Menger polycube. The inner faces of this polycube and their deterministic edge-unfolding.

Linking Two Crosses: As we can see on Fig.Ā 2b, between two consecutive crosses, there is a common branch. On the pattern we used to unfold a single cross, the last and the first branch are opposite to each other. If we apply this pattern to each cross of the inner line, the first and last branches are the shared ones. This allows us to simply concatenate the unfoldings by merging the shared branches (see Fig.Ā 2c).

Fig. 2.
figure 2

The line (1,Ā 3,Ā 1)-Menger polycube. The inner faces of this polycube and its deterministic edge-unfolding. (Color figure online)

Unfolding Inner Line Results: We now have all we need to unfold several crosses in a row: we simply have to concatenate the cross pattern M times to get a M sized line unfolding.

We can notice (see Fig.Ā 2c) that the unfolding of each cross is on the right and slightly above the previous one, preventing any two faces from different crosses to overlap each other. The unfolding of the back branch of a cross is also the unfolding of the front branch of the next cross (presented by mixed colour on the figure). It allows linking every consecutive cross together.

2.3 Unfolding an Inner Plane

In the same way we formed a line by merging several crosses, we can now merge several lines side by side to form the inside of a (L,Ā M,Ā 1)-Menger plane, called an inner plane for what follows. As previously, some branches will be shared between two lines (see Fig.Ā 3a). We will first see how to unfold an inner line without the side branches and then how to connect the nets of two consecutive inner lines to finally unfold an inner plane.

Fig. 3.
figure 3

The inner faces of a (3,Ā 3,Ā 1)-Menger polycube and their unfolding. (Color figure online)

Unfolding a Partial Inner Line: Between two consecutive inner lines, each cross shares a lateral branch with a cross from the other inner line. This time, the shared branches will not be used to link the unfoldings of the different inner lines. Since we cannot unfold the same faces twice, we choose to ignore the shared branches while unfolding the first inner line and unfold them with the following inner line and so forth until the last.

This means that, when we have M inner lines, each cross of the first \(M-1\) inner lines will miss the left branch. The crosses of these lines have only 5 branches (see Fig.Ā 3a and b) instead of (these are partial inner lines)6. Therefore a new pattern is needed. Indeed, the pattern we used in Sect.Ā 2.2 works for an inner line with crosses that have 6 branches.

A suitable pattern can be found in Fig.Ā 3c. Once again, each two consecutive crosses from a same partial inner line share the front and back branches (in orange and red on the figures), and we will be using them to concatenate the unfoldings. We can see that, this time, the shared branch is not the last branch of the first cross, but we can nonetheless link the unfoldings of two consecutive partial crosses without overlap. The top branch is unfolded under the shared branch and under the next partial cross. We can thus concatenate any number of 5 branch crosses to create a partial inner line of any length.

Linking Two Lines in an Inner Plane: To link two partial inner lines together, we use an outer face. Indeed, we chose to unfold in such a way that the last visited branch of a partial inner line is a branch connected to the outer envelope of the polycube. We use the outer face as a bridge to reach the cross to the left of the previous one (see the orange faces on Fig.Ā 3).

In a partial inner line, each cross unfolding is placed on the top of the preceding one. Following the same idea, each partial inner line unfolding is also placed strictly on top of the preceding one. This way, two different line-unfoldings cannot overlap. Each partial inner line is visited in a reverse order from the preceding one; this is why each inner line unfolding mirrors the previous one.

Unfolding Inner Plane Results: A full \(L\,\times \,M\) inner plane is composed of \(L-1\) partial inner lines and one complete inner line. We just provided a way to unfold a partial inner line and the unfolding of an inner line (with 6 branches crosses) is treated in Sect.Ā 2.2. We simply have to link these different line-unfoldings as previously described to get a full inner plane unfolding.

At each step, the unfolding of the different crosses and lines are placed on the top of the previous ones. This way we can ensure that there is no unwanted overlapping.

2.4 Unfolding an Inner Volume

We can now merge inner planes to build the inner faces of a (L,Ā M,Ā N)-Menger polycube volume. As for the previous case, some branches will be shared by two consecutive inner planes. To unfold a volume, we therefore consider that the lower planes miss their top branches (see Fig.Ā 4a). This defines partial inner planes. The top plane is a full inner plane as discussed in Sect.Ā 2.3. Now, we explain how to unfold the partial inner planes. Then, we explain how to link two consecutive inner plane-unfoldings together.

Unfolding a Partial Inner Plane: To unfold a partial inner plane (see Fig.Ā 4), we have to unfold new types of partial inner lines where this time, the top and left branches are missing. This leads to unfolding crosses having 4 (for the first lines) or 5 (for the last line) branches.

When considering Fig.Ā 3c, the pattern for 4 branch crosses is the same pattern as the one with 5 branches except that we drop the blue branch.

The last line of such planes has 5 branches, but this time it is the top branch that is missing. Globally the idea of the pattern is similar as for the 5 branch pattern in Sect.Ā 2.3 but the last branch is linked to the ā€œleftā€ of the red branch instead of the ā€œupā€ (see Fig.Ā 3c).

Fig. 4.
figure 4

The inner faces of a partial inner plane from a (3,Ā 3,Ā N)-Menger polycube and their unfolding. (Color figure online)

FigureĀ 4 presents the faces of a partial inner plane of a Menger polycube. This plane misses every top branch. In blue and green, we can see two partial inner lines missing their top and one side branch. The last partial inner line, that misses only its top branches, is in red. To unfold such a partial inner plane, we use a face of the outer envelope (in orange) to go from one line to the next (similarly to what was described previously in Sect.Ā 2.3).

Linking Two Planes: As for the link from an inner line to the next inner line (see Sect.Ā 2.3), we use an outer face to link a partial inner plane to the above located inner plane. We exit a partial inner plane using a cross branch connected to a side of the polycube and re-enter it by the corresponding branch of the cross located above. The outer face used is coloured in yellow on Fig.Ā 4.

Unfolding an Inner Volume Results: The whole inner volume unfolding is obtained by adding a full last inner plane to the \(N-1\) partial inner planes unfoldings. We can see the unfolding of the inner volume of a (3,Ā 3,Ā 3)-Menger polycube on Fig.Ā 6. It is the zigzag pattern unfolding on the top of the figure (in green and blue we have the two partial inner planes and in red, the full inner plane).

2.5 Unfolding the Remaining Outer Faces

The remaining faces all belong to the outer envelope of the polycube. We will now see that all of these faces remain connected, can be unfolded in the same fashion as a simple cube (see the bottom part of Fig.Ā 6) and can be added to the unfolding of the inner faces without overlap.

Connectedness of Outer Faces: While unfolding the inner parts of the polycube we use outer faces to link two inner lines either horizontally (for two consecutive inner lines of an inner plane) or vertically (for two inner lines of two consecutive inner planes). The way we unfold all the inner lines is similar to a sewing pattern starting on the bottom-front of the polycube, passing through to exit on the opposite side and coming back through the next inner line either on the left or on the top of the first one.

The outer faces used to link the inner unfoldings belong only to the front and the back sides of the polycube, the other four sides are untouched.

Fig. 5.
figure 5

The outer face unfolding in a cube unfolding fashion. The light-blue faces are used to link 2 lines, and the green faces are used to link 2 planes. (Color figure online)

We can see on Fig.Ā 5 that the unfolding of the outer faces remains connected even with the missing outer faces (in light blue and green) that were used to link the inner lines and planes together. Despite having used some outer faces to unfold the inner part, the outer faces remain connected and can be unfolded in the same way as a simple cube (see Fig.Ā 6). A last face, coloured in orange, has been removed to be used as a bridge between the unfolding of the outer and inner part.

Linking the Outer Unfolding to the Inner Unfolding: When we unfold the inner faces, the first unfolded branch is placed to have the lowest ordinate value of the inner faces unfolding. This branch is linked to the outer envelope of the polycube. During the unfolding process, faces are always added either at the same level as the previous ones or above. Therefore, the outer faces can be unfolded under the inner unfolding.

If we keep strictly the unfolding of a cube, we cannot connect the outer faces to the inner faces. There is no free edge in the unfolded outer faces that is common with an inner face. To create this common free edge, we move one of the two faces of the front side of the polycube that are connected to both the front branch of the starting cross and a face from another outer side of the polycube. This face makes the bridge between the inner unfolding part and the outer unfolding part.

2.6 Final Result

FigureĀ 6 shows the unfolding of a (3,Ā 3,Ā 3)-Menger polycube and gathers all the previously presented unfolding elements. We can see the unfolding of most of the outer faces on the bottom. We can see the unfolding results of the inner part: the zigzag unfolding on the upper part. Each inner line unfolding corresponds to a linear part. Each zigzag composed of three linear parts belongs to the unfolding of an inner plane. Each linear part is connected to the next using an outer face either to connect two inner lines in the same inner plane (orange faces) or to connect two inner planes (yellow faces). On the front of the (3,Ā 3,Ā 3)-Menger polycube in Fig.Ā 6, one can see some of the outer faces (in orange and yellow respectively) that are used to link the inner lines and the inner planes. A similar set of outer faces is located on the back of the Menger polycube.

Fig. 6.
figure 6

The unfolding of the level 1 (3,Ā 3,Ā 3)-Menger polycube. (Color figure online)

3 Conclusion

In this paper, we have proposed a deterministic method to unfold without refinement high genus polycubes made out of level 1 Menger sponges. This proves that despite the high rate of 6-degree vertices, there exists a non-overlapping flat unfolding for such a polycube. It is the first unfolding example of such a complex polycube object with a high genus without refinement.

As a short time prospect, we will try to unfold the inner part of the Menger polycubes without the help of outer faces. The goal is to prove that it is possible to unfold an object composed only of degree 6 vertices. In the long term, we want to study if our method can be adapted to other types of high genus polycubes and maybe come up with a deterministic unfolding for any type of polycube.