The properties of mechanical metamaterials strongly depend on the spatial arrangement of their constituent base materials. These properties can be controlled by changing the topology and geometry of the unit cell resulting in the purposeful design of cellular structures with advanced macroscopic mechanical and physical properties1,2,3. An emerging direction to design mechanical metamaterials for new functionalities and complex behavior is in the application of origami. The special property of origami to fold into almost any shape renders their application in the design of metamaterials a conceptually promising direction in which advanced mechanical and physical properties can be configured based on the specific geometries a structure exhibits during the folding motion. Possible applications range across many scientific and engineering domains, involving metamaterials with negative Poisson’s ratios4,5, metamaterials with bistable and self-locking properties5,6,7,8, stacked9,10,11 and multistable metamaterial sheets8,12, reconfigurable prismatic metamaterials13,14 and origami-inspired tube assemblages15,16. While origami provided essential principles to realize these applications, the complex relations between crease pattern geometry and folding kinematics make the intuitive design of crease patterns difficult and confined to a set of well-studied patterns17. In response, literature reports on a series of efforts to develop computational approaches to ease the design of crease patterns. Despite their successes, these approaches either solely address shape matching without guaranteeing rigid foldability18 or target artistic origami19, are limited to a set of well-studied patterns and vertex degrees20,21,22, or incur considerable computational costs23. Recent publications attempt to make the computational design process more efficient and intuitive by subsequentially extending a crease pattern with primitives, but are limited to quadrilateral patterns24 and discrete sector angles25 leaving most origami patterns inaccessible for possible applications in the design of metamaterials.

Here, to enable design practitioners and researchers alike to explore the potential of origami for the design of metamaterials without restrictions to facet or vertex types, we present a computational approach for the design of origami mechanisms and tessellations of arbitrary size and complexity. We construct origami mechanisms incrementally and present a generalized approach to algorithmically design rigidly foldable origami structures with a single kinematic degree of freedom. Compared with existing methods20,21,22,23,24,25, the approach offers significantly greater versatility in constructing origami structures, thus providing a universal tool for the discovery and analysis of rigidly foldable structures. To achieve this, we build on the Principle of Three Units26 (PTU), which defines generalized conditions for rigid foldability of degree-n vertices. Since the PTU also provides a simple rule how to generate rigidly foldable crease patterns, it was successfully applied to generate novel origami patterns using a graph-based representation and rule-based graph rewriting system27. Here, we expand that approach to quadrilateral facets, generic three-dimensional panel-hinge assemblages, and their tessellations, while significantly improving the algorithmic capabilities. To allow the algorithmic design of origami structures we introduce four algorithmic operations, involving expansion, quadrilateral-closing, translating, mirroring, and gluing. The operations are intercompatible and are used here to define the more complicated layer adding, extruding, and tessellation procedures, which are then applied to expediently generate various origami structures of considerable complexity.

Results and discussion

Principle of Three Units

To introduce the PTU26, we consider an origami vertex of degree 4, as shown in Fig. 1a, where all sector angles α and the dihedral angle ρ1 are known and the remaining dihedral angles ρ2–4 are to be calculated. We start by combining the sectors between creases with unknown dihedral angles, resulting in three “units” (marked in blue in Fig. 1a) whose unit angles U1–3 are directly calculated following the procedure in Supplementary Note 1. Then, by applying the spherical law of cosines in the spherical triangle spanned by U1–3 we obtain the angles θ1–3 based on which the remaining dihedral angles are calculated. The procedure of dividing a vertex into three units to determine unknown dihedral angles can be applied to any vertex of degree n ≥ 4 where n − 3 dihedral angles are known. Furthermore, the resulting dihedral angles can be used to calculate further dihedral angles at other vertices. Based on these observations26, the kinematics of a crease pattern are obtained by starting from a single crease with known dihedral angle and then iterating, applying the PTU wherever possible, until the kinematics of the whole pattern is determined and all vertices are evaluated. We illustrate the procedure on an example (Fig. 1b) in which each edge in a directed acyclic graph represents a crease line and proscribes the kinematic dependencies between vertices. By starting at the source vertex with known output dihedral angle, the direct successor of the source vertex can be evaluated since all of its sector angles and all but three dihedral angles are known. The evaluation process proceeds for the remaining vertices under the requirement that the kinematic dependencies are acyclic such that the kinematics of a vertex are calculated directly, once all of its direct predecessor vertices have been evaluated. The process ends when all dihedral angles are known and the boundary vertices (the three vertices without outputs in Fig. 1b) are evaluated. The representation of crease patterns as directed acyclic graphs that we refer to as crease pattern graphs is fundamental to our work and is discussed in Supplementary Notes 1 and 2 in more detail. Based on the graph in Fig. 1b, we construct the crease pattern faces (Fig. 1c), as well as calculate all vertex positions in the folded configuration (Fig. 1d). Obtaining the folding kinematics using the evaluation procedure is computationally inexpensive as the cost is only linear in the number of vertices. Moreover, the computational cost is independent of the folding state and compared with methods that involve solving linearized systems28 the dependence on solver convergence is eliminated as the exact solution is found directly.

Fig. 1: Using the Principle of Three Units (PTU) for analyzing and creating origami crease patterns.
figure 1

a Notational convention for angles. Dihedral angles ρ are positive for valley folds and negative for mountain folds. b Sample crease pattern graph with three interior vertices, c Corresponding crease pattern, d Unfolded and folded configuration of the crease pattern. e Folded configurations of the same crease pattern as in Fig. 1b–d folded along different kinematic paths. f Generic design procedure based on the proposed algorithmic approach. g Sample crease pattern graph with 392 interior vertices and folded configuration of the corresponding crease pattern. The graph also contains auxiliary vertices which connect boundary vertices to form boundary faces (leading to boundary vertices having two outputs). Auxiliary vertices only control the shape of the boundary faces and have no impact on the folding kinematics (for further details see Supplementary Note 1).

We note that it is not required to provide a valid mountain-valley assignment to the creases beforehand. Instead, for each internal vertex, the PTU gives two admissible combinations of dihedral angles of its output edges, which can be chosen from26. Therefore, each internal vertex doubles the number of available kinematic paths or possibilities to fold the unfolded origami. Once folding is initiated along a kinematic path, the structure has exactly one kinematic degree of freedom. This is illustrated in Fig. 1e and Supplementary Movie 1 (which also contains the folding of all patterns presented in this work) where the pattern from the example in Fig. 1b with three internal vertices is folded along the remaining 23 − 1 = 7 kinematic paths. In general, the number of kinematic paths of a pattern with n interior vertices has an upper bound of 2n, and can be calculated as explained in Supplementary Note 2.5.

A generic procedure corresponding to all aspects of our approach is shown in Fig. 1f. The design of origami starts with an initial graph, which is a single undirected edge representing a simple fold, and all necessary design-related information. Next, any of the four algorithmic operations or procedures that are discussed in the remainder of this work are applied to incrementally generate origami structures. Afterwards, the faces are constructed and the resulting kinematics based is obtained using the PTU. The design is evaluated according to the design requirements or an objective function and to provide guidance for the next iteration step. The evaluation according to the design requirements, as well the guidance for the next iteration step, can be performed manually or as a part of an automated optimization-based loop, both of which are exemplified in this work.

A more complex pattern containing 392 internal vertices in which vertices of degrees 4, 5, and 6 are involved is shown in Fig. 1g. The pattern is designed manually starting from a single directed edge. Then, whenever a vertex has no outputs, it is expanded with three outputs. These can connect either to an existing or to a new vertex. We refer to such a step as expansion operation. As locations of vertices affect sector angles and edge lengths, they are used to adjust the folding kinematics until the desired behavior of the pattern is obtained. The design is finalized by defining faces between the edges (for further details see Supplementary Note 2.6).

Optimization and automated generation of crease patterns

However, the relations between the locations of vertices and the resulting folding kinematics of the origami are nontrivial, making the manual process used to design the pattern in Fig. 1g tedious. This renders optimization23 an attractive approach to find the required vertex locations and the information-rich graph-based representation can be used to make the optimization efficient if only limited regions of a pattern are considered (see Supplementary Note 3). We show this in Fig. 2a where the vertex marked in blue (“mobile vertex”) is to be moved such that the vertex marked with a circle (“target vertex”) reaches a predefined point in the folded configuration. When the mobile vertex is moved, the sector angle configurations of its neighbors are changed. Accordingly, only its immediate predecessors and all of their successors are affected by that movement, Conversely, only the predecessors of a vertex can influence its position. Thus, only the vertices marked in green need to be reevaluated to obtain the new position of the target vertex after the mobile vertex is moved. Figure 2b shows an example of crease pattern optimization in which the target vertex needs to be located in the desired position after folding. Figure 2c shows another example of crease pattern optimization in which the 317 unit cells are optimized subsequently to match the “elephant curve”29 (see Supplementary Note 3.4). By extending the optimization approach, we also automatically generate patterns that fulfill predefined tasks (see Supplementary Note 4). Adding three outgoing creases to a boundary vertex or moving it along its incoming crease (if there is exactly one) does not affect other vertices (Fig. 2d). Such operations are repeatedly applied to automatically design the pattern shown in Fig. 2e to approximate the curve of a seam on a tennis ball. The pattern is based on 38 points sampled from a curve representing such a shape (see Supplementary Note 4.7).

Fig. 2: Optimization and automated generation of crease patterns.
figure 2

a Optimization domain definition in terms of vertices and their dependencies. b Crease pattern graph and folded configuration of a simple origami before and after optimization. The goal of the optimization problem is to place the mobile vertices such that the target vertex reaches the target point in the folded configuration. c Pattern that was optimized sequentially to match the shape of an elephant in its folded configuration. Crease pattern graph defined in terms of unit cells before (grey) and after (black) optimization. d Sample crease pattern graph with folded configuration before and after expansion. The goal of the expansion is to reach the point marked in red. e Crease pattern graph and folded configuration of corresponding crease pattern that was subsequently extended to approach the shape of the seam on a tennis ball in the folded configuration. The crease pattern graph is shown using the vertex locations in the deformed configuration (the graph is shown as seen from the top view). Auxiliary vertices are shown in this graph.

Quadrilateral patterns

The set of reachable patterns can be further extended by considering quadrilateral facets. Considering, for example, the general case shown in Fig. 3a, the two collinear edges marked with ρ1 and ρ2 do not necessarily have an identical dihedral angle for arbitrary dihedral angles ρin. However, if Kawasaki’s condition holds at all vertices, the sector angle α can be calculated such that the dihedral angles ρ1 and ρ2 are identical for any ρin30. In that case, the face to the right of the edge marked with ρ1 always coincides with the face to the left of the edge marked with ρ2 allowing to close the quadrilateral and arbitrarily choose the closing edge such that it is an input to vertex A. We refer to such an operation (Fig. 3b) as quadrilateral-closing operation (see Supplementary Note 5). To be able to apply the operation, Kawasaki’s condition must be fulfilled at all vertices and accordingly, no sector angles may be changed after the application.

Fig. 3: Generating quadrilateral patterns.
figure 3

a Sample crease pattern graph. Selected relevant dihedral and sector angles are marked. b Application of the quadrilateral-closing operation. c Adding layers to a pattern (the shown example procedure generates the Miura-Ori pattern) by expanding vertices and applying the quadrilateral-closing operation. dg Crease pattern graphs and folded configurations various patterns: d Yoshimura’s pattern, e Huffman’s grid (auxiliary vertices are shown), f Square twist pattern, and g Waterbomb pattern. h Crease pattern graph of the extruded strip with constant and varying layer heights. i Crease pattern graph and folded configuration of a sample pattern obtained by irregular extrusion of strip.

To build more complex patterns using the quadrilateral-closing operation we define a layer-adding procedure, an application of which is illustrated in Fig. 3c. The procedure initiates by first defining a seed layer, which is a strip-like crease pattern graph in which each interior vertex has one successor on either side of the strip and one successor that is an interior vertex. Next, we expand the first boundary vertex on either side (marked in black) and apply the quadrilateral-closing rule repeatedly to add another layer. By repeatedly using the layer-adding procedure, we obtain crease pattern graphs representing a quadrilateral pattern. By choosing a suitable seed layer and expansion parameters for the first top vertex (black in Fig. 3c), we build patterns such as those shown in Fig. 3d–f and as 3D printed prototypes in Supplementary Figs. 13, respectively. Although the layer-adding procedure is similar to existing methods24,25,30, it is not restricted to discrete sector angles and guarantees flat foldability. Furthermore, the procedure is not restricted by an underlying grid but is versatile as vertices can be added or removed between adding the layers. The layers can also vary in length.

Based on the quadrilateral-closing operation, we formulate the extruding procedure to approximate simple surfaces. As discussed in Supplementary Note 5, origami strips whose folded shape approaches a two-dimensional piecewise linear curve can be directly obtained from the geometry of that curve. By using such a strip as seed layer and repeatedly applying the layer-adding procedure, a quadrilateral mesh with parallel layers as shown in Fig. 3h is obtained. If the layer heights are identical, the folded configuration of such a pattern approximates an extrusion surface of the original piecewise linear curve. If, however, the layer heights vary, the cross-sectional shape can be controlled with a continuous variable throughout the extrusion, as shown in Fig. 3i and Supplementary Note 5.6.

Tessellations and combinations of patterns

Next, we present operations that enable the generation and analysis of kirigami patterns and three-dimensional structures. We define the mirroring operation (Fig. 4a) that mirrors a part of or a complete origami about a plane defined by three vertices. The operation results in an origami structure where the original and the mirrored origamis are connected at three or more vertices and the property of having a single kinematic degree of freedom is maintained. Similarly, we define the translating operation (Fig. 4b) in which an origami is copied by a translation vector between two vertices and connected to the original origami. This operation is only allowed if the two origamis are connected at three or more vertices. An example of a structure reachable with this operation is shown in Fig. 4e. To preserve the rigid foldability of the resulting origami, interior vertices can only be mirrored or translated if either all or no direct successors are involved as well. The two operations enable us to generate and analyze a multitude of origami-based structures. For example, kirigami patterns can be obtained by choosing mirroring vertices that form a line in the unfolded configuration, as shown in Fig. 4d. Any other choice of mirror vertices results in a stacked unfolded configuration. Furthermore, interesting tessellations can be obtained by choosing two sets of three mirror vertices and alternatingly mirroring one set about the other, as illustrated in Fig. 4e. This procedure we refer to as the tessellating procedure. Repetition of the procedure results in structures like those shown in Fig. 4f–i, Supplementary Fig. 4 and Supplementary Movie 2 (see Supplementary Note 6 for further details). Figure 4f uses two sets of mirror vertices that do not correspond to parallel mirror planes, resulting in a rotational symmetry. Figure 4g–i are obtained by first building a planar base layer using quadrilateral-closing, mirroring, and translating operations. The base layer is then stacked using the scheme shown in Fig. 4e.

Fig. 4: Mirroring, translating, and gluing of crease patterns.
figure 4

a Mirroring operation. Crease pattern graph (auxiliary vertices shown) with marked mirror vertices and folded configuration of corresponding crease pattern before and after the application of the mirror operation. b Translating operation. Crease pattern graph (with auxiliary vertices) with marked translation vector (defined by the two connected vertices) and folded configuration after application of the translation operation. c Example structure obtained by translating operation. d Example (kirigami) structure obtained by mirroring operation where the mirror vertices form a line. e Scheme to tessellate patterns using the mirroring operation. f Example structure obtained with scheme in Fig. 4e with non-parallel mirror planes. g Example structure obtained by applying the scheme in Fig. 4e in two directions. h Structure obtained by applying the scheme in Fig. 4e on the square twist pattern. i Tessellation obtained by repeated application of the mirroring and translating operation. The structure belongs to a well-documented family4. j Gluing operation. Unfolded configuration of two crease patterns before application of the operation, unfolded and folded configuration after application of the gluing operation. k Example structure obtained by repeated application of the gluing operation. l Example structure obtained by the application of quadrilateral-closing, mirroring and gluing operation.

Finally, we define the gluing operation that allows for uniting two origami patterns that were designed independently based on the operations presented so far. We select any two creases in such an origami that meet at the same vertex and do not border a common face as a gluing interface. We now glue another origami to this one by connecting the two boundary edges adjacent to its source vertex to these two edges, as illustrated in Fig. 4j. As shown in Supplementary Note 7, once the position of the connecting vertex and the directions of the connecting creases are known, the dihedral angle at the source vertex of the attached origami can be calculated directly. Based on this, the folded configuration of the attached origami can be calculated by repeatedly using the PTU. An example for a structure obtained by repeatedly applying the gluing operation is shown in Fig. 4k.

The gluing operation can also be applied repeatedly to the results of previous gluing operations to create complex stacked structures, or to glue several origamis to the same two creases of one origami. Following the example in Fig. 4j, the initial configurations of the two united origamis is not necessarily flat. Therefore, the gluing operation empowers to also design and analyze generic panel-hinge assemblages, such as the one shown in Fig. 4l.


In summary, the presented approach provides researchers and design practitioners with powerful tools to algorithmically design single degree of freedom origami mechanisms and tessellations as an inspiration for the design of metamaterials for novel applications. The approach is computationally inexpensive, generalized for degree-n vertices and rigid foldability, and has demonstrated its capability to generate origami structures and tessellations of considerable complexity. All operations presented in this work, involving expansion, quadrilateral-closing, translating, mirroring, and gluing operations, are intercompatible and can be considered as algorithmic primitives to design more complex procedures. We use this to define the layer-adding, extruding, and tessellating procedures to generate complex origami structures as those illustrated in Figs. 3d–g, 4f–i, and l. The application of the operations and procedures in combination with optimization allows not only to define the architecture of a structure, but also adjust its kinematic properties to achieve a desired behavior. Due to the single degree of freedom activation, the resulting structures have great practical utility and can serve as a starting point in the design of origami-based metamaterials. Future developments could aim at eliminating the remaining restrictions by introducing a quadrilateral-closing operation that does not require that Kawasaki’s rule is satisfied. Also, analogous operations for faces with more than four edges could be introduced. The approach currently can only generate structures with a single kinematic degree of freedom, but could be extended to allow for several kinematic degrees of freedom. Future applications could further benefit from a systematic database from which patterns can be selected, modified, and combined using the operations defined here, as well as the capability to detect self-intersection or the combination with a framework for the analysis of nonrigid origami31,32 to enable the design of multistable structures8.


Prototyping and fabrication

The prototype in Supplementary Fig. 1 is manufactured from paper and adhesive film. First, two copies of each face were cut from the paper. Then, the faces were glued on both sides of the adhesive film in the arrangement of the crease pattern. The prototypes shown in Supplementary Figs. 24 and Supplementary Movie 2 are fabricated using a Stratasys Objet500 Connex3 inkjet-based, multi-material 3Dprinter. The printing materials for faces and crease lines are VeroWhite Plus and Agilus30Black, respectively.


All computations were implemented and carried out using MATLAB, involving the generation and editing of crease pattern graphs, automated creation of faces, editing of faces and the calculation of the folded configuration, as well as PTU which generalizes the conditions for rigid foldability of degree-n vertices. The folded configuration is obtained by repeatedly iterating through the crease pattern graph and, whenever possible, the PTU is used to calculate further dihedral angles, vertex locations and face normal. When such a calculation is possible and how it is executed is described in detail in Supplementary Notes 1 and 2. In all examples, the deformed configuration was validated by comparing all edge lengths and sector angles in the folded configuration with those in the unfolded configuration.

Crease pattern optimization

The optimizations were carried out using MATLAB’s implementation of the interior-point method. During each objective function evaluation, the mobile vertices are moved, affected sector angles and edge lengths are recalculated, and all vertices that are affected by the movement of the mobile vertices that affect the target vertex are re-evaluated. The optimization is terminated if either the objective function reaches a value below 10−4 or after 200 objective function evaluations. The process and the presented examples are explained in detail in Supplementary Information Sec. 3.

Crease pattern generation

The examples presented in Fig. 2d–e were obtained with a two-step process. First, a number of possibilities for the expansion of the pattern are analyzed using purely geometric calculations, and afterwards the interior-point optimization in MATLAB is applied to find the values for the geometric parameters relevant for the expansion. Based on this analysis, the best option is identified and applied to the origami. This process is explained in detail in Supplementary Note 4.

To apply the quadrilateral-closing operation, the calculation presented by Feng et al.30 is used to calculate the sector angles around the closing vertex as well as its mode. Since the conventions on the vertex modes differ, a short computation is required to convert between the convention used here and the one used by Feng et al.30 The algorithm is described in detail in Supplementary Note 5.

The patterns shown in Fig. 3d–g are based on known patterns. Some of them do not resemble patterns that consist exclusively of quadrilateral faces. These were obtained with the quadrilateral-closing operation by making one side of a quadrilateral face very short. The result are two degree-4 vertices with a very small distance between them such that they appear as degree-6 vertices in Fig. 3. The modelling of these patterns is discussed in detail in Supplementary Note 5.

The generation of the patterns shown in Fig. 4, as well as all the corresponding operations are documented in detail in Supplementary Notes 6 and 7.