1 Introduction

While the graphics community has devoted great research effort into developing algorithms to ease the task of producing 3D content, additive manufacturing (AM)—also commonly referred to as 3D printing—is changing the scene regarding the possibilities of materialising 3D content. Additive manufacturing refers to those technologies that can be used to manufacture objects by adding material layer by layer and binding it using different mechanisms. It offers the potential to produce more complex structures than subtractive processes that are more limited concerning tool paths. Many different AM technologies are available, which may differ in the materials that can be used, how the layers are created, how the layers are bonded to each other and the post-processing steps after the object has been removed from the machine. By exploring such promising advantages users are beginning to realise that AM technologies also pose many challenges when 3D content needs to be printed.

Due to the heterogeneity of AM technologies, different constraints are applied to the geometric content in order to make it fit for purpose and cost effective to produce. These constraints include both geometric and material constraints which have a major impact on the feasibility, quality and cost of the final resulting object. For instance, users commonly need to deal with issues such as avoiding warping and shrinkage in the printed object as well as designing rafts and support structures. Another desirable goal is to reduce the amount of material while maximising the strength of the printed part. Design for AM processes include approaches to deal with such issues. For instance, the use of cellular structures when designing for AM is an efficient way to address some of the described issues.

Cellular structures have been referred to by different names in literature such as lattice structures, cellular materials or scaffold structures. Such structures provide high strength while maintaining a low mass and occur frequently in nature. Their mechanical properties have been extensively analysed and cellular materials naturally occur or can be manufactured in nanometre-scale and micrometre-scale, such as foams. Cellular structures comprise several cells made up of struts (solid edges) and/or faces that surround the void space dispersed within the given solid volume. If only the struts are present with most of the faces missing, then the structure is classified as open, while if the struts and faces are solid the cell structure is classified as closed. Closed cell materials typically have higher strength and are used extensively for their insulating properties.

The use of cellular structures when designing for AM processes is motivated by the advantage of using less material while maintaining strength. AM processes allow the cell sizes to be manufactured into millimetre or centimetre-scale. Currently, the AM research community is showing growing interest in designing cellular structures across different applications. We refer to such subset of applications as macro-scale cellular structures. Scale is constrained by the manufacturing processes. However, when designing virtual structures scale does not need to be predefined.

From the computer graphics point of view, designing cellular structures poses several challenges since the produced cellular structure typically has a huge amount of cells and faces resulting in a surface mesh that is complex and intricate. In this paper we present a literature review in designing cellular structures looking at the recent development in different application fields (see Sect. 2). We then propose the adaptive voids algorithm for designing automatically such structures given any closed volume boundary, to be described in detail in Sect. 3. The proposed algorithm has two main steps. The first step is to provide a cellular partition of a given volume defined by a 1D skeleton in 3D space. Once we want to partition the space for any given volume boundary, adaptive subdivisions are well behaved and efficient. The produced adaptive cell partition can be interpreted as defining how to position voids within the volume interior. Adaptive voids second step is to solidify the given 1D skeleton producing a 3D printable mesh. We point out that the inspiration for the proposed solidification approach comes from a primal-dual interpretation of the volume partition, thus, primal and dual cell structures can be easily produced as the algorithm output. Section 4 will present a sample of shapes which have been produced with the proposed algorithm and printed using additive manufacturing technologies. Finally, Sect. 5 argue on the benefits of producing cellular structures with the proposed method includes and points out some future challenges.

2 Previous work on designing cellular structures

Increasingly, computer graphics algorithms to support additive manufacturing processes are becoming an active area of research. Up to now, research has focused on addressing issues relevant to the manufacturing process, such as dealing with the printer bed size [1, 17, 22], reducing the amount of material [41, 42, 44], ensuring the strength of the printed object [21, 39, 40, 49], producing internal structures [14, 31, 36], producing scaffolding [13] or designing printable objects with specific properties, such as to be able to stand or be self-supported [12, 30, 32], to spin [4] or to be articulated [7].

In addition, research fields, such as biomedical, manufacturing, engineering, arts and architecture have particular requirements for the design of cellular structures. These requirements include: absorbing energy, transferring heat or other medium, filling in the inside of a solid to be printed, serving as a support structure and bearing loads more efficiently. Such requirements often influence the specific characteristics of the cellular structures, such as their regularity, porosity, type of cell (open or closed) and size.

Researchers across this spectrum of fields work to advance the state of the art in the design and production of cellular structures. Across this literature, cellular structures are designed and produced by workflows that range from fully automatic to manual. By fully automatic we mean that an algorithm automatically analyses the given solid boundary (the input) and produces a structure which fills the internal space (the output). The manual approach requires user intervention at various stages including modelling the unit cell and fitting it repeatedly to the given volume boundary. The following subsections describe related research for the different approaches to designing and generating cellular structures.

2.1 Tessellation of cells

Cellular structures can be defined by a tessellation in space of a unit cell or a combination of unit cells. The unit cell can be defined by a polyhedron or another shape which can be used as a space filling pattern. The tessellation can be regular or irregular.

Various manual approaches have been reported which involve creating cellular structures in CAD modelling and thresholding packages [11, 33, 45]. The automated alternative requires algorithms that produce the spatial tessellation of cells. For instance, Sá et al. [37] have proposed an approach based on the octet-truss regular space filling pattern within the context of cultural heritage applications. The addressed challenge was to process the boundaries consistently. While Brackett et al. [5], on the other hand, explore Voronoi/Delaunay volume partition. Their approach applies error diffusion techniques to vary the cell size within the structure to obtain a functionally graded structure. The authors solidify the produced 1D skeleton correspondent to the volume partition by substituting the edges by cylinders and the vertices by spheres. In [36] the authors solve the problem of solidifying any given 1D skeleton correspondent to a cell complex volume partition.

Existing algorithms can automatically optimise the structure characteristics according to a set of objectives. For instance, Reinhart and Teufelhart [34] optimize the orientation of the unit cells according to the direction of the stress inside a part. Wang et al. [44] optimises the topology of the structure to balance the weight of the object when printed and Bächer et al. [4] optimises the internal structure to align the principal axes for moment of inertia with a rotation axis. Villalpando et al. [43] builds an optimisation model that considers the build time, material usage, surface finish, interior geometry, strength characteristics, and related parameters.

2.2 Layered 2D pattern

Additive manufacturing software must calculate the nozzle path for delivering the material, or binder, or the fusing heat depending on the manufacturing technology. The path can be set to produce planar layered infills. Following this approach, these types of algorithms produce cellular structures by the stacking planar patterns [10, 18, 19]. In many cases, this approach allows for the tool path information to be automatically generated by the algorithm which is being used to design the structure.

The characteristics of the cells and struts have shown to be relevant to the effectiveness of the structure. As such mechanical properties of the resulting cellular structures are generally dependant on porosity, struts size, shape and orientation [27, 48]. Layered 2D patterns are also commonly found in engineering applications where heat transfer is a key issue such as when designing honeycomb sandwich panels. We observe that such patterns can also be manufactured by subtractive manufacturing processes.

2.3 Geometry described by functions

This approach makes use of implicit or explicit surface representation methods to generate the structure. Commonly the objective is to use surfaces which are of relevance in natural science. Triply periodic minimal surfaces (TPMS), which have been observed as biological membranes, are a popular approach for cell design [8, 15, 25, 29, 47]. In addition, Pasko et al. [31] use a function-based procedural representation of the structures, which can undergo blending, deformations, and other geometric operations.

This design approach has proven to provide exceptional strength and stiffness to weight ratios as well as higher permeability making them more effective for tissue regeneration applications [8, 25].

2.4 Mimicking organic forms

These approaches attempt to emulate the structures found in natural cellular solids such as bone [38, 46], cuttlebone [9] and foams [6]. Moreover, Maire et al. [23] uses X-ray tomography of cellular materials, such as metal foams, bread and cellular concrete to emulate these structures. Most of these approaches take advantage of the desirable properties found in natural structures, such as compressive and energy absorption properties, strength, stiffness and porosity.

Theoretical properties of cellular materials and their advantages over other structures have been described by Gibson et al. [16]. The authors point out the major factors that influence the cellular structures properties as being: (1) the properties of the material from which the cellular structure is made of; (2) the topology (connectivity) and shape of the cell edges and faces and (3) the relative density of the cellular structure. The choice of material is constrained by additive manufacturing technologies, and as such we will focus on the design of the shape and relative density of the object to be printed.

3 The adaptive voids algorithm

In the previous section, several approaches for producing cellular structures have been reviewed. Nevertheless, the discussion on the subject is far from being mature from the additive manufacturing perspective. Challenges on automation, configurability, optimization and testing the produced objects remain open. In addition, efficient data structures and simple ways to describe the complex and intricate structures are required if the algorithms are to be used in real time or interactively.

The adaptive voids algorithm is an automatic approach for solving the problem of given a volume boundary produce a tessellation of cells, interpreted as voids, to reduce the amount of infill material required when 3D is printed. The algorithm takes as input a mesh \(M\) that is the border of a solid \(S\) (i.e. \(\partial S=M\)) and outputs a mesh \(M'\) that is the border of a solid \(S'\) such that \(M\subset M'\) and \(S'\subset S\), as illustrated in Fig. 1. It involves two steps: (1) defining a cell partition for the interior of a given solid \(S\) defined by its border \(M\); and (2) solidifying the resulting cell complex by shrinking the produced cells in order to create voids placed within the given volume. The adaptive voids algorithm take advantage of adaptive subdivision strategies available in computer graphics literature with two inherited advantages: boundary adaptation and efficient graphical data structures [3, 20].

Fig. 1
figure 1

Example of the adaptive voids algorithm simple cube mesh given as input (left) and the zoomed in intricate output (right) cellular structures produced mesh

The inspiration for the proposed technique explore the mathematical concept of duality. The most wide spread example of duality found in computer graphics literature are triangulations and their corresponding Voronoi diagrams, that are each other duals. An example of a primal dual pair of planar tiling is illustrated in Fig. 2. The proposed solidification approach originated from our previous work [36] where the duality is used explicitly. In the adaptive voids algorithm the concept is abstracted and simplified.

Fig. 2
figure 2

Primal planar triangulation (left), its dual mesh (center) and both superposed (right)

Additional motivation to invest on the primal and dual cell structures came from a comment from Ashby [2] that conjectures that while triangular cellular structures are more suited to applications where high stiffness is required, Voronoi cellular structures are more suited to impact absorption applications since the deformation of cell is dominated by bending. As duality is well defined for cell complexes, we propose that generating structures based on duals is worthwhile. This is because primal and dual structures are conjectured to vary their mechanical properties in a complementary way. Thus, the proposed adaptive voids algorithm is designed and implemented to be able to generate both primal and dual three-dimensional cellular structures. We note as well that open and closed cells can both be generated by the algorithm.

3.1 Adaptive volume subdivision

The first step of the adaptive voids algorithm is to produce a triangulation \({\mathcal {T}}\) for a given volume \(S\) defined by its boundary \(M\). Let us assume that the given volume \(S\) is contained in cube \(C=[-1,1]^3\). As the solid border \(M\) is a closed surface, there exists a function \(f\) defined on \(C\) that classifies the points of \(S\) as interior or exterior points, such that \(f(p)\le 0\) if \(p\in S, f(p)>0\) if \(p\notin S\) and \(f(p)=0\) if \(p\in M\). We can take \(f\) as the signed distance function of \(M\), for example. Let \({\mathcal {T}}\) be a triangulation of \(C\), so that \(C\) is the union of finite tetrahedra \(\sigma _i\), such that if two tetrahedra \(\sigma _i\) and \(\sigma _j\) intersect then the intersection is a common face, edge or vertex.

Fig. 3
figure 3

Adaptive subdivision illustrated for the cube. When the grey triangle (left) is chosen to be subdivided the subdivision is propagated to its neighbours (right)

The second step of the adaptive voids algorithm to be proposed works for any given triangulation \({\mathcal {T}}\) of \(C\) but, once a triangulation must be provided, adaptivity seems to be a promising approach, that is, building a triangulation with bigger tetrahedra/voids in the interior of \(S\) and smaller tetrahedra/voids next to \(M\). Figure 3 illustrates one step of an adaptive subdivision for a cube given as input mesh. The produced output mesh has triangles of different sizes that adapt to the given input mesh. This intuitively seems to be a good approach from the structural point of view since it reinforces the structure near its borders.

The adaptive voids subdivision approach is based on the work of Atalay and Mount [3]. Their bisection method is based on a coarse mesh formed by the decomposition of cube \(C\) into six congruent tetrahedrons. Intermediate meshes are generated by subdivision of a tetrahedron along its largest edge, only if this edge is the largest edge for all tetrahedra incident to it, similarly to the classic method of Rivara [35]. Thus, the subdivision of one tetrahedron can be propagated to its neighbours. A forest of binary trees of tetrahedra is obtained as a result, yielding a binary multitriangulation in which several triangulations are accessible according to an adaptivity criteria [26]. Maubach showed that, in the particular case of this initial mesh, the largest edge of a tetrahedron can be found combinatorially, without the need to compute lengths, which results in an efficient algorithm to traverse the trees of tetrahedra [24]. Atalay and Mount found a way to encode the position of a tetrahedron in the forest equivalent to Maubach’s method, but more general, the so-called LPT code [3].

We have re-implemented the LPT code. Its key ingredient is the procedure SubdivideUntil(\(p,l\)) that subdivides the tetrahedron \(\sigma \) that contains point \(p\in C\), possibly with subdivision propagation, until \(p\) be in a tetrahedron of depth \(l\) in the tetrahedron tree. Thanks to the binary tree structure and to the implementation of the LPT code, based on bit manipulation, this procedure works efficiently. The tetrahedral mesh is generated simply by applying the procedure SubdivideUntil(\(p,l_{\max }\)) for all vertices of the input mesh \(M\), where \(l_{\max }\) is a user defined parameter that sets the maximum depth of the tree. That is, the adaptation criterion is to have the smallest tetrahedra in a neighborhood of \(M\), letting the very scheme of subdivision by bisection produce a gradual change in tetrahedron size towards the interior of the solid. A similar technique was applied in the paper [20].

3.2 Primal and dual voids with open or closed cells

The idea behind the second step of the adaptive voids algorithm is to create voids in the interior of \(S\) placed according to the given \({\mathcal {T}}\). That is, for each tetrahedron \(\sigma \) of \({\mathcal {T}}\), let \(V_\sigma \) be a solid contained in \(\sigma \), called void of \(\sigma \), then:

$$\begin{aligned} S'=S-\bigcup _{\begin{array}{c} f(\sigma )<-\tau \\ \sigma \in {\mathcal {T}} \end{array}} V_\sigma , \end{aligned}$$

where \(\tau >0\) is an offset parameter, in such way that the created voids are entirely contained in the interior of \(S\), at a safe distance \(\tau \) from each other. In order to generate the final mesh \(M'\), it suffices to add the void’s borders with reverse orientation to the input mesh \(M\):

$$\begin{aligned} M'=M+\sum _{\begin{array}{c} f(\sigma )<-\tau \\ \sigma \in {\mathcal {T}} \end{array} }-\partial V_\sigma . \end{aligned}$$

Note that we are using an algebraic sum of meshes. This means that if two voids \(V_{\sigma _i}\) and \(V_{\sigma _j}\) intersect, necessarily in a common face \(f\), the common part of the borders has opposite orientations that cancels each other, producing a hole connecting the voids. We emphasize that the mathematical description above is only for conceptual understanding of the method. In practice, no boolean operation is performed. The algebraic cancellation is done simply by not outputting a face shared by two adjacent tetrahedra.

The algorithm can generate two options of voids shapes: primal and dual cellular structures. In the primal case, the void \(V_\sigma \), with \(\sigma =\langle A,B,C,D\rangle \), is the union of tetrahedron \(\sigma _s=\langle A_s,B_s,C_s,D_s\rangle \), where \(\sigma _s\) is the image of \(\sigma \) by a homothety of ratio \(k\) and centre at the barycentre \(M = \frac{A+B+C+D}{4}\) of \(\sigma \), that is:

$$\begin{aligned}&A_s= M + k(A-M)\\&B_s= M + k(B-M)\\&C_s= M + k(C-M)\\&D_s= M + k(D-M) \end{aligned}$$

with four prisms with bases \(A_sB_sC_s, A_sB_sD_s, A_sC_sD_s\), and \(B_sC_sD_s\). Figure 4 illustrates how the primal voids are build.

Fig. 4
figure 4

Approach for generating the void’s shape illustrated only for three edges (AB, BC and BD) and one vertex (B)

This void’s shape can be described as a tetrahedron with extruded faces. The presence or absence of the faces of the extruded prism are optional and output closed or open cell structures respectively. If the cells are open the output can be visualised as a solidified skeleton that surrounds only edges and vertices belonging to all tetrahedra of \({\mathcal {T}}\) that are inside \(S\), what remains looks like a carved scaffold, forming a three dimensional truss structure. An example of the produced output infill primal open cell structure for the Stanford’s Bunny given as input mesh is illustrated in Fig. 5.

Fig. 5
figure 5

Example of the adaptive voids algorithm output. A primal open cell structure mesh with parameters \(k\) = 0.8 and \(l_{\max }=11\)

In the dual case, the void \(V_\sigma \) is the complement in \(\sigma \) of the solid described above, so that we actually add borders of tetrahedra with extruded faces to the initial mesh \(M\).

In order to ensure the compatibility of the generated structure, the points in the top of the prisms have to depend on the neighbour tetrahedron. Suppose, for example, that tetrahedra \(\sigma =\langle A,B,C,D\rangle \) and \(\sigma '=\langle A',B,C,D\rangle \), with barycentre \(M'=\frac{A'+B+C+D}{4}\), share face \(BCD\). Therefore, we have two bases \(B_sC_sD_s\) and \(B'_sC'_sD'_s\), with

$$\begin{aligned}&B'_s=M'+k(B-M')\\&C'_s=M'+k(C-M')\\&D'_s=M'+k(D-M') \end{aligned}$$

It is easy to see that segments \(B_sB'_s, C_sC'_s\), and \(D_sD'_s\) are parallel to segment \(AA'\) and consequently parallel to each other. Thus, points \(B_a, C_a\), and \(D_a\) on face \(BCD\) are obtained by parallel projection of points \(B_s, C_s\), and \(D_s\) in the direction of \(AA'\). It may happen that the adjacent tetrahedron \(\sigma '\) not be entirely contained in \(S\). In this case, the prism relative to this face is not generated. An example of the output dual infill structure produced for the Stanford’s Bunny given as input mesh is illustrated in Fig. 6.

Fig. 6
figure 6

Example of the adaptive voids algorithm output. A dual open cell structure mesh with parameters \(k=0.2\) and \(l_{\max }=11\)

3.3 Implementation

We can now describe the adaptive voids algorithm completely. In its first step an adaptive triangulation \({\mathcal {T}}\) is built by applying procedure SubdivideUntil for each vertex of \(M\), using our own implementation of LPT code. Then, we classify each tetrahedron of \({\mathcal {T}}\) as interior or not, putting it in the hash table inside. The procedure BuildSignedDistanceFunction is based on the function meshToLevelSet available in the OpenVDB library [28]. In fact, we only test the sign of the vertices of \(\sigma \), what is not a robust test, but that works in our case if the mesh \(M\) is sufficiently sampled. It is possible to implement a more robust test, if necessary, at the cost of a slight performance loss. Then, in the second step, we write the input mesh and the border mesh of each void interior to \(M\), using the method described in Sect. 3.2.

figure e

The last step of the algorithm is to complete the struts at the borders of the cellular structure. The procedure WriteMesh in line 12 performs the algebraic cancellation simply not writing the faces shared with a neighbour of \(\sigma \) if this neighbour is an interior tetrahedron. The result is a watertight mesh without holes. The algorithm also allows for the inclusion of skin or no-skin by preserving the original shape boundary.

The struts of the cellular structure have a parameterised thickness which is determined by the user. The thickness value determines the strut’s diameter. This has a direct impact on the overall density of the structure. The higher this value is, the larger the density of the structure and vice versa. This value is constrained by the cell’s size, as the upper bound for the structure’s thickness cannot surpass the distance between the cells’ vertices and the cell centre. There is no lower bound for this distance, making this value to be dependent on the restrictions of the technology which will be used for producing the structure. One of the shortcomings of this approach is that all struts might have a different diameter. If a uniform variable is required across the structure, the maximum diameter value is always restricted by the size of the smaller cell. This can become a problem if very small cells are generated in the first step of the proposed approach. For this, the possibility to have a uniform thickness for non-regular structures has been implemented. This involves determining a uniform minimum thickness and using this across the entire shape.

Figures 7 and 8 illustrate the results of applying the algorithm to the shape of a sphere. Figure 7 rows show the resulting primal structures with varying struts’ thicknesses (0.4, 0.6, 0.8 values from top to bottom). Moreover, Fig. 8 rows show the resulting dual structures with varying struts’ thicknesses (0.1, 0.2, 0.4 values from top to bottom). Both figures’ columns show the resulting structures with varying subdivision levels (9, 12 and 15 values from left to right).

Fig. 7
figure 7

Resulting primal cellular structures with \(k=0.4\), 0.6, 0.8 (from top to bottom) and \(l\_\mathrm{max}=9, 12, 15\) (from left to right)

Fig. 8
figure 8

Resulting dual cellular structures with k = 0.1, 0.2, 0.4 (from top to bottom) and l_max = 9, 12, 15 (from left to right)

The next section reports on efforts to produce the structures using additive manufacturing processes.

4 Producing cellular structures using additive manufacturing

In order to evaluate how effective the algorithm was at producing printable structures, various test structures were generated using the proposed adaptive voids algorithm. A range of 3D models were used to investigate if the structures could be generated and printed. The structures were designed using a variety of cell sizes and strut sizes (both ranging 1–15 mm), overall model sizes (varying 20–150 mm) and two different boundary shapes (e.g. simple cube and Stanford bunny). Both the primal and dual structures were produced for the various unit cell shapes and these were created using constant and variable (from large inside to small outside) unit cell sizes. Before printing, the models were sliced and resaved in Blender (Blender Foundation) using a spherical cut to enable a clear view into the structural interior of the parts once they were made. These then were converted into .stl meshes and produced in ABS using Fused Deposition Modelling (FDM) machines (Makerbot Replicator 2X and Stratasys Fortus 250mc).

All models were able to be printed as generated using the FDM machines (Makerware for the Makerbot Replicator 2X and Insight for the Stratasys Fortus 250mc). Figure 9 shows the printed Stanford bunny using the primal structure, while Fig. 10 shows printed cubes using the primal (left) and dual (right) structures. When using extrusion based processes, there appeared to be no structural issues with the internal cellular structures being printed, even for struts printed horizontally which can often sag and collapse during printing. However, for the larger cell sizes (e.g. 15 mm) the build quality of horizontal struts reduced slightly compared with smaller cell sizes and non-horizontal struts.

Fig. 9
figure 9

The Stanford bunny printed in ABS using the primal open cell structure

Fig. 10
figure 10

Various cubes printed in ABS for the primal (left) and dual (right) structures

The algorithm demonstrated to be suitable for producing cellular structures which can be used as infill for simple boundary shapes. We tested the time to print the Stanford bunny with an equitable mass (84 g) using two alternatives common infill patterns (linear and hexagonal). The resulting structures where comparable in terms of printing time, whereby the hexagonal infill pattern took only 3.5 h to print, the linear infill pattern took over 11  h and our infill structure took 7 h.

Nevertheless, further work needs to be done to evaluate the mechanical properties of these structures in comparison with other cellular structures generated both automatically and manually. The algorithm also needs to be evaluated further with even more complex boundary shapes and with various intersecting points. Furthermore, the effects of the boundary skin (in terms of shape, consistency and thickness) and the effects of removing the boundary skin altogether on the structural properties of the parts needs to be further evaluated.

5 Conclusions

This paper has presented the adaptive voids algorithm, a simple and effective approach for producing configurable adaptive cellular structure which can be used in a wide variety of application. We have described in detail the algorithm and the resulting objects produced using additive manufacturing processes.

The literature review highlighted how different applications impose different requirements for the design of cellular structures. Nevertheless, requirements which are repeated across all applications include the use of minimal material and the provision of maximum strength. The literature has also demonstrated how cells which emulate natural shapes are more desirable. Hence, using the primal and dual of cell complexes can address these requirements for producing cellular structures. Our approach offers advantages when compared to other approaches in terms of automation and configurability. This includes the user definition of parameters such as the inclusion (or not) of a skin, it gives a choice for producing open or closed cells for primal or dual cell structures, the adaptivity of a units cell’s size, and the porosity which is determined by strut’s thickness. Hence, this new approach allows for the structure to be configurable for different types of applications.

Current results have confirmed the advantages of our approach. We emphasize also that, the solution for delivering primal and dual cellular structure is an original contribution. Although, further testing must be conducted in order to verify and compare their actual mechanical properties. In addition, further challenges remain with regards to tessellating a volume boundary with a cell complex using different polyhedra, alternative data structures to navigate the structure’s cells and rendering the structure into 2D for 3D printing to reduce the printing time.