We present a general technique for achieving kinematic single degree of freedom (1DOF) origami-based mechanisms with thick rigid panels using synchronized offset rolling contact elements (SORCEs). We present general design analysis for planar and 3D relative motions between panels and show physically realized examples. The technique overcomes many of the limitations of previous approaches for thick rigidly foldable mechanisms.

## Introduction

Origami-inspired, origami-adapted, and origami-applied mechanisms have been used to realize a wide variety of deployable forms, ranging from space-based solar arrays [1] to arterial stents [2] to backpacks [3]. While the applications are quite diverse, most folding-based engineering designs begin with a concept that is fundamentally a zero-thickness mathematical model and then transform it so that it can be realized with nonzero thickness materials.

An origami mechanism—often represented by folded paper and often prototyped in paper—consists of *facets*, usually flexible and of negligible thickness, connected by *folds*, where the intended motion occurs. When translated into an engineering application, the facets are replaced by *panels*, which are commonly rigid and whose thickness is non-negligible. The folds that connect facets are replaced by *hinges*, which replicate the folding motion of the underlying origami mechanism, typically pure revolution motion about an axis that is at the position of the fold.

When the panels are rigid, the underlying origami mechanism must be *rigidly foldable*, meaning that facets of the fold pattern remain planar throughout the range of motion; all motion takes place along the hinges. While many zero-thickness origami mechanisms are theoretically rigidly foldable, e.g., the Miura-ori [4] and Yoshimura pattern [5], the introduction of non-negligible thickness into the model commonly breaks the kinematic behavior associated with the zero-thickness mechanisms.

A fundamental problem with thick rigidly foldable mechanisms is that if one simply “thickens” the panels of a zero-thickness mechanism, one almost immediately runs into problems with mechanical interference between pairs of panels; indeed, for mechanisms that fold flat (highly desirable for deployable structures), in the flat folded state, all of the panels would be coplanar (and thus, may be mutually interfering) in the stowed (flat-folded) state.

This issue has led to significant study of thick rigidly foldable mechanisms in recent years, and, in particular, of ways of adapting zero-thickness mechanisms so that they use nonzero-thickness panels but still exhibit the desirable motion of the zero-thickness form. There are now several distinct techniques for creating origami mechanisms from thick materials.

The simplest and most straightforward technique to avoid mechanical interference is to offset the fold hinges to top and bottom surfaces of the panels (placing valley folds on top, mountain folds on the bottom). This works perfectly well for linear chains of panels, but once one introduces one or more interior vertices (vertices entirely surrounded by panels) into the fold pattern, most such vertices (with a few exceptions) become bistable, existing only in the flat and fully folded state, but with no unstrained motion between them. To achieve kinematic motions, several improved approaches have been developed.

### Offset Hinges (OH).

Hoberman demonstrated a version of the Miura-ori based on laterally offsetting hinges in a way that preserves kinematic behavior across the range of motion [6]. However, this technique was only applicable to the symmetric bird's-foot vertex used in the Miura-ori fold pattern. More recently, Chen et al. showed a technique that generalizes the concept of vertically displacing hinges relative to the unfolded state and preserving kinematic behavior by careful choice of sector angles and panel thicknesses at each vertex [7]. She enumerated the possible vertex configurations for degree-4, −5, and −6 vertices. A challenge for this approach is that only a limited set of vertices support such mechanisms: for degree-4 vertices, for example, only flat-foldable vertices are allowed. Furthermore, in all of these examples, the relative hinge offsets (and thus relative panel thicknesses) are fully specified and dependent upon the specific sector angles; one cannot choose desired offsets arbitrarily.

### Sliding Hinges.

Trautz and Künstler showed sliding hinges (SH) that did generalize to various folding mechanisms [8]. The ability to slide panels laterally relative to one another can introduce sufficient degrees-of-freedom to accommodate offsetting the hinges to top and bottom surfaces. A challenge with this approach is that it introduces multiple degrees-of-freedom, and the amount of required sliding accumulates in complex ways that can still lead to mechanical interferences.

### Doubled Hinges (DH).

Hoberman also described a technique in which several of the hinges are split into two parallel or near-parallel hinges [9], which allows an entirely planar unfolded state and introduces offsets that allow panels to stack side-by-side in the folded form. This technique was generalized by Ku and Demaine, who described how to modify an arbitrary fold pattern to accommodate arbitrary offsets via such hinge-doubling [10]. A challenge of this approach is that because the number of folds is increased at each vertex, in general, in an intermediate state (between fully unfolded and fully flatly folded), there are extra degrees-of-freedom in the mechanism motion, and even with the extra degrees-of-freedom, there is not yet a guarantee of a continuous path in phase space from the unfolded to fully folded state for all possible arrangements of vertices.

### Embedded Zero-Thickness Surface (EZTS).

Tachi showed that for arbitrary rigidly foldable zero-thickness origami mechanisms, one can create a thick rigidly foldable mechanism that preserves the kinematics of the zero-thickness model by embedding the zero-thickness model within the thick panels and locating the axes of the hinges at the positions of the folds of the zero-thickness model [11]. For some mechanisms, some of the hinges can be located on top and bottom surfaces of the unfolded panels, while others must tilt diagonally from top to bottom, and usually, material must be trimmed away near the hinges. A challenge with this approach is that there can remain mechanical interferences to be dealt with, especially for fold angles close to $\xb1180\u2009deg$.

### Offset Panels (OP).

Edmonson et al. showed an approach that allows rigidly foldable motion and parallel stacking of panels in which the panels can be arbitrarily independently offset from one another [12], so long as the hinges (though not the panels) remain located at their positions in the zero-thickness model. Challenges of this approach are that many configurations require through-holes in nonadjacent panels to allow hinges to penetrate to the zero-thickness surface; the offsets can impart high stresses on hinges; and in the unfolded state, the fixed offsets give rise to a nonplanar surface.

### Membrane Hinges.

Zirbel et al. showed a technique for realizing thick origami mechanisms by introducing finite-width compliant membrane hinges (MH) that allowed for both flexing and incorporation of offsets between adjacent panels [13]. A challenge of this approach is that the required hinge width is difficult to predict a priori, and the extra compliance of the membrane hinges can give rise to unpredictable degrees-of-freedom.

In this work, we describe a new concept for thick rigidly foldable mechanisms: the synchronized-offset rolling-contact element (SORCE), along with a corresponding technique for designing thick rigidly foldable origami mechanisms that combines advantages of many of these techniques and avoids many of the disadvantages. Beginning from a rigidly foldable zero-thickness model, one can design a mechanism that:

accommodates panels of arbitrary thickness

begins with a planar unfolded state

ends with side-by-side parallel stacked panels in the fully folded state

preserves the kinematic motion of the zero-thickness model, including single-DOF motion.

We accomplish these goals by using *rolling contacts*, albeit ones designed to incorporate specific offsets between the panels in the fully folded state. The panel offsets vary as the mechanism transitions between the unfolded and folded states, and the relative rates of offset are *synchronized* between adjacent panels by the shapes of the contacting surfaces. Rolling contacts are, of course, well known in mechanical engineering—they are the basis of bearing joints. Most rolling contacts have involved circular or spherical cross sections, though more specialized configurations have been developed. We will show that it is possible to design rolling contact surfaces that give the precise offsets needed to realize thick rigidly foldable origami patterns. Furthermore, for certain configurations, it is possible to implement the rolling contacts as CORE (compliant rolling-contact element) joints [14], giving rise to complex thick-panel origami mechanisms that are monolithic and fully compliant, with all flexing remaining in the elastic domain. In this paper, we present the basic concept; we develop equations that allow one to design SORCE joints for arbitrary vertices and networks of panels and vertices; and we present two realized examples for individual vertices. We end by discussing avenues for future development.

## Concept

Consider an origami mechanism based on a zero-thickness model where we wish to replace the individual zero-thickness *facets* with non-negligible thickness *panels* in such a way that:

The motion of the panels approximates the motion of the facets in the zero-thickness model as it flexes from the unfolded state to the fully folded state (which, for purposes of discussion, we will take to be flat-folded).

During the motion, the panels are shifted from their zero-thickness positions so as to avoid mechanical interferences throughout the range of motion.

The offset panel technique of Edmonson et al. [12] accomplishes these goals by enabling the designer to independently specify fixed offsets for each panel in the flat-folded state, thereby ensuring that arbitrary thickness panels may be accommodated. Each panel is offset perpendicularly relative to its zero-thickness position. However, those offsets are fixed throughout the range of motion; so that in the unfolded state, they are also present. Thus, the panels are offset relative to one another in the unfolded state and do not lie in a common plane, which is often a desirable goal.

Ideally, in the unfolded state, all of the panels would be precisely aligned with their zero-thickness corresponding facets, with zero offset. In the flat-folded state, we want a nonzero offset, as illustrated in Fig. 1, which shows a representative degree-4 vertex in unfolded and flat-folded configurations.

Let us parameterize the desired motion on a variable $t\u2208[0,1]$, where *t* = 0 is the unfolded state, *t* = 1 is the fully folded state. Variable *t* is an arbitrary parameter, but throughout this analysis we will treat it as if it were a time variable describing the temporal evolution of the folding motion.

If we had total control over the panel motion, then we would ideally like to assign each *i*th panel an offset function $zi(t):[0,1]\u2192\mathbb{R}$ that varies continuously over the range of motion, as illustrated in Fig. 2. The offset function describes the perpendicular offset of the panel from the position of its zero-thickness facet at time *t*.

At the flat state, *t* = 0, we would have $zi(0)=0$, no offset, for each *i*. At the fully folded state, *t* = 1, we would have each $zi(1)$ equal to some nonzero value that allows the panels to stack without interference. Each $zi(t)$ would vary continuously (perhaps smoothly, perhaps monotonically) between those two values across the range of folding motion.

The fold angles, too, can be parameterized; for the *j*th fold of the zero-thickness model, we describe its fold angle by some function $\gamma j(t):[0,1]\u2192[0,\xb1\pi ]$, which parameterizes the fold angle on *t*. For flat-foldable vertices, we will have $\gamma j(1)=\xb1\pi $; for non-flat-foldable vertices, the final values will be some other, but definite, angle.

Consider now a plane that is perpendicular to one of the axes of the zero-thickness model and to the two panels adjacent to that axis, such as the cut-plane used in Fig. 3. Since the panel offsets are pure translation relative to the zero-thickness facets, any point in either panel that lies within the plane in the unfolded state must stay within that plane throughout the full range of motion. In addition, the fold angle between the two adjacent panels is the same as the fold angle between the corresponding two zero-thickness facets, i.e., $\gamma j(t)$. Thus, the complete desired motion of the two panels relative to the zero-thickness model, and more importantly, *relative to each other*, can be fully described by three parametric functions: the fold angle $\gamma j(t)$ between the panels and the two offset functions $zi(t)$ of the panels on either side of the joint. For a general joint and perpendicular plane, we will denote the offset function on the left by $zl(t)$ and the one on the right by $zr(t)$, as illustrated in Fig. 3.

Note that $zi(t)$ is a signed value that gives the offset relative to the zero-thickness facet in the facet's local coordinate system. In the flat-folded form, half of the facets are flipped upside down, and so their local coordinate systems have a local *z*-axis that points *downward*. Thus, for example, if we define the local coordinate system so that in Fig. 3(a), up is positive, then in Fig. 3(c), the local *z*-axis for the left panel points up, while the local *z*-axis for the right panel points *down*. Thus, in Fig. 3(c), $zl(1)$ and $zr(1)$ are both negative.

The offsets $zl(t)$ and $zr(t)$ are the *desired* perpendicular offsets of the panels from their corresponding zero-thickness facets. If we are given a particular rotational mechanism, though the values of $zl(t)$ and $zr(t)$ will be determined by the mechanism itself. The position of the right panel relative to the left is some combination of rotation (described by $\gamma (t)$) and translation; the translation can be described by an appropriate choice of $zl(t)$ and $zr(t)$.

The simplest mechanism to analyze is a pure revolute joint, as illustrated in Fig. 4. In this case, the offsets are both identically zero for all *t*; both panels remain centered on the zero-thickness facets throughout the range of motion.

Clearly, then, pure revolute joints would not work for a mechanism where we want the offsets to take on nonzero values over the range of motion. Fortunately, there are other forms of joint that can provide perpendicular panel offset along with rotation, and we now examine one of them.

## Circular CORE Joints

In a previous work, Cannon et al. introduced the compliant rolling-contact element mechanism [14], or CORE mechanism, which is based on the older notion of no-slip rolling contacts in which the nonslip condition is typically enforced by gear teeth. A circular rolling-contact joint has two circular contacts that roll against one another without slipping, and in such joints, the instantaneous center of rotation of the two surfaces varies with the motion of the joint. The kinematics of circular rolling contact joints have been analyzed by, e.g., Collins [15]; more recently, Cai noted that circular rolling contacts are suited to certain classes of folded plate structure [16]. Here, we examine whether a circular rolling-contact joint could provide the combination of rotation and relative offsets that would enable a thick rigid panel origami mechanism.

Figure 5 shows the configuration of two circular rolling contacts in an intermediate state, along with some additional construction lines.

where *r* is the radius of curvature of the circular edge of each panel.

*t*= 0 and go to constant nonzero values at

*t*= 1. However, in this particular case, they both go to the same value

*d*to be the common thickness of the four panels, then for the flat-folded configuration shown on the right, we should have

Instead of circular cross section, we could pick various other cross-sectional shapes, e.g., ellipses, hyperbolas, etc., and see what form of offset functions $zi(t)$ we wind up with, but even that is unlikely to prove fruitful. Equation (2) shows that the offset function depends directly upon the parameterized angle $\gamma (t)$. Since each sector angle is bounded by two different folds that will, in general, have two different angle parameterizations, we would be lucky indeed for both joints to give rise to the same offset function for their common panel.

Instead, what we would like to do is *choose* the offset function $zi(t)$ for each panel, then *solve for* the joint configuration that gives rise to the desired offset functions at all times *t*; in effect, we wish to find contact surfaces that synchronize all of the offset functions ${zi(t)}$ to our desired values.

## Synchronized-Offset Rolling Contacts

We now assume an arbitrary cross section for both contacts. We assume that the left contact surface is parameterized by a vector-valued function $sl(t):[0,1]\u2192\mathbb{R}2$ and the right contact surface is parameterized by $sr(t):[0,1]\u2192\mathbb{R}2$, where $sl(t)$ and $sr(t)$ are the points that are brought into contact at fold parameter *t*, as illustrated in Fig. 6. We fix the left contact to ground and locate the center of rotation of the zero-thickness fold at the origin (0, 0). For full generality, we assume that the initial point of contact between the two surfaces is at position $(s0,0)$ for some constant *s*_{0}, i.e., not necessarily at the origin.

*f*(

*s*), we denote by $f\u2032$ its derivative

Now we can enumerate the constraints that define the desired surface functions $sl(t)$ and $sr(t)$.

*t*. This gives rise to the

*nonsliding condition*

*tangency condition*

*rolling condition*

The combination of Eq. (14) and the rolling condition, Eq. (11), constitute a set of first-order differential equations that define the two surfaces $sl(t)$ and $sr(t)$.

*t*dependence for brevity), giving

Thus, for any arbitrary parameterization of the fold angle $\gamma (t)$ and the two offset functions $zl(t)$ and $zr(t)$, we can—at least in principle—solve for the surface functions $sl(t)$ and $sr(t)$ that, when used in a rolling contact, induce the adjacent panels to undergo the desired offsets synchronously as they rotate through the desired range of motion.

Let us now work out an example.

## A Degree-4 Vertex

*fold angle multiplier μ*is given by [17]

The two opposite fold angles of equal sign, *γ*_{2} and *γ*_{4}, are the *major fold angles*; the two opposite fold angles of opposite sign, *γ*_{1} and *γ*_{3}, are the *minor fold angles*.

*t*, i.e.,

*t*= 0, we must have

*i*th fold, we have

Figure 7 shows the four surfaces along with schematic representations of the panels on either side at four different values of the fold parameter *t*. For clarity, we label each panel with its corresponding sector angle *α _{i}* and each fold with its corresponding fold angle

*γ*(see Fig. 2).

_{i}If we join both surfaces (darker lines) to their corresponding panels to form monolithic elements, the resulting panels create rolling contacts that synchronize the offset shifts (relative to the zero-thickness model) with the fold angles. Each rolling contact is a single-degree-of-freedom (1DOF) joint, like a pure revolute joint; the kinematics of the rolling-contact vertex will therefore match the kinematics of the zero-thickness model, giving a 1DOF mechanism for this degree-4 vertex.

Several features of interest (or, perhaps, concern) are visible in the figure:

In two of the joints (

*γ*_{1}and*γ*_{3}), both contacting surfaces are strictly convex toward each other. That means that these joints could be realized as CORE joints.In the other two joints, however (

*γ*_{2}and*γ*_{4}), one of the surfaces has both convex and concave regions. From a design point of view, this is a weakness, as it complicates realization of a CORE joint architecture.In three of the joints (

*γ*_{1},*γ*_{2}, and*γ*_{4}), the contacting surfaces extend above or below the panel surfaces. These extensions arise directly from the required offsets, as we will presently see. In the case of*γ*_{2}and*γ*_{4}, this means that one of the panels will need to incorporate clearance holes to allow the penetration of the contact surface of its mating panel.While it is not immediately obvious from the figure, for

*γ*_{1}and*γ*_{3}, toward the end of the range of motion ($t\u21921$), rotation takes place about a point, rather than along rolling surfaces. While the contact is still nonsliding, over a range of*t*-values, the motion approaches that of a pure revolute joint, which would also be problematic to implement as a CORE joint.

So, while we have a solution for rolling contacts that gives a 1DOF mechanism with the desired offset behavior, it does present some challenges for practical implementation. However, we chose the fold angle functions ${\gamma i(t)}$ and the offset functions ${zi(t)}$ for this example rather arbitrarily. We have considerable freedom in our choice of functions. In Sec. 6, we will explore the freedom and constraints to choose these functions and show how to achieve better-behaved surface functions that still give the desired kinematic behavior.

## Design Considerations

We have considerable latitude in choosing the offset functions ${zi(t)}$; their values at the beginning and the end of motion are specified by panel planarity (at the beginning of motion) and parallel stacking (at the end of motion), but we can choose how they get from one state to the other. However, there are several considerations that will affect the functions we might choose.

### Monotonicity.

For many origami mechanisms, the fold angles will vary monotonically from 0 deg in the unfolded state to some nonzero value— $\xb1180\u2009deg$ for a flat-foldable pattern. However, there are technologically useful patterns in which some folds do not flex monotonically. An example is the central diagonal crease in a split-diagonal mountain/valley/mountain/valley (MVMV) twist, which increases from $0\u2009deg$ up to a maximum value, then declines again to $0\u2009deg$ as the mechanism continues to the flat-folded state.

A nonmonotonic fold angle function is problematic: not fatal, but significant, because of the one-to-one mapping between the fold angle $\gamma (t)$ and the position of the point of contact between adjacent panels. If one of the fold angles is nonmonotonic, then offset functions ${zl(t),zr(t)}$ for adjacent panels will need to be chosen so that the surface function positions ${sl(t),sr(t)}$ are equal for values of *t* that give the same fold angle.

### Beginning of motion.

*t*= 0, the two surface functions are given by

So we can adjust the lateral offset of the point of contact at flatness by choosing appropriately the slopes of the offset functions relative to that of the fold angle function.

### End of motion.

*t*= 1). For flat-foldable patterns, we will have $\gamma (1)=\xb1180\u2009deg$, which gives

This is a bit more interesting; it tells us that the lateral offsets of the ends of the surfaces are equal and opposite. (This also follows from the fact that in the flat-folded state, the two panels are $180\u2009deg$ flipped and pure *z*-translated from one another.)

It also tells us that the end of each surface extends vertically by the total amount of *z*-offset that is programmed for its panel, or, equivalently, at flat-folding that the point of contact between the surfaces lies in the zero-thickness plane. Since this point starts and ends in the zero-thickness plane, one might wonder if it always remains in that plane. It does not; for most choices of offset function, each point of contact will move in and out of that plane and then back in across the range of motion. This behavior can be seen in Fig. 7.

### Curvatures and Convexity.

As noted above, for at least some sets of offset functions, one (or both) of the surfaces can contain both convex and concave surfaces. If both surfaces are convex toward each other, then this permits a straightforward implementation of a CORE joint, and all of the associated robustness and maintenance of relative alignment that ensues. It is useful, then, to have a means of gauging when or whether double-convex surfaces arise, and how that can be ensured in the design.

*t*and negative if it curves to the right. We define the function $sign(\gamma i)=1$ if $\gamma i(t)>0$ (valley fold) and $sign(\gamma i)=\u22121$ if $\gamma i(t)<0$ (mountain fold). We then define the two

*convexity functions*

The convexity functions $cl(t)$ and $cr(t)$ are the surface function curvatures with the signs chosen so that a positive value for either surface corresponds to a surface that is convex toward its mating surface, independently of whether the fold is mountain or valley.

We now plot in Fig. 8 the convexity functions for both surfaces for all four joints for the surface functions defined in Eq. (28).

Both of the pathologies noted above are visible in the convexity plots: the divergence of curvatures near *t* = 1 and the negative curvature of one surface (corresponding to a concave surface).

Now that we have expressions for the convexities, though, we can relate these functions back to our choice of offset functions: the convexities $cl,i$ and $cr,i$ come from the surface functions $sl,i$ and $sr,i$ via Eq. (33), which depend on the fold angles and offset functions. The offset functions are pinned by their endpoints, but we are free to search for sets of functions that connect the various endpoints in such a way that the convexities are positive, finite, and generally well-behaved.

By then using variational calculus, we could find an optimal set of offset functions ${zi(t)}$ that meet their endpoint values and minimize this figure of merit.

Given the complexity inherent in Eq. (34), the variational analysis is going to be nontrivial. However, we want our functions to be relatively smooth, to minimize the worst-case curvature. This allows a strategy for finding a near-optimal solution numerically.

## Optimized Single-Vertex Surfaces

where $Bj(t)$ is the *j*th expansion polynomial. Choosing a degree-*n* expansion gives a total of 2*n* coefficients ${bi,j,bo,j}$ that can be optimized to minimize the figure of merit.

*n*= 3 and the following polynomials:

which correspond, respectively, to a bump (or divot) in the function at the beginning, middle, and end of the motion.

*ε*

## Physical Implementation: Degree-4 Vertex

We fabricated two thick-panel origami vertices to demonstrate implementation of the SORCE joints. The rolling contact surfaces and panels were 3D printed (Makerbot Replicator 2) as a single part for each sector of a vertex using polylactic acid (PLA) filament. The thickness of the panels for these two vertices was chosen to be 1.016 cm (0.4 in.). For the first vertex constructed, the rolling contact surface geometries from Sec. 7 were printed. A photo of these 3D printed joints is shown in Fig. 11. Three canvas bands were used to join each pair of rolling surfaces. These bands were arranged such that no net twisting moment would be introduced by any tension in the bands.

The first origami vertex constructed was the flat-foldable degree-4 vertex described in Sec. 5 with sector angles $(120\u2009deg,80\u2009deg,60\u2009deg,\u2009and\u2009100\u2009deg)$. The rolling joint contact pairs were assembled with the flexible bands and attached to their corresponding panels with an adhesive. Care was taken to ensure that the lateral offset *s*_{0} was properly aligned relative to the zero-thickness pattern for each joint pair; because *s*_{0} is nonzero for *γ*_{2} and *γ*_{4} (as can be seen in Fig. 10), the line of contact between the two surfaces is not collinear with the zero-thickness fold line. Nevertheless, the motion is kinematic and 1DOF (subject to minimal extension in the connecting bands). The progression of the motion of the vertex from a closed, folded position to an open, unfolded position is shown in Fig. 12.

This prototype exhibited a smooth folding and unfolding motion while using the rolling joints to create the panel offsets required in the folding.

## General Planar Trajectories

The key concept of the rolling-contact configuration described above is that restricting the displacements of the panels from their zero-thickness facets to be purely perpendicular to the facets ensures that relative motion between adjacent panels lies within the plane perpendicular to the fold between the corresponding facets. Relative planarity of adjacent facet motion means that we can “soak up” the varying spacing between adjacent panels as the panels rotate and translate relative to each other using rolling contacts that have translational symmetry in the direction of the fold.

Defining the motions by scalar offset functions ${zi(t)}$ ensures relative planarity, but does not take in all possible allowed relative motions of the panels. By broadening the description of relative panel motions, we can access a broader range of single-DOF origami mechanisms based on rolling contacts.

In particular, we can introduce time-varying gaps and other translational motions between the facets of the zero-thickness reference model, and, as long as the relative motion between every pair of panels lies within a plane perpendicular to their corresponding fold axis, we can absorb the additional relative motion into the surface functions and still achieve single-DOF kinematic motion.

Going forward, we will refer to the plane perpendicular to the zero-thickness fold as the *normal plane* of the fold.

We now assume two zero-thickness facets *F _{i}* and

*F*that both undergo some planar rigid-body motion, i.e., a combination of translation and/or rotation that all take place within the normal plane of the fold. To encompass full generality, we now allow both

_{j}*F*and

_{i}*F*to undergo their own independent planar motions relative to an arbitrary frame of reference, rather than (as we did in Sec. 4) working within the frame of reference of one of the zero-thickness facets.

_{j}*F*. Then, because the motion is planar rigid-body motion, $pi(t)$ can be written as

_{i}*F*

_{j}Once again, we assume rolling contact surface functions. Define $si,j(t)$ as the position at *t* = 0 of the point connected to facet *F _{i}* that touches its corresponding point on facet

*F*at time

_{j}*t*. Similarly, we define $sj,i(t)$ as the position at

*t*= 0 of the point connected to facet

*F*that touches its corresponding point on facet

_{j}*F*at time

_{i}*t*. These surface functions are illustrated in Fig. 13.

*2D contact equation*, which is that the two points touch at time

*t*

*2D rolling equation*, which is that the velocities of the two surface functions match when rotated to their orientations at time

*t*

which we can do because $Rj(t)$, being a 2D rotation, is nonsingular and therefore invertible.

*t*dependence for brevity)

Thus, $[Rj\u22121\xb7Ri]\u2032$ is invertible if and only if the derivative of its rotation angle (analogous to the relative fold angle $\gamma (t)$ of Sec. 4) is nonzero. If the derivative of the rotation angle vanishes, then the matrix $[Rj\u22121\xb7Ri]\u2032$ is not just singular; it is the zero matrix.

Equations (50) and (51) give the desired surface functions for planar-motion rolling contacts for arbitrary planar rigid-body motions for either facet.

That assumes that the derivative matrix $[Rj\u22121\xb7Ri]\u2032$ (and its counterpart, $[Ri\u22121\xb7Rj]\u2032$) do not vanish. If they do for some value *t* = *t*_{0}, then Eq. (47) cannot be solved by inverting the matrix. One of the two conditions must apply:

*The right side of Eq.**(47)**is nonzero*. Then there is no solution to Eq. (47). We say that a set of trajectories for which the left side is zero and the right side is nonzero is*ill-behaved*at time*t*_{0}.*The right side of Eq.**(47)**is zero*. Then Eq. (47) is satisfied for any function $si,j(t0)$ (since both sides of the equation vanish).

If both sides of the equation vanish at a particular time *t*_{0}, Eq. (50) is undefined, but it is often still possible to find solutions by taking limits as one approaches *t*_{0}. (It is not uncommon to encounter this situation at the endpoints of the motion, depending on the trajectory functions.) If both derivatives vanish but the limit of Eq. (50) (and counterpart) exists as $t\u2192t0$, we can take $si,j(t0)$ to be the limit value; if the limit does not exist, we also say the motion is *ill-behaved.* Any set of trajectories that is nowhere ill-behaved is *well-behaved*.

We summarize our result as follows:

Theorem 1. (Planar Rolling-Contact Theorem) *Given any collection of rigid objects undergoing independent arbitrary time-varying Euclidean motion in a plane, between every pair of objects, if the motion is well-behaved, there exists a pair of translationally symmetric surfaces on each pair of objects that form a rolling contact between the objects, where the axis of translational symmetry is normal to the plane*.

Said surfaces are given by the formulas in this section.

which now displays the symmetry between the two surface functions directly.

The theory in this section is quite general; we now apply it to a specific mechanism of practical interest.

## Offsets in Zero-Thickness Reference

There are various ways we could describe the additional relative motion supported by the planar rolling contact model. A particularly useful way is the following. For a given fold of a zero-thickness mechanism, we split the mechanism along the fold and introduce a general relative motion vector $d(t)$, which is the vector between the two halves of the split fold lying in the plane perpendicular to the fold, as illustrated in Fig. 14 (compare with Fig. 6(c)).

So, in addition to the panels being perpendicularly offset from their zero-thickness facets, we have introduced the additional offset $d(t)$ between the zero-thickness facets themselves.

*l*and

*r*as the subscripts for the left and right panels. From the inspection of Fig. 14, we have the following:

Note that both $d$ and $d\u2032$ appear in $sl$, but only $d\u2032$ appears in $sr$.

We can apply this concept to any vertex or collection of vertices that can be split in such a way that over the full range of folding motion, the offset $d(t)$ stays perpendicular to every split fold. An example is the symmetric bird's-foot vertex shown in Fig. 15.

We split the vertex along folds *γ*_{1} and *γ*_{3}, choosing the 3D offset vector $d(t)$ to be perpendicular to the plane containing both *γ*_{1} and *γ*_{3}.

We define the scalar function $d(t)\u2261||d(t)||$. Although the direction of $d(t)$ is prescribed by the symmetry of the pattern, we have considerable freedom in choosing *d*(*t*) in order to accommodate panel thicknesses.

*γ*

_{2}or

*γ*

_{4}. The surface functions at those folds will depend only upon the panel elevation functions to either side. For

*γ*

_{1}or

*γ*

_{3}, though, there will be a nonzero 2D offset vector that will enter into the surface functions according to Eqs. (56) and (57). For

*γ*

_{1}, we will have an offset

*γ*

_{3}, we will have

The utility of splitting a vertex (or entire crease pattern) is that it gives us an additional degree in freedom in choosing the zero-thickness reference planes and surface functions. For example, we can choose the zero-thickness reference plane for *γ*_{2} so that it lies between the two adjacent panels, and similarly for *γ*_{4}, then choose the scalar offset function *d*(*t*) so that panels *α*_{2} and *α*_{3} stack one atop the other in the fully folded form.

*i*th facet and then the following parameterizations:

The elevation functions $zi(t)$ and offset function *d*(*t*) must be 0 at *t* = 0 (so that the panels are coplanar when unfolded) and their values at *t* = 1 are chosen so that they stack neatly in the folded form. In between, we have complete freedom in choosing their functional form; for this example, we have chosen to make them linear with *t*. Figure 16 shows the surface functions and panel positions for four different values of *t* across the range of motion.

This choice of parameters gives a set of surface function pairs that gives the desired motion—all of the layers stack neatly in the fully folded state and are kinematic single-DOF in between, but there is a problem. The surfaces for fold *γ*_{3} have cusps in them and they overlap each other (at least in planar projection), which would make fabrication problematic.

However, we can choose different elevation and/or offset functions to give better behaved surfaces. We have considerable freedom in the choice of the ${zi(t)}$ and *d*(*t*); they need to hit certain values at their endpoints, but we can choose different functional forms to connect the endpoints, and different functions will give rise to different rolling-contact surfaces.

This gives the surface functions and motion illustrated in Fig. 17. Now all of the surfaces are smooth and convex toward one another.

But we can do even better than this. Instead of just picking various elevation and offset functions and seeing what the results are, we can actually choose specific rolling-contact configurations and then solve for the elevation and/or offset functions that give rise to them, as we now show.

## Solving for Offsets

Arguably, the most desirable configuration for a rolling-contact joint would be one with two matching circular surfaces, because the constant curvature results in constant stresses in a circular-CORE implementation and can be in static equilibrium at any position. Since, in the bird's-foot vertex, fold angles *γ*_{2} and *γ*_{4} are equal from symmetry, it would be desirable to make both of these joints have circular cross sections.

*γ*

_{2 }a circular-CORE joint, we must have

where *r* is half the thickness of the panel and the radius of the circular cross section.

Next, we would like to make *γ*_{3 }a circular-CORE joint as well. The problem is that we can no longer choose its surrounding elevation functions $z2(t)$ and $z3(t)$, since those are already fixed; instead, we can, at best, choose the panel offset function *d*(*t*) to give the relative motion of the two panels that induces circular-cross-section surfaces between them.

*γ*

_{3}to be a circular-CORE joint with no panel offset, we would have

where **I** is the 2 × 2 identity matrix.

(keeping in mind that all of the *γ _{i}s* are themselves functions of

*t*).

It would be wonderful if we could similarly force fold *γ*_{1} to be a circular-CORE joint, but we have now run out of functions to play with; for that joint, we get what we get. Fortunately, that joint, too, has nicely behaved surfaces. Using these values for the elevation and offset functions gives the surfaces and configurations shown in Fig. 18.

## Physical Implementation: Split Bird's-Foot Vertex

A second vertex, a bird's-foot vertex, with sector angles $(135\u2009deg,45\u2009deg,45\u2009deg,\u2009and\u2009135\u2009deg)$ was constructed with the computed surfaces shown in Fig. 18, i.e., incorporating offsets and a split in the vertex. A gap was introduced at the intersection of the zero thickness fold lines to prevent interference between adjacent panels during folding. The vertex is shown in a closed, folded position, an intermediate folding position, and an open, unfolded position in Fig. 19.

Like the first prototype, this exhibited a smooth folding and unfolding motion while using the rolling joints to create the panel offsets required in the folding. Furthermore, by making *γ*_{2} and *γ*_{4} to be circular-CORE joints, there is a symmetry that would allow an array of identical vertices to be configured to form a multivertex Miura-ori.

## General 3D Trajectories

Sections 4–12 assumed that for each panel pair, their relative motion lay in a common plane throughout the full range of motion. That requirement is not strictly necessary. As we show now, we can consider entirely general rigid-body motions in 3D and, under certain conditions, can find rolling-contact surface pairs between each pair of panels.

*F*. Then the trajectory can be written as

_{i}where now $Ri(t)$ is a time-varying 3 × 3 rotation matrix and $ri(t)$ is a time-varying translation three-vector.

Now consider two panels *F _{i}* and

*F*that are in contact with each other at time

_{j}*t*= 0, as illustrated in Fig. 20.

Now, as before, we will solve for the surfaces of rolling contact, but we no longer assume translational symmetry, and in fact, do not assume a priori that the contacting functions represent surfaces. Instead, imagine that we attach a wire to each of *F _{i}* and

*F*whose three-space shape is described by the parametric curves $si,j(t)$ and $sj,i(t)$ (which, however, we will continue to refer to as “surface functions”). As before, $si,j(t)$ represents the point at

_{j}*t*= 0 on the surface connected to panel

*F*that contacts the surface on panel

_{i}*F*at time

_{j}*t*, and vice versa. We also assume that the surface functions form a rolling-contact pair: that is, they must satisfy a contact condition (which enforces that they touch) and a rolling condition (which enforces nonsliding contact and tangency of the surface functions).

*t*

where, as before, primes denote differentiation with respect to *t*.

which we can do because the matrix $Rj(t)$, being a rotation, is guaranteed to be nonsingular and matrix products are associative.

*t*dependence for brevity)

This is the 3D equivalent of Eq. (47). So, all we need to do to find $si,j(t)$ is to multiply both sides by the inverse of the matrix on the left side, just as we did before. But now there is a complication.

Equation (79) chooses the function $si,j$ to balance the effect of a rotational velocity (on the left) against that of a translational velocity (on the right). Matrix $Mi,j$ has a physical interpretation; it is the rotation of facet *F _{i}* in the local coordinate system of facet

*F*, while $mi,j$ is the translation of

_{j}*F*relative to

_{i}*F*, rotated to the orientation of

_{j}*F*.

_{j}The matrix $Mi,j(t)$, being the product of two (time-varying) rotation matrices, is itself a time-varying rotation matrix. However, unlike in the 2D case, it is readily shown that its derivative $Mi,j\u2032(t)$, and indeed, the derivative of any time-varying rotation matrix is *always* singular, and this has important ramifications for the existence and form of rolling-contact surfaces.

*t*to time $t+\Delta t$ must also be describable by an infinitesimal rotation matrix; that is

where $\delta Mi,j(t,\Delta t)$ is also some rotation matrix for all *t* and $\Delta t$.

where **I** is the identity matrix. This tells us that the spectral properties of $M\u2032i,j(t)$ will be related to the spectral properties of the matrix $\delta Mi,j(t,\Delta t)\u2212I$.

Now, it is readily shown that if $\delta Mi,j(t,\Delta t)$ is a rotation matrix, then the matrix $\delta Mi,j(t,\Delta t)\u2212I$ has the same eigenvectors as $\delta Mi,j(t,\Delta t)$, but $\delta Mi,j(t,\Delta t)\u2212I$ has a zero eigenvalue with a corresponding null space vector that is the axis of rotation of $\delta Mi,j(t,\Delta t)$. The other two eigenvalues are complex conjugates of one another, so the number of zero eigenvalues is either one or three; either there is a single null space vector, or the derivative matrix is identically zero.

Because the right-multiplication by $Mi,j(t)$ in Eq. (81) is a unitary transformation, the eigenvalues of the right-hand side of Eq. (81) will be the same as those of $\delta Mi,j(t,\Delta t)\u2212I$. Thus, as we take the limit, we can say that $M\u2032i,j(t)$ has either one or three zero eigenvalues, and so either has a single null-space vector or is identically zero (at the given time *t*, not necessarily all *t*).

For the moment, let us assume that the first case applies. Let $qi,j(t)$ be a vector in the null space of $[Rj\u22121\xb7Ri]\u2032$. The null space vector $qi,j$ has a physical interpretation; it is the instantaneous axis of rotation of the time-varying rotation matrix $Mi,j(t)$.

That, in turn, means that not all translations can be accommodated; if, at any time *t*, the velocity of the relative translation $mi,j(t)$ has a component along the instantaneous axis of rotation, there are no rolling-contact surfaces that can achieve this relative translational motion. We call Eq. (82) the *no lateral sliding condition*.

where $[\u2026](\u22121)$ denotes the matrix pseudoinverse and $ui,j$ is an arbitrary scalar.

Ordinarily, one would find $qi,j$ by performing a singular value decomposition of the matrix $M\u2032i,j$, i.e., finding the eigenvalues and eigenvectors, and then constructing the pseudoinverse from them all and making a note of the null space vector along the way.

There is a complication that arises when we are trying to construct solutions for a sequence of *t*-values ${tk}$: while the pseudoinverse is unique for each *t*-value, the null space vectors are only defined to within a scalar multiple and it is quite possible in the numerics to find $qi,j(tk)$ pointing in opposite directions for successive values of *t _{k}*.

gives the component of $q$ that lies in the null space of $M\u2032i,j$, from which we can construct a normalized $qi,j$. Constructing the values $qi,j(tk)$ in this way (from a common initial vector $qi,j(0)$, or for successive values of *t _{k}* using $qi,j(tk\u22121)$ as the seed for computing $qj(tk)$) can guarantee that all of the computed $qi,j(tk)$ end up pointing in (approximately) the same direction.

*i*,

*j*gives the equivalent expression for $sj,i$

where $qj,i$ is the null-space vector of $[Ri\u22121\xb7Rj]\u2032$ and $uj,i$ is an arbitrary scalar.

Now, the points of contact $si,j(t)$ and $sj,i(t)$ are each parameterized on two variables: *t*, which describes the degree of foldedness, and $ui,j$ (or $uj,i$), which are free parameters. That means that the solution for point pairs that satisfy the rolling-contact conditions is not just a pair of *lines*, as illustrated in Fig. 20, but is (still) a pair of *surfaces*. Furthermore, because those surfaces have the property that (for example) if $si,j(t)$ is a point on the surface, then $si,j(t)+ui,jqi,j(t)$ is also on the surface for any $ui,j$, those surfaces are *ruled surfaces*, and the vectors $qi,j(t)$ run along the ruling lines of the surfaces.

Note that according to Eqs. (83) and (85), $si,j(t)$ and $sj,i(t)$ are parameterized on different variables ($ui,j$ and $uj,i$, respectively). Given one surface, though, say, $si(t,u)$, we can compute the other surface with the same parameterization from the contact condition, Eq. (71).

Using this expression for $sj,i(t,u)$ gives the point on the opposite rolling-contact surface that comes into contact at time *t* and position *u* along the ruling line.

which defines a ruled surface with ruling line direction vectors $(Rj\u22121\xb7Ri\xb7qj,i)$.

This is the same form as Eq. (83), which also defines a ruled surface with ruling line direction vectors $qj,i$.

*u*in Eq. (89) must give points along that same ruling line. Recall that $qj,i$ was only defined to within a scale factor. If we have already solved for $qi,j$, we can avoid a second singular value decomposition to find $qj,i$, and instead, simply take

to get a vector along the ruling line on the second surface.

Finally, let us go back to the possibility that the matrix $[Rj\u22121Ri]\u2032$ was identically zero for some *t*_{0}. That is essentially saying that there is no relative rotational motion between panels *F _{i}* and

*F*at time

_{j}*t*

_{0}. If this is the case but the right side of Eq. (76) is nonzero, it has no solution. Once again, we say that if this is the case, the motion is

*ill-behaved*at

*t*=

*t*

_{0}.

Physically, the lack of solution makes sense. The concept of a rolling contact is that it couples rotary and translational motion. Equation (76) describes that coupling: the left side is rotary motion and the right side is translational. It is possible to have rotary motion without simultaneous translation; that is a conventional pin hinge. But it is not possible for a rolling contact to create pure translation without coupling it to some rotation. So, not all motions are possible.

As in the 2D case, we will say that a motion is *well-behaved* if it is nowhere ill-behaved.

Our main result, then, is the following:

Theorem 2. (3D Rolling-Contact Theorem) *Given any collection of objects undergoing independent arbitrary time-varying rigid-body motion, between every pair of objects, if the motion is well-behaved and satisfies the no-lateral-sliding condition, there exists a pair of ruled surfaces for each pair of objects that form a rolling contact between the objects*.

Said surfaces are given by the formulas in this section.

## Discussion

Although we have only implemented physical examples for single vertices, the concept extends to arbitrary crease networks. One chooses elevation functions ${zi(t)}$ for each of the facets in the pattern (or, more generally, planar or 3D trajectory functions), then constructs the SORCE surfaces pairwise for each of the folds in the pattern. Thus, the SORCE concept can be applied to any zero-thickness folding pattern with arbitrary thickness panels.

It is illustrative to compare SORCE joints to the other methods mentioned in the introduction:

Like Edmonson et al. [12] and Ku and Demaine [10], it allows the thick panels to be parallel-offset from one another in the flat-folded state, but unlike Edmonson, the panels are coplanar in the unfolded state.

Unlike Trautz and Künstler [8], Ku and Demaine [10], and Zirbel et al. [13], there are no additional degrees-of-freedom introduced into intermediate states: the kinematics of the mechanism match that of the underlying zero-thickness model, being single-degree-of-freedom if the underlying model exhibited same.

Unlike Hoberman [6] and Chen et al. [7] (but like Tachi [11]), the technique can be applied to any rigidly foldable zero-thickness origami mechanism; unlike Tachi, the technique avoids panel interferences even for fold angles up to and including $\xb1180\u2009deg$ and allows the panels to be stacked fully parallel in the flat folded state.

A comparison of the different approaches for thick rigidly foldable mechanisms is given in Table 1.

When SORCE elements take the form of mutually convex surfaces, then they can be implemented as CORE joints, which offer the additional benefits that they can be quite robust against deformations and, in principle, compliant and monolithic. We note, though, that based on preliminary investigations, it looks like biconvex surface solutions are less common than convex-concave surfaces (as was the case in the example of Fig. 7). Such surface pairs can still be implemented as rolling-contact joints, but call for more complex mechanisms, e.g., teeth and/or spring-loading, to ensure nonslippage between the two surfaces.

We note, too, that while the offsets can be chosen so that the panels remain coplanar in the unfolded state, there is, in general, no prohibition against one or more of the mating surfaces extending above or below the top and bottom planes of the panels, possibly necessitating clearance holes in the adjacent panel (as we saw in our physical examples). Such interferences can generally be made quite small, and because they typically only affect adjacent panels, are readily accommodated.

In principle, the SORCE concept can be applied to arbitrary stacks of panels with arbitrarily large offsets. However, whenever two panels wrap around a bundle of other panels, the rolling contacts must necessarily extend far enough to touch each other in the folded state, and consequently, will protrude accordingly above the panel surface in the unfolded state.

However, there is a way to address this issue. The SORCE concept can potentially be combined with some of the other techniques: for example, it is possible to selectively double some hinges, *a la* Hoberman and Ku, but implement the joints as SORCE joints designed to provide a 1DOF path across the full folding range. The Ku/Demaine technique of splitting vertices [10] adds extra degrees-of-freedom to the motion, which for many configurations ensures that there is a valid 3D state not just at the two endpoints of motion (flat and unfolded), but at all intermediate states as well.^{1}

By using at the split hinges SORCE joints, which are designed to support a known reachable trajectory—one would be guaranteed of the existence of a 1DOF path from the unfolded to folded state.

The combination of SORCE joints with split hinges would then allow one to reduce or eliminate the protrusions mentioned above; by splitting a hinge, the distance needed to “wrap around” other panels could come from the flat panel between the split, with the SORCE joints ensuring 1DOF motion.

Similarly, it is possible to combine SORCE joints with ordinary revolute joints, simply by taking some of the elevation functions ${zi(t)}$ to be identically zero (giving revolute joints) and others to be nonzero (giving SORCE joints).

The formulas in this paper give explicit expressions for the construction of the two surfaces of a SORCE joint, but they require a synchronous parameterization of the fold angles at each vertex. For degree-4 vertices, an analytic parameterization exists (whether or not the vertex is flat-foldable): see the Appendix of Ref. [17] for general formulas. For vertices of higher degree, analytic formulas do not generally exist (although specific examples can be found). However, one could construct a suitable analytic model by constructing a spline to a series of numerical solutions across the range of folding, then use our formulas to construct the desired surfaces.

In the design stage, there is the freedom to choose the relative offsets for all panels, allowing one to optimize the various offset trajectories in order to achieve the best-behaved cam surfaces, as we did in the optimization of Figs. 9 and 10. Clearly, this optimization technique could be extended to panels in arrays of multiple vertices. One could imagine, though, that the computational optimization could become challenging. As an optimization problem, one could readily add further constraints and figures of merit to, for example, minimize excess flange protrusion and/or bound cam curvature, as we did in the example.

While there are obvious reasons to aim for circular-CORE surfaces (as we did in some of our examples), in general, the required surfaces are going to be noncircular. In the days of conventional machining, the fabrication of such surfaces would have been highly problematic. With the advent of additive manufacturing techniques (“3D printing”), the potential complexity of the required surfaces is far less of a burden.

Although the SORCE technique lends itself nicely to mechanisms that incorporate the flat-folded state as part of the desired operating range, there are rigidly foldable mechanisms, e.g., cut flashers [17], which do not stow as flat-foldable forms and are not addressable by mechanisms that require flat-foldability in the zero-thickness model. Nevertheless, such non-flat-foldable mechanisms are also readily amenable to the SORCE technique. We expect that many more technologically interesting thick rigidly foldable mechanisms can be realized using this powerful approach.

## Acknowledgment

This paper is based on the work supported by the National Science Foundation and the Air Force Office of Scientific Research through NSF Grant No. EFRI-ODISSEI-1240417 at Brigham Young University and the National Science Foundation Graduate Research Fellowship Program under Grant No. 1247046.

As of this writing, the question of reachability from unfolded to folded with this technique for arbitrary arrangements of vertices and panel thicknesses is still open.