A minimal surface is the surface of minimal area between any given boundaries. In nature such shapes result from an equilibrium of homogeneous tension, e.g. in a soap film.

Minimal surfaces have a constant mean curvature of zero, i.e. the sum of the principal curvatures at each point is zero. Particularly fascinating are minimal surfaces that have a crystalline structure, in the sense of repeating themselves in three dimensions, in other words being triply periodic.

Many triply periodic minimal surfaces are known. The first examples of TPMS were the surfaces described by Schwarz in 1865, followed by a surface described by his student Neovius in 1883. In 1970 Alan Schoen, a then NASA scientist, described 12 more TPMS, and in 1989 H. Karcher proved their existence.

My research into grid structures with the goal of simplifying fabrication through repetitive elements prompted an exploration of TPMS. The highly symmetrical and optimised physical properties of a TPMS, in particular the Gyroid surface, inspired my studio proposal, Minimal Matters.

The gyroid is an infinitely connected periodic minimal surface discovered by Schoen in 1970. It has three-fold rotational symmetry but no embedded straight lines or mirror symmetries.

The boundary of the surface patch is based on the six faces of a cube. Eight of the surface patch forms the cubic unit cell of a Gyroid.

For every patch formed by the six edges, only three of them is connected with the surrounding patches.

Note that the cube faces are not symmetry planes. There is a C3 symmetry axis along the cube diagonal from the upper right corner when repeating the cubic unit cell.

Curiously, like some other triply periodic minimal surfaces, the gyroid surface can be trigonometrically approximated by a short equation:

**cos(x)sin(y)+cos(y)sin(z)+cos(z)sin(x)=0**

Using Grasshopper and the ‘Iso Surface’ component of Millipede, many TPMS can be generated by finding the result of it’s implicit equation.

Standard F(x,y,z) functions of minimal surfaces are defined to determine the shapes within a bounding box. The resulting points form a mesh that describes the geometry.

- A cube of points are constructed via a domain and fed into a function. Inputs of standard minimal surfaces are used as the equation.
- The resulting function values are plugged into Millipede’s Isosurface component.
- The bounding box sets up the restrictions for the geometry.
- Xres, Yres, Zres [Integer]: The resolution of the three dimensional grid.
- Isovalue: The ‘IsoValue’ input generates the surface in shells, with zero being the outermost shell, and moving inward.
- Merge: If true the resulting mesh will have its coinciding vertices fused and will look smoother (continuous, not faceted)

The above diagrams show Triply Periodic Minimal surfaces generated from their implicit mathematical equations. The functions are plotted with a domain of negative and positive Pi. By adjusting the domain to 0.5, the surface patch can be generated.

Many TPMS can best be understood and constructed in terms of fundamental regions (or surface patches) bounded by mirror symmetry planes. For example, the fundamental region formed in the kaleidoscopic cell of a Schwarz P surface is a quadrilateral in a tetrahedron, which 1 /48 of a cube (shown below left). Four of which create the surface patch. The right image shows a cubic unit cell, comprising eight of the surface patch.

Schoen’s batwing surface has the quadrilateral tetrahedron (1/48 of a cube) as it’s kaleidoscopic cell, with a C2 symmetry axis. As shown in the evolution diagram below, the appearance of two fundamental regions is the source of the name ‘batwing’. Twelve of the fundamental regions form the cubic unit cell; however this is still only 1/8 of the complete minimal surface lattice cell.

Thank you so much for your post, it helps me a lot in modelling making and design! By any chance, may I have known about the function of Schoen’s Pa (Batwing) Surface?

Hi Yuuko. Great to hear the post was useful. Unfortunately, it seems the batwing is a TPMS that cannot be trigonometrically approximated. I modelled instead using Rhino curves and a grasshopper script to relax the mesh, although the result was not truly minimal and caused issues for my asymptotic curve script. Happy to have a look for the files if it will be of any use to you. My email is sam.whitehead.1995@hotmail.co.uk. All the best