A computational algorithm for origami design

1.1 Background Origami is the Japanese name for the centuries-old art of folding paper into representations of birds, insects, animals, plants, human figures, inanimate objects, and abstract shapes. In the purest form of origami, the figure is folded from a single uncut square of paper. In the past 50 years, the complexity of origami figures has increased dramatically, evolving from simple, stylized shapes to highly detailed representations of crustacea [1], insects [2, 3], dinosaurs [4, 5], and other multi-legged, multi-winged, and generally multi-appendaged creatures. As the range of origami subject matter has expanded in complexity, the problem of folding a base — a geometric shape with flaps for each of the appendages of the subject — has assumed greater and greater importance. Indeed, the problem of folding a multi-pointed base constitutes the bulk of that branch of the art known as origami sekkei, or “technical folding.” Throughout the history of origami, most origami design has been carried out by a combination of trial and error and/or heuristic techniques based on the folder’s intuition. In this paper, I present for the first time a complete algorithm for the design of an arbitrary origami figure, specifically, for the solution of a crease pattern that folds flat into a base with any desired number of flaps of arbitrary length, which become the arms, legs, wings, etc., of the origami figure. The algorithm is based on a set of mathematical conditions on the mapping between the crease pattern and a tree graph representing the base. In this fashion, the problem is transformed into a nonlinear constrained optimization, which as it turns out, is closely related to existing circle packing and triangulation algorithms. I have implemented the algorithm in a computer program written in C++ that is available on the Internet; with it one can compute the crease pattern for origami designs of unprecedented complexity and sophistication. 1.2 Previous Work The problem of designing an origami shape based on the number of appendages has been recognized for years [6] and several workers have addressed various aspects of origami design [7–9], albeit typically at a conceptual rather than an algorithmic level. In recent years, several authors, notably Meguro [10], Maekawa [11], Kawahata [12], and Kawasaki [13] have described useful geometric algorithms for the design of a base in which the target shape is represented as a stick figure, and flaps of the base are represented by nonoverlapping circles and/or circular contours. I have also described a geometric algorithm for origami design in [14]. The present work builds upon and generalizes concepts presented in and implicit in [10–14], mathematically proves the underlying theory, and completes the algorithm begun in [14] in a form suitable for computer implementation. 1.3 Outline of the Approach The basis of many complex origami designs is a geometric shape called a base, which is a folded configuration of the original square that has the same number of flaps of the same length as the appendages of the subject. Once the folder has a base with the right number of flaps, it is relatively easy to transform it into a recognizable representation of the subject, so for complex subjects, at least, most effort is focused on folding the base to begin with. I begin in section 2 by establishing a mathematical definition of a base and several useful measures of its properties, including the tree graph that forms an abstraction of the base and that serves to define the target design. In section 3 I establish a set of necessary conditions relating key vertices of the crease pattern to properties of the desired base. These necessary conditions help identify “active paths” — primary valley creases that subdivide the crease pattern into convex polygons, which correspond to distinct portions of the base. Sections 4 and 5 introduce the “universal molecule,” an algorithm for filling in the creases in each polygon. Section 6 describes the mathematical and computer implementation of the algorithm and gives an example of its usage in the construction of an origami base. 2. Sufficient Conditions