Level surfaces
The level set method is a tool for representing a closed curve using a level set function, Φ. In two dimensions, the level set function takes negative values inside the curve and positive values outside. The level set method can be expanded to three dimensions, whereby the level set function is used to represent a closed surface and takes negative values inside the surface and positive values outside. Values that lie directly on the surface take the value zero and form the zero level set. Using this method, Φ is defined at every point in a space, not just on the surface, leading to the creation of a 3D scalar field. At each point, the function specifies a scalar value which indicates whether the point is inside, outside, or on the surface:
$$\Phi \left( {x,y,z} \right) - {\text{C}} = \left\{ {\begin{array}{ll} <\!{0,} &\quad {{\text{inside}}} \\ {0,} &\quad {{\text{on}}} \\>\!{0,} &\quad {{\text{outside.}}} \\ \end{array} } \right.$$
(1)
For example, a sphere is represented implicitly by the zero level set of the algebraic function:
$${\Phi _{{\text{Sphere}}}}={x^2}+{y^2}+{z^2} - {r^2}$$
(2)
where r is the radius of the sphere. Figure 2 displays a two-dimensional scalar field for Φ
Sphere at z = 0, with r = 3.5 and within the bounds x = y = [–4, 4]. The surface of the sphere is constructed on the zero level set of Φ
Sphere; that is, everywhere Φ
Sphere = 0. All of the points inside of the surface have negative values, while all of the points outside of the surface are positive.
The gyroid surface
Schoen identified gyroid surfaces as belonging to a family known as triply periodic minimal surfaces [20]. The gyroid can be described implicitly, to the first order of approximation, by the nodal equation [27]:
$${\Phi _G}=\sin \left( {Nx} \right)\cos \left( {Ny} \right)+\sin \left( {Nz} \right)\cos \left( {Nx} \right)+\sin \left( {Ny} \right)\cos \left( {Nz} \right) - C.$$
(3)
The gyroid surface is only truly minimizing when the level constant, C, is zero. In this case, the mean curvature everywhere on the surface becomes zero. With non-zero values of C, the mean curvature also becomes non-zero but remains constant over the entire surface. Using this approximation, the mean curvature loses its constancy [28] but such an effect bears no consequence in the development of TE scaffolds. Figure 3 displays a two-dimensional scalar field for Φ
G
at z = 0, with C = 0.67, N = 0.67π and within the bounds x = y = [−4, 4]. The surface of the gyroid is constructed on the zero level set, Φ
G
= 0.
Combining implicit surfaces
Boolean operations can be used to combine two or more scalar fields. For example, the sphere in Fig. 2 can be made porous with pore architecture derived from the gyroid in Fig. 3 by taking the maximum scalar value at each point and reconstructing the surface along the new zero level set (Fig. 4):
$${\Phi _{{\text{Spher}}{{\text{e}}_G}}}=\max \left( {{\Phi _{{\text{Sphere}}}},~{\Phi _G}} \right).$$
(4)
Figure 5 illustrates the process of combining surfaces using scalar fields in three dimensions: (A) a sphere with radius = 3.5 [analogous to Fig. 2]; (B) a gyroid surface with its inside colored red and its outside colored blue [analogous to Fig. 3]; (C) an overlay of a gyroid surface and a sphere; (D) a sphere partitioned into two separate phases by a gyroid surface; (E) a cutaway of that partitioned sphere at z = 0 [analogous to Fig. 4]; and (F) a sphere with a gyroid pore architecture after the blue phase is voided. This could be done with virtually any shape implant, including the arbitrary shape of a defect site-specific scaffold.
Signed distance fields for arbitrarily-shaped objects
The object to be made porous, Φobject, can be a shape defined by an implicit function (such as a sphere, cylinder, ellipsoid, etc.), but this is not a requirement. It is possible to use an arbitrarily-shaped object, such as CT-derived bone anatomy. Since there is no governing equation to describe the surface of an arbitrarily-shaped object, the scalar field must be determined manually. In this case, we implemented a custom algorithm in MATLAB® (MathWorks, Natick, MA) to calculate the signed distance field of a polygonal mesh. This algorithm iterates through every point in a bounded space and determines its distance to the surface, as well as whether the point is inside, outside, or on the surface [29]. Points inside of the surface are assigned negative distance values, while points outside of the surface remain positive and points on the surface are equal to zero by definition. The surface of the object which was discretely defined by a polygonal mesh becomes implicitly described by the zero level set of its signed distance field.
The signed distance field is a special case of a scalar field where each value gives the exact geometric distance to the zero level set. This is different than the scalar fields described in Sects. 2.1, 2.2, and 2.3 which give the algebraic distance to the zero level set. However, since both types of scalar fields capture their surfaces implicitly as zero level sets, they can be used interchangeably within the methods described here.
Modulating the gyroid architecture
The period of the gyroid surface can be modulated analogously to a simple sine or cosine wave. For example, with a period coefficient N = 2π, the gyroid surface is periodic in all three directions with a period, or unit side length, of 1. By scaling the period, the size and number of pores can be tailored.
The gyroid can be further modulated by changing the level constant, C. When C = 0, the surface divides space into two congruent domains, each with a 50% volume fraction of the space. By adding or subtracting a non-zero constant, C, from the scalar field, the zero level set is shifted and porosities ranging from approximately 2–98% can be obtained. Figure 6 demonstrates how varying C changes the geometry and porosity, n, of the gyroid structure.
Porosity, pore size, and strut size
Porosity, n, is expressed as a decimal fraction in terms of the solid volume, V
S, and the total volume, V
T, where the total volume constitutes the sum of the solid and porous volumes:
$$n~=\left( {1 - \frac{{{V_{\text{S}}}}}{{{V_{\text{T}}}}}} \right).$$
(5)
Another important parameter for describing the gyroid is the ratio of the pore dimension, d
p, to the strut dimension, d
s, and is represented by ξ:
$$\xi =\frac{{{d_{\text{p}}}}}{{{d_{\text{s}}}}}.$$
(6)
This ratio is of particular interest, because like porosity, it is a function of the level constant, C, independent of the period coefficient, N, which makes it easy to draw direct relationships between the implicit equation and the resultant geometry.
In the absence of a closed-form solution, these dimensions were determined by virtual measurements. The pore and strut dimensions were measured along the space diagonal [1 1 1] of a unit cell of the porous gyroid structure (Fig. 7). The unit cell was constructed by installing the gyroid architecture with N = 2π in a unit cube with bounds x = y = z = [0, 1] and level constant, C
n
, using the level set method previously described. To achieve high accuracy, a grid size of 749 × 749 × 749 was used. A cubic grid with odd dimensions is required to have scalar values that lie directly on the space diagonal.
The marching cube algorithm was used to extract a polygonal mesh of the isosurface from the scalar field [30]. For porosity calculations, the solid volume is the volume enclosed by the polygonal mesh and was calculated using the divergence theorem [31], while the total volume is equal to the unit side length cubed.
Computation of parameters
Using a polynomial fit (R
2 = 1.0000), a direct relationship is drawn between the level constant, C, and porosity (as a decimal fraction), n (Fig. 8):
$$C=0.7864{n^3} - 1.1798{n^2} - 2.5259n+1.4597.$$
(7)
Alternatively, the level constant can be calculated from the ratio of the pore dimension to the strut dimension, ξ (R
2 = 0.9996; Fig. 8):
$$C=~ - 0.0006{\xi ^5}+0.0162{\xi ^4} - 0.1722{\xi ^3}+0.9142{\xi ^2} - 2.5329\xi +1.7889.$$
(8)
Once the level constant has been determined, it can be used to help calculate the appropriate period coefficient, N. First, the level constant is related to the pore and strut dimensions (independently) for the period coefficient, N
0 = 2π (Fig. 9). The following models give the pore and strut dimensions, respectively, as a function of C with N
0 = 2π (both R
2 = 0.9999):
$$d_{\text{p}}^{2\pi }=~ - 11.7311{C^5} - 0.1307{C^4} - 1.7987{C^3}+0.2070{C^2} - 186.9928C+433.0114$$
(9)
$$d_{\text{s}}^{2\pi }=~11.7311{C^5} - 0.0466{C^4}+1.7987{C^3}+0.0175{C^2}+186.9928C+433.0937.$$
(10)
The pore and strut dimensions scale linearly by N. Therefore, the output of either model can be related to the appropriate desired value, d
p or d
s, to calculate a scale factor, γ:
$$\gamma =\frac{{d_{\text{p}}^{2\pi }}}{{{d_{\text{p}}}}}=\frac{{d_{\text{s}}^{2\pi }}}{{{d_{\text{s}}}}}$$
(11)
which can then be used to determine the proper period coefficient, N:
$$N=~\gamma {N_0}=~\gamma 2\pi .$$
(12)
To fully define the gyroid architecture, two of the following three input parameters must be specified: pore size, strut size, and porosity.