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.


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 ±180deg.

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.


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[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 ith panel an offset function zi(t):[0,1] 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 jth fold of the zero-thickness model, we describe its fold angle by some function γj(t):[0,1][0,±π], which parameterizes the fold angle on t. For flat-foldable vertices, we will have γj(1)=±π; 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., γ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 γ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 γ(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.

It is clear from the geometry that the relative motions of the two circular rolling contact panels can be characterized by the three functions (γ(t),zl(t),zr(t)), and we can solve for them. If we choose the parameterization γ(t) as 
then the two offset functions are given by 

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

Equation (2) has the conceptual form we are after: the offsets are 0 at t = 0 and go to constant nonzero values at t = 1. However, in this particular case, they both go to the same value 
That is, insufficient variability to construct a general thick rigidly foldable vertex from such joints, let alone a network of vertices, see also Fig. 1. If we take 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 γ(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]2 and the right contact surface is parameterized by sr(t):[0,1]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 s0, i.e., not necessarily at the origin.

In the analysis that follows, we adopt the following notations. The unit vector û(θ) is given by 
The counterclockwise rotation matrix R(θ) is given by 
For any function f(s), we denote by f its derivative 
and we denote the vector magnitude by 

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

First, since sl(t) is the point on the left surface that contacts sr(t) on the right surface, the arc lengths from the initial points of contact to sl(t) and sr(t) must be the same for all t. This gives rise to the nonsliding condition 
Next, as illustrated in Fig. 6(b), at the point of contact, the two surfaces must be tangent, which means that the tangent vectors of the two surfaces are linked by the fold angle γ(t), giving the tangency condition 
The nonsliding condition and tangency condition can be combined into the rolling condition 
Now, let us define q(t) as the vector from the initial corner of the left surface to its corresponding corner on the right surface, as illustrated in Fig. 6(b). Inspection of the figure shows that it is given by 
To establish an equivalency between the surface functions sl(t) and sr(t) and our desired offset functions zl(t) and zr(t), we note that if the two corners' positions were defined by the latter, with reference to Fig. 6(c), the vector q(t) would be given by 
Equating these two relations for q(t) gives the desired relation between the surfaces and offset functions 

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).

We can solve this differential system explicitly for the surface functions. We differentiate Eq. (14) (now dropping the explicit t dependence for brevity), giving 
Subtracting Eq. (11) from this equation causes both derivatives sl and sr to drop out, allowing us to solve explicitly for sr(t). It is given by 
Once we have sr(t), we can use Eq. (14) to get the equivalent expression for sl(t), since 
Using the unit vector û(θ) for compactness, we have that 
We note that the lateral offset value s0 cannot be chosen independently; in fact, it is given by Eq. (18) (or (19)) as 

Thus, for any arbitrary parameterization of the fold angle γ(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

We will first work out the rolling-contact joints for the flat-foldable degree-4 vertex shown in Fig. 1 with sector angles 
That the vertex is flat-foldable can be seen from the sector angles satisfying the Kawasaki–Justin Theorem, α1+α3=α2+α4=180deg. For a flat-foldable degree-4 vertex, the fold angles satisfy 
where the 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.

We must choose our parameterization of the fold angles consistently, so that they satisfy Eq. (22) at all values of the parameter t[0,1]. A simple and logical choice for parameterization is to choose the major fold angles to be linearly proportional to the parameter t, i.e., 
Then the parameterizations of the other two angles are completely defined: they are 
We now choose the offset functions for the four panels. We have considerable freedom in their functional forms, but we must match specific values at the ends of the range. For t = 0, we must have 
so that in the unfolded state, all of the panels are coplanar. In the folded state, they must have various offsets given by Eq. (4). The simplest choices are linear functions 
We can now substitute Eqs. (25) and (27) into Eqs. (18) and (19) to generate the surface functions for all four joints. Denoting by sl,i and sr,i, the two surface functions at the ith 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 γi (see Fig. 2).

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 (t1), 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 {γ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.


For many origami mechanisms, the fold angles will vary monotonically from 0 deg in the unfolded state to some nonzero value— ±180deg 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 0deg up to a maximum value, then declines again to 0deg 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 γ(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.

As already noted above, at the 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.

In the same way, we can solve for the surface positions at the end of motion (t = 1). For flat-foldable patterns, we will have γ(1)=±180deg, 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 180deg 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.

Since we have a parametric description of each surface, we can readily compute the signed curvature from differential geometry [18] 
The curvature in Eq. (32) is positive if the curve s(t) curves to the left with increasing t and negative if it curves to the right. We define the function sign(γi)=1 if γi(t)>0 (valley fold) and sign(γi)=1 if γ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.

Coming back to the goal of creating CORE joints, “well-behaved” would mean that the surface curvature is not too great (which increases the bending strain of compliant members) and not too small (which creates relative compliance in the direction of the surfaces being pulled apart). We can thus define a figure of merit (FOM) for the entire system of joints as the ratio of worst-case largest and smallest convexities 

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

We start by redefining the fold angle functions with a different parameterization that gives more symmetric expressions 
Then, for the offset functions, since we know their values at the endpoints, we can perform an expansion in terms of a set of polynomials that will enforce matching at the endpoints and whose coefficients allow for shape variation in between. We define offset functions thus 

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

For a first evaluation, we take 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.

In order to avoid negative curvatures and numerical instabilities arising from zero curvature, we adopt a modified figure of merit that clips all curvatures to a small, non-negative value ε 
Optimizing over the six coefficients finds an optimal solution for coefficients 

In Figs. 9 and 10, we plot the fold angle functions, offset functions, convexity functions, and show the surfaces at t = 0 for the four joints. Now all four joints have finite positive convexity toward each other, thus permits a CORE joint implementation.

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 (120deg,80deg,60deg,and100deg). 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 s0 was properly aligned relative to the zero-thickness pattern for each joint pair; because s0 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 Fi and Fj 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 Fi and Fj 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.

Let pi(t) describe the trajectory of a point in facet Fi. Then, because the motion is planar rigid-body motion, pi(t) can be written as 
where Ri(t) is a time-varying 2 × 2 rotation matrix and ri(t) is a time-varying translation vector. Similarly, for any point pj(t) in facet Fj 

Once again, we assume rolling contact surface functions. Define si,j(t) as the position at t = 0 of the point connected to facet Fi that touches its corresponding point on facet Fj at time t. Similarly, we define sj,i(t) as the position at t = 0 of the point connected to facet Fj that touches its corresponding point on facet Fi at time t. These surface functions are illustrated in Fig. 13.

As before, the two surface functions si,j(t) and sj,i(t) must satisfy the 2D contact equation, which is that the two points touch at time t 
They must also satisfy the 2D rolling equation, which is that the velocities of the two surface functions match when rotated to their orientations at time t 
We rearrange this equation 

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

We also rearrange the contact equation 
and then differentiate this equation (now dropping the explicit t dependence for brevity) 
Subtracting off Eq. (44) gives an implicit equation for the curve si,j(t) 
Now, both Rj1 and Ri are 2D rotation matrices, and so their product is also a 2D rotation matrix, which can be written in the form 
for some function θ(t) where R(θ) is the general 2D rotation matrix given by Eq. (6). Its derivative, therefore, is given by 

Thus, [Rj1·Ri] is invertible if and only if the derivative of its rotation angle (analogous to the relative fold angle γ(t) of Sec. 4) is nonzero. If the derivative of the rotation angle vanishes, then the matrix [Rj1·Ri] is not just singular; it is the zero matrix.

If [Rj1·Ri] is invertible, then we can solve for si,j(t) 
We can obtain sj,i(t) by swapping subscripts i and j in Eq. (50). Alternatively, once we have si,j, we can invert the 2D contact equation, Eq. (42), to get 

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 [Rj1·Ri] (and its counterpart, [Ri1·Rj]) do not vanish. If they do for some value t = t0, 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 t0.

  • 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 t0, Eq. (50) is undefined, but it is often still possible to find solutions by taking limits as one approaches t0. (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 tt0, 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.

We can simplify these formulas somewhat by defining the rotation matrices in terms of their scalar rotation angles. We define 
Then, after some manipulation, and making use of the identities 
we have that 

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.

We can define the trajectory functions in any frame of reference. We define them as before in the frame of reference of the zero-thickness facet, again using l and r as the subscripts for the left and right panels. From the inspection of Fig. 14, we have the following: 
Substituting these into Eq. (50) and its counterpart with swapped subscripts results in the following for the two surface functions sl(t) and sr(t): 

Note that both d and d appear in sl, but only d 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)||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.

Clearly the offset does not affect the nonsplit folds γ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 
while for γ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.

As an example, we choose a vertex with sector angles 
and panel thickness 0.2. These sector angles give a fold angle multiplier of 
We define zi(t) as the elevation function for the ith 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.

A little bit of experimenting with different functional forms gives a set of elevation and offset functions that give rise to smooth, convex, cusp-less 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.

The elevation functions for circular cross sections are known: they are given by Eq. (2). To make γ2 a circular-CORE joint, we must have 
and similarly 

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.

The relative motion between two panels can be completely described by the function q(t) already introduced. In the presence of both elevation functions and offset functions, it is given by 
If we want γ3 to be a circular-CORE joint with no panel offset, we would have 
But instead, what we actually have (including the panel offset) is 
Setting these equal to one another lets us solve for the panel offset function d(t) that gives the desired relative motion 

where I is the 2 × 2 identity matrix.

With some simplification, it can be shown that 

(keeping in mind that all of the γis 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 (135deg,45deg,45deg,and135deg) 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 412 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.

Consider the entirely general situation, where now the “panels” do not even have to resemble origami facets. We assume a general collection of objects {Fi} that individually travel along time-dependent trajectories that are rigid-body motions in 3D. Let pi(t) be the trajectory of some point in panel Fi. Then the trajectory can be written as 

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 Fi and Fj that are in contact with each other at time 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 Fi and Fj 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 t = 0 on the surface connected to panel Fi that contacts the surface on panel Fj at time 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).

The contact condition says that point si(t) touches point sj(t) at time t 
The rolling condition, which equates the appropriately rotated velocity vectors of the surface functions, is 

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

We rearrange this condition 

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

We rearrange the contact equation 
and then differentiate this equation (again dropping the explicit t dependence for brevity) 
Subtracting off Eq. (73) gives an implicit equation for the curve si,j(t) 

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.

so that the surface function si,j satisfies 

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 Fi in the local coordinate system of facet Fj, while mi,j is the translation of Fi relative to Fj, rotated to the orientation of Fj.

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(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.

Since Mi,j(t) is a time-varying rotation matrix, the change from time t to time t+Δt must also be describable by an infinitesimal rotation matrix; that is 

where δMi,j(t,Δt) is also some rotation matrix for all t and Δt.

If we compute the derivative Mi,j(t) using the standard limit formulation, we will have 

where I is the identity matrix. This tells us that the spectral properties of Mi,j(t) will be related to the spectral properties of the matrix δMi,j(t,Δt)I.

Now, it is readily shown that if δMi,j(t,Δt) is a rotation matrix, then the matrix δMi,j(t,Δt)I has the same eigenvectors as δMi,j(t,Δt), but δMi,j(t,Δt)I has a zero eigenvalue with a corresponding null space vector that is the axis of rotation of δMi,j(t,Δ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 δMi,j(t,Δt)I. Thus, as we take the limit, we can say that Mi,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 [Rj1·Ri]. 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).

Equation (79) has a solution only if the right hand side contains no component of the null space vector, i.e., only if 

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.

If the no lateral sliding condition is satisfied, then the general solution of Eq. (76) can be written as 

where [](1) 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 Mi,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 tk.

We can address this problem by using the pseudoinverse to construct the null-space projector; if q is any vector, then 

gives the component of q that lies in the null space of Mi,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 tk using qi,j(tk1) 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.

Switching subscripts i, j gives the equivalent expression for sj,i 

where qj,i is the null-space vector of [Ri1·Rj] 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).

We define 
so that 
We then solve the contact equation for sj,i(t,u) by solving 
We find that 

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.

Note that Eq. (89) can also be written as 

which defines a ruled surface with ruling line direction vectors (Rj1·Ri·qj,i).

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

Since qj,i is a vector along the ruling line of surface sj,i, varying 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 [Rj1Ri] was identically zero for some t0. That is essentially saying that there is no relative rotational motion between panels Fi and Fj at time t0. 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 = t0.

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.


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 ±180deg 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.


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.


, and
, “
2-D Array Experiment on Board a Space Flyer Unit
Space Sol. Power Rev.
, pp.
, and
, “
Expandable Tubes With Negative Poisson's Ratio and Their Applications in Medicine
R. J.
, ed.,
A K Peters
, Ltd., Natick, MA, pp.
K. C.
L. T.
R. J.
D. C.
S. P.
, and
L. L.
, “
From Crease Pattern to Product: Considerations to Engineering Origami-Adapted Designs
Paper No. DETC2014-34031.
, “
The Science of Miura-Ori: A Review
R. J.
, ed.,
A K Peters
, Ltd., Natick, MA, pp.
, “
Proposition of Pseudo-Cylindrical Concave Polyhedral Shells
ISAS Report
(9), pp. 141–163.
, “
Reversibly Expandable Three-Dimensional Structure
U.S. Patent No. 4,780,344
, and
, “
Origami of Thick Panels
), pp.
, and
, “
Deployable Folded Plate Structures - Folding Patterns Based on 4-Fold-Mechanism Using Stiff Plates
,” Symposium of the International Association for Shell and Spatial Structures (
), Valencia, Spain, pp.
, “
Reversibly Expandable Structure
U.S. Patent No. 4,981,732
J. S.
, and
E. D.
, “
Folding Flat Crease Patterns With Thick Materials
ASME J. Mech. Rob.
), p.
, “
Rigid-Foldable Thick Origami
CRC Press
, Boca Raton, FL, pp.
B. J.
R. J.
S. P.
, and
L. L.
, “
An Offset Panel Technique for Thick Rigidly Foldable Origami
Paper No. DETC2014-35606.
S. A.
R. J.
M. W.
D. A.
P. E.
B. P.
S. P.
, and
L. L.
, “
Accommodating Thickness in Origami-Based Deployable Arrays
ASME J. Mech. Des.
), p.
J. R.
C. P.
, and
L. L.
, “
Compliant Rolling-Contact Element Mechanisms
Paper No. DETC2005-84073.
C. L.
, “
Kinematics of Robot Fingers With Circular Rolling Contact Joints
J. Rob. Syst.
), pp.
, “
Foldable Plate Structures With Rolling Joints
ASME J. Mech. Rob.
), p.
R. J.
, and
L. L.
, “
Single-Degree-of-Freedom Rigidly Foldable Cut Origami Flashers
ASME J. Mech. Rob.
), p.
Modern Differential Geometry of Curves and Surfaces With Mathematica
CRC Press
, Boca Raton, FL.