Simulation of Rigid Origami
Tomohiro Tachi
The University of Tokyotachi.tomohiro@gmail.com

Abstract
This paper presents a system for computer based interactive simulation of origami,based on rigid origami model. Our system shows the continuous process of folding a piece of paper into a folded shape by calculating the configuration from thecrease pattern. The configuration of the model is represented by crease angles, andthe trajectory is calculated by projecting angles motion to the constrained space.
Additionally, polygons are triangulated and crease lines are adjusted in order tomake the model more flexible. Flexible motion and comprehensible representationof origami help users to understand the structure of the model and to fold the modelfrom a crease pattern.

1

Introduction

Simulation of origami is very important for representing or modeling origami in computer.
It helps paper folders to understand the structures of origami models, and can be used asa tool for designers to draw diagrams. We propose a system for simulating folding processfrom crease pattern to folded base, based on rigid origami simulation (Figure 1).
There have been many approaches for simulating origami. One way is to simulateorigami by a sequence of simple folding steps as shown in [1] by Miyazaki et al. Since thefinal state of an origami model is represented by folding steps, it is easy to reconstruct ananimation from a sheet of paper to the model. However, the origami models that can berepresented in this system are limited by the simplicity of folding steps, and not suitable
for many complex origami models whose folding process cannot be divided into simple
folding steps.

Figure 1: Screenshots of the simulation program. Left: base of ”Kamehameha Wave”(bythe author). Middle: pleated hypar. Right: base of ”Tachikoma” (by the author).

Thus representing origami models by crease pattern seems suitable. ORIPA is a crease
pattern editor with estimation of folded figure, developed by Mitani [2]. Final state withstacking order is estimated, though sometimes the estimation fails. Thickness of paper
is represented for better understanding of the structure of the model, but there are nointermediate state from crease pattern to the final shape.
It is possible to simulate intermediate state of folding, by using rigid origami model (i.e.
plates connected by hinges constrained around vertices). Balkcom [3] uses rigid origami
model for origami simulation. His method is based on virtual cutting and combinationof forward and inverse kinematics. The calculation of the trajectory runs fast in thismethod, but the mountain-valley values of some creases are not taken into account for
the folding motion.
Our system is based on rigid origami simulation, and uses crease angles of all foldlines as variables to represent configuration of an origami model. The simulation method
is based on projection to the constraint space, thus possible to use folding motion of all
crease lines as driving force of folding. This results in a robust overall motion which is
independent of the positions of the virtual cutting. Additionally, our system can add
flexibility to origami models by adding and adjusting crease lines. In this method, folding
motion of non rigidly foldable models can also be simulated.
The system provides a smooth and comprehensible interactive animation of folding
from a crease pattern to the folded base, which helps users to understand the structureof the origami model and the way to fold the model from the crease pattern. This helps
paper folders to fold models from a crease pattern, and also encourages designers to use
a crease pattern as a medium for publishing origami models.

2

Kinematics of Rigid Origami

In our model, an origami configuration is represented by folding angles of edges. Folding
angles change according to mountain-valley values of the fold lines, when the paper getfolded. Those edges are connected with facets and form closed loops, and for each closedloop we have a constraint on angle movement. If there is no hole inside the loop, thenthe constraint is satisfied by intersection of constraints by single vertices inside the loop
(Figure 2). Our model assumes that the paper is without a hole. Folding motion isnumerically calculated using linear approximation of constraints by single vertices.

Figure 2: Left: No hole is inside the loop and the constraint is satisfied by the intersectionof single-vertex constraints inside. Right: A hole is inside the loop and we have to think
about the constraint around the hole.
Necessary conditions for single-vertex rigid origami shown in [4] by Belcastro and Hullare used as constraints of multi-vertex rigid origami model. Suppose there are n edges`1 , · · · , `n connected to the vertex. For a single-vertex origami, the 3×3 matrix constraintfunction F of fold angles ρ1 , · · · , ρn is given by
F (ρ1 , · · · , ρn ) = χ1 · · · χn−1 χn = I(1)

where matrices χ1 , · · · , χn represent rotation by fold lines `1 , · · · , `n respectively (Figure3). Derivative of the equation is given byC2(ρ2)
C3(ρ3)ℓ2
B12B23ℓ3ℓ1

B34

C1(ρ1)

B41ℓ4

C4(ρ4)

X1=C1B12
X2=C2B23
X3=C3B34
X4=C4B41

Figure 3: An example of rotation matrices of a single-vertex origami.

0 0 0dF∂F∂F∂F=ρ˙1 + · · · +ρ̇i + · · · +ρ˙n = 0 0 0dt
∂ρ1∂ρi∂ρn0 0 0(2)We get 9 equations (i.e. one for each element of F) for angles movement ρ1 , · · · , ρnrepresented using 9 × n matrix.
 ∂F∂F··· ∂ρ1 (1,1)∂ρn (1,1)   ∂Fρ˙0∂F1 ∂ρ1 (1,2) · · · ∂ρn (1,2)   .   .   ..  =  .. (3)..  ..
.  ρ˙ .
0n∂F∂F···∂ρ1 (3,3)∂ρn (3,3)|{z}
9×nmatrix

However, since F is a rotation matrix (i.e. orthogonal matrix) the equations areredundant and only 3 of 9 equations are independent. Partial derivative of an orthogonalmatrix F at F = I is a skew-symmetric matrix because¯¯µ¶T ¯∂F T∂ ¡ T ¢¯¯∂F ¯¯∂FT ¯¯∂F===0(4)+F +FFF ¯¯∂ρi∂ρi ¯∂ρi∂ρi ¯F=I
∂ρi
F=I
F=I

Partial derivative of the constraint function is represented in the following form using 3
independent variables a, b, c.

0 −a c∂F 0 −b
= a(5)∂ρi−c b0

We get a 3 × n matrix instead of a 9 × n matrix shown in (3),   ρ˙10
a1 · · · an.
 b1 · · · bn   ..  =  ... 
c1 · · · cn
ρ˙n0(6)

Then we rewrite the matrix using global edge number. Assume that edge i is connected
and edge j is not connected to vertex k. Constraint by vertex k is represented by thematrix Ck , whose ith column is identical to the column of the previous matrix thatcorresponds to the edge, and jth column is zero vector.
 ρ˙1
 ..  . ithjth     ρ˙1ρ̇ · · · aki · · · 0 · · · 0
 .i 
 .. 
.
0
=(7)
[Ck ]  .  = · · · bki · · · 0 · · ·  . 
· · · cki · · · 0 · · ·  ρ˙j 0ρ˙N|{z}  .
3×N matrix
 .. ρ˙N
where N is the number of edges. Global constraints by multiple of vertices are given by
the intersection of the conditions.
    [C1 ]ρ˙10 ..   ..   .. Cρ̇ =  .   .  =  . (8)
[CM ]
ρ˙N0
| {z }
3M ×N matrix

where M is the number of vertices inside the paper.
If and only if the rank of matrix C is less than N , the linear equation has non-trivialsolutions. The solution of this linear equation is calculated using pseudo-inverse matrix
C+ of matrix C.
£¤ρ̇ = IN − C+ C ρ̇0(9)where ρ̇0 is unconstrained value of the angles velocity calculated by mountain-valley valueof the fold edges. The idea is to project unconstrained angles movement to constrained
space by using orthogonal projection matrix [IN − C+ C]. Trajectory can be calculated
by Euler integration.
£¤∆ρ = ρ̇(t)∆t = IN − C+ C ∆ρ0(10)However this Euler integration results in accumulation of numerical error, so we modify
equation(8) using the residual vector r.
Cρ̇ = −rwhere£r = r1a r1b r1c · · ·rka rkb rkc · · · rM a rM b rM c(11)¤T(12)

where rka , rkb , rkc are the residual of elements of F corresponding to ak , bk , ck respectively.
10 − ra 0 + rc
10 − rb (13)
F = 0 + ra0 − rc 0 + rb
1

The modified solution is£¤∆ρ = −C+ r + IN − C+ C ∆ρ0(14)¡¢−1Pseudo-inverse is calculated as C+ = CT CCTif C is full rank and 3M < N .
When this condition is satisfied, the linear equation is solved as follows.
£¤∆ρ = −C+ r + IN − C+ C ∆ρ0h¡¢−1¡¢−1 i= −CT CCTr + IN − CT CCTC ∆ρ0©¡¢ª= ∆ρ0 − CT CCT \ (r + C∆ρ0 )(15)−C+C∆ρ0∆ρ0−C+r
Euler Integration

r=r

Modified Trajectory
r=0
Ideal Trajectory

Figure 4: Idea of the trajectory. [IN − C+ C] is a projection matrix that project unconstrained angles movement vector ∆ρ0 to the constraint linear space. The angles movement
vector is further modified to reduce residual.

3Adding and Adjusting Crease Lines

3.1

Closed Vertex

If we simply fold a paper on already folded edges, the intersection of a new line and an
old line is a vertex with fold lines whose motion is locked by the new fold. We call thiskind of a singular vertex a ”closed vertex.” In our system, a vertex is detected as a closedvertex if there is a set of three adjacent crease lines connected to the vertex whose outer
two of are symmetrical about the center crease and their mountain-valley assignments areopposite.
There are two ways to avoid closed vertex. One way is to split the ”inside angle”, which
we call the angle that comes inside when folded, by adding crease lines, and another way
is to reduce the inside angle (Figure 5).

3.2

Adding Crease Lines by Triangulation

Many rigid origami models with valency 4 vertices are not rigidly foldable because of thelack of the degrees of freedom (DOF). Total degrees of freedom of the model are N − 3M

Closed Vertex

θθ

outside inside

Split Inside Angle Reduce Inside Angleθα θ−αθ+δ θ−δ

Mountain Fold
Valley Fold

Figure 5: Two ways to avoid avoid closed vertex.
if the constraint matrix is full rank (i.e. if there is no singularity) where M and N are thenumber of vertices and edges inside the paper (i.e. not on the perimeter) respectively.
Polygons with more than 3 vertices are triangulated. k − 3 degrees of freedom areadded to the model per one k-gon by adding k − 3 crease lines on each polygon. If all thepolygons are triangulated, the total degrees of freedom of the model is N0 − 3 where N0
is number of edges on perimeter of the paper (Figure 6). There are multiple ways to add
crease lines when triangulating polygons. Appropriate crease lines are added so that as
many inside angles as possible are split.

Figure 6: An example of triangulation. Left: Not triangulated model is over constrained(M = 19, N = 42, DOF = N − 3M < 0). Right: Triangulated model has 3 DOF(M = 19, N = 60, N0 = 6, DOF = N − 3M = N0 − 3 = 3).

3.3

Adjusting Crease Lines

Crease lines are adjusted to avoid singularity by closed vertices. Position of each vertex
is moved to the direction that reduces inside angles of closed vertices. Amount of displacement for each vertex is set according to the ”angle unevenness” of the vertex, whichis defined as {max(ρi ) − min(ρi )}, for better balance of folding process of fold lines. This
reasonably results in no adjustment of the crease pattern when both not folded and completely folded state.
Most origami models have many flat foldable vertices. Flat foldable vertices are kept
flat foldable during the adjustment of crease lines so that an adjusted model can be folded
to the final state. Kawasaki’s theorem is used as the constraints on displacement of thevertices [5]. Here is Kawasaki’s theorem:XXθk,i =
θk,i = π(16)i:eveni:odd

where θk,i represents ith angle between the edges around vertex k (Figure 7).

θk,2

θk,3

θk,1
θk,6

θk,4
θk,5

Figure 7: A flat-foldable vertex k·¸∆XDisplacement of the vertices are represented as a 2Mall × 1 vector
where Mall
∆Yis the number of all vertices. Constraint for the displacement is given by·¸·¸∂G ∂G ∆X
=0(17)∂X ∂Y ∆Y|{z}
[Cadj ]
where G is a vector function of X and Y whose kth element isX
X
G (X, Y)k =θk,i −
θk,ii:odd(18)i:evenConstrained displacement of the vertices are calculated in the same way as calculating
trajectory of the angles.
¸·¤ ∆X0£++ 0(19)
Cadj r + I2Mall − Cadj Cadj
∆Y0¸·
∆X0
are the unconstrained vertex displacement and r0 is the residual vector of
where
∆Y0
function G.

3.4

Result of Adding and Adjusting Crease Lines

Figure 8 shows the results of adjusting crease lines after triangulating the models. Somemodels become flexible enough to show how the facets are stacked when all the creaselines are simultaneously folded. Other models are possible to be folded only when theircrease lines are adjusted. Overall animation of folding from crease pattern to final shapeis smoother and more comprehensible when the crease lines are adjusted.

Triangulated

Triangulated & Adjusted

(a)

(b)

(c)

(d)

Figure 8: (a)(b) Adjusting crease lines adds flexibility to the model and results in morenatural and comprehensible origami representation. (c)(d) Some models cannot be folded
to the final state without adjustment. (Model in (d) is base of ”Teatime” by the author.)

4

Implementation and Result

The system was implemented as a program written in C with OpenGL. The user caninteractively simulate folding and unfolding of origami models, whose crease pattern data
is given in ORIPA format. Conjugate gradient method was used for solving the linearequation. The program runs in an interactive speed for many complex origami models(ex. 16 × 16 box-pleats models). Screenshots of the program is shown in figure 1.
Two kinds of penalty force are used to avoid local self-intersection. One limits thefolding angles of mountain or valley crease lines to [−π, π] to make two adjacent facets notintersect each other. The other limits the folding angles of added crease lines according
to folding angles of adjacent crease lines to sufficiently make connected three facets whichshare one vertex do not intersect each other. Although this self-intersection avoidanceis not sufficient to avoid global or complicated local self-intersection, it works for manymodels.
The system also supports transition from one folded state to another folded state sothat it can be used as a tool for drawing diagrams. The folding process can be controlled
by a set of multiple crease patterns. However, it is observed that many origami folding
steps are not rigidly foldable. Sink folds and some reverse folds are not possible to be
executed without unfolding all crease lines (Figure 9).

(a)

(b)

Figure 9: Transition from one folded state to another. (a) Petal fold can be simulated.
(b) Simple open sink can be folded, but need to unfold all crease lines during the folding
process.
Many models can be folded to the desired state in this system, while many cannot
be folded. We have observed that foldability of the model is determined by how themodel have closed folds in the structure rather than complexity of the model. In general,origami models that is actually easy to be opened into a sheet of paper in real world can beeasily folded and unfolded. For example, Miura fold, waterbomb tessellation, and pleatedhypars are smoothly folded in the simulation, while a crane with finishing, four-crane baseor tatou cannot be not folded to the final state (Figure 10).
The simulation program is planned to be available in the author’s website (http://www.tsg.ne.jp/TT/).

(a)

(b)

(d)

(c)

(e)

(f)

Figure 10: Example of simulation. (a)Miura fold (by Koryo Miura), (b)waterbomb tessellation and (c)pleated hypar are foldable, and (d)crane with finishing, (e)four-crane baseand (f)tatou get stuck or intersect themselves before folded.

5Conclusions and Future Works

We proposed a system for simulating folding motion of origami by calculating the trajectory by projection to the constrained space based on rigid origami model. An additional
method was proposed for making origami models more flexible by triangulating polygons
and adjusting crease lines. Moreover we investigated local self-intersection avoidance andtransition from one state to another state. As a result we could get an interactive systemthat user can fold and unfold relatively ”open” origami models from crease pattern in arobust, smooth, and comprehensible way.
Global self-intersection avoidance problem and stacking order problem are not solvedin this paper and remain to be the future works. Another work to be done in the future
is to control the surface of high-DOF origami models through user interaction, which isuseful for understanding how an origami surface three-dimensionally changes its form.

References[1] S. Miyazaki, T. Yasuda S., Yokoi, and J. Toriwaki. An origami playing simulator inthe virtual space. The Journal of Visualization and Computer Animation, 7(1):25–42,
1996.
[2] J. Mitani. Oripa; origami pattern editor.
pukiwiki-oripa/, 2005.

http://mitani.cs.tsukuba.ac.jp/[3] D. Balkcom. Robotic Origami Folding. PhD thesis, Carnegie Mellon University, 2002.
[4] S. Belcastro and T. Hull. A mathematical model for non-flat origami. In Origami3:
Proceedings of the 3rd International Meeting of Origami Mathematics, Science, andEducation, pp. 39–51, 2002.
[5] T. Kawasaki. On the relation between mountain-creases and valley-creases of a flatorigami. In Proceedings of the 1st International Meeting of Origami Science andTechnology, pp. 229–237, 1989.