Geometry paper
An Exploration of Origami through Geometry and Code
Deven Dayal
Abstract
1 Introduction
Geometry and origami have intersected in a few primary ways since its development as an art. First is the formalization of the folds and shapes by a set of geometric axioms and properties. The most well-known example of this is the set of Huzita Axioms, six basic rules of paper folding that can describe the formation of an incredible variety of structures. While basic, for example stating that a fold can connect any two lines or that any line can be folded onto any other line, even these axioms are proof that origami can provide amazing mathematical results; Huzita’s sixth axiom, for example, which states that any two points can be folded onto any two lines, is the equivalent of solving a cubic equation, where the crease line is a line that is simultaneously tangent to the parabolas formed by taking each point as a focus and the corresponding line as a directrix (Ghourabi).
Geometry and origami have intersected from the opposite direction as well. As computers and graphics processors advance, it becomes possible to start with algorithms and mathematics and end up with origami. In the design of nano-materials, scientists can engineer a fold pattern with optimized characteristics and then apply that fold pattern to a 2D membrane on a nanometer scale. The recent field of computational origami deals with all sorts of problems like this, and has given rise to advanced simulators, fold-pattern generators, and more that can help to understand and create objects in the world around us.
1.1 The Discovery of the Axioms
Huzita’s axioms were presented in 1991, more than 300 years after the earliest known reference to origami in Japanese literature (Smith). These axioms, which all describe geometrical transformations involving just a single fold, have been proven to be able to form all the constructions possible with the compass-and-straightedge techniques of Euclidean geometry in addition to many constructions that are impossible with these techniques (Alperin, Lang).
These six simple axioms have given rise to a great number of theorems, proofs, and novel approaches to problems across mathematics. One well-known theorem, which I later explore
�1
Although origami requires just a piece of paper, the geometry behind the folds of the ancient Japanese art are anything but simple. From basic creases which can solve problems that a straight-edge and compass cannot, to complex patterns and geometrical axioms that help scientists and engineers to design nanorobots, the folds of origami are unexpectedly complex. This paper is a survey of the role of origami in different mathematical and scientific fields, supplemented by MATLAB code which demonstrates some of the fundamental properties in a visual way.
through MATLAB code, was developed by Kazuo Haga, and is a stepping-stone between Huzita’s fundamental axioms and many of the more complex origami theorems. Haga’s Theorem shows that by folding a bottom corner up to any point along the top edge, three similar triangles can be observed:
Fig. 1: Visualization of Haga’s Theorem
(Krier)
These similar triangles A, B, and C prove that for any placement of P, letting the longer uncovered side length be x and the horizontal distance between P and the opposite side be y, x = 2y / (1+y). This ratio can be observed easily through the use of my MATLAB simulation.
In 2002, Koshiro Hatori presented a seventh axiom as an addendum to Huzita’s original six, stating that given any point and any two lines, a fold can be made which is perpendicular to one line that places the point onto the other line. Interestingly enough, all seven of these axioms had been published by the French geometer Jacques Justin in 1989, two years before Huzita published his six, but it was Huzita who received much of the credit for those original six and Justin’s seventh was never fully acknowledged. Hatori’s “late” addition to the accepted set of Huzita axioms naturally raised the question of whether or not the set of seven was complete or if there were more fundamental rules of origami which could be proven in the same way. Although many constructions have been found and many origami problems have been solved (angle quintisection, for example) which can not be described by Huzita’s axioms because they involve simultaneous creasing, there currently have been no further additions to these seven axioms, and for the time being they appear to be complete for single-fold formations.
A separate set of axioms was later developed to formalize the geometry of simultaneous creasing. These axioms describe a staggering amount of shapes and constructions that are difficult not only to physically fold but also to describe mathematically. Simultaneous folds allow for beautiful 3D shapes as well as complex problem solving. For example, using just three simultaneous folds, it is possible to solve a quintic polynomial equation:
Fig. 2: Folding to solve a quintic polynomial
�2
(Alperin, Lang)
As Alperin and Lang discovered, this can be generalized to the theorem that a polynomial of degree n can be solved with (n-2) simultaneous creases. This is possible through the use of Lill’s Method, named after Austrian engineer Eduard Lill who developed the technique of using reflections and perpendicular lines to solve a polynomial equation.
1.2 The Universal Molecule Algorithm
A good example to introduce the field of Computational Origami is Robert Lang’s work on the Universal Molecule Algorithm and the application he developed, TreeMaker. The recursive algorithm he developed produces folding and crease patterns based on a special convex polygon and a tree which describes the topology of the desired shape. Lang’s work on the geometry of origami is prolific and spans several topics, but this algorithm is especially notable as one of the “landmark[s] in modern computational origami” and the application he developed has been used to solve complex problems (Bowers, Streinu).
Fig. 3: An example crease pattern computed by Lang’s TreeMaker program
(Lang)
Such algorithms are not only interesting because of the visually-fascinating models they can produce but also because of their real-world practical applications. For example, Lang’s algorithm was utilized by a German engineering firm to find an optimal way to fold an airbag into a steering wheel. Using origami rather than repeated physical testing alone, Lang was able to successfully design a model in a way that saved the firm time and money (Brewin). Origami has been applied to the assembly of other car parts as well; engineer Zhong Yo of Oxford University applied origami mathematics to the design car bumpers that fold and crumple in a predictable way upon impact (Bennett). For cars and other everyday objects whose manufacturing techniques have remained fundamentally the same for decades, the introduction of origami and folding patterns could drastically improve the way in which they are made, improving speed, cost, and energy consumption.
2 The Potential of Computational Origami
Robert Lang’s influential Universal Molecule Algorithm played a large part in sparking the creation of the field of Computational Origami, which has found its way into improving manufacturing, healthcare, toys, computers themselves, and more. While current
�3
implementations of origami folding in practical applications are still limited, they already show the potential to revolutionize the objects we use and they way they are made.
2.1 Mimicking Nature
William Shih of the Harvard Wyss Institute is at the forefront of a new field called DNA origami, in which computational algorithms design pieces of DNA that can be folded to create capsules and shapes. The hope is that such origami constructions might one day reliably deliver drugs inside the body or work as small pieces inside microscopic machines (Wyss). That future might not be too far away; Shawn Douglas, also at the Wyss Institute, has already developed an origami-folded nanorobot which when placed in a petri-dish can identify and deliver antibodies to cancerous cells. It is an amazing feat for a robot “one-ten-thousandth of the width of the period at the end of this sentence”, and the tasks that such nanorobots are able to perform will only become more impressive as the technology and understanding of origami construction improve (Bennett).
Shih contrasts the method of construction by folding with the typical industrial or sculptural method of taking an object and removing pieces until it fits a desired shape. Instead, Shih argues, “the way that nature does things is different”, and origami-like patterns can be seen in the formation of proteins, molecules, and organisms. Shih believes mimicking nature through origami could be the key to finding methods of manufacturing far more efficient than those used in today’s world (Bennett).
2.2 The Future of Folding
An even smaller-scale example of the application of computational origami to real-world problems is a 2009 project at MIT, which used the art of origami to design nano-scale electronics. Under Professor Yang Shao-Horn, researchers at MIT developed a microscopic super-capacitor with a single fold. Adding more folds similar to the way an accordion is folded, they believed, would allow the capacitor not only to hold more charge but also to deliver a higher current as more layers would allow electrons to flow more freely (Trafton). True, it was no crane, but the simple folds in the capacitor the researchers created hold promise for marketable nanoscale energy storage as their techniques for folding improve. One interesting method of constructing these nanoscale forms is to embed gold wires and then magnetically apply a Lorentz force on the faces of the creased shape, lifting them into position. Being able to fold a thin material in this way increases surface area, therefore maximizing capacitance, while minimizing the 3D volume of the capacitor. Not only do origami techniques show promise to revolutionize the way objects of all sizes are created, they also might one day allow objects to “take on multiple dissimilar tasks, repair themselves, or evolve” after their creation (Bennett). Being able to program and manipulate materials that can fold in computed patterns could allow for the creation of a “Swiss Army knife-like tool” that could be easily morphed from one shape to the next (Bennett).
In 2010, MIT researchers developed a tiny structure which can be programmed to shift forms between the canonical origami shapes of an airplane and a boat. Although these forms may not have any real use at the moment and are nowhere near as useful as a Swiss Army knife, the algorithms used by these and other researchers, which optimize things like fold order and the number of actuators on the foldable sheet, can be used to explore a whole world of possible
�4
shapes and functionality in a way that would not be possible by even the best origami artist (Matson).
Aside from creating new materials and objects, algorithms and computational origami can also be used to understand things nature has already folded: the proteins inside our bodies. Mistakes in protein folding can lead to disease and genetic malfunctions in processes that are complex and not yet understood by scientists; further understanding of the way they fold and form could help us to comprehend disease, evolution, and genetics at an unprecedented level (Ireland).
3 The Axioms in MATLAB
I worked to create two MATLAB functions to visually demonstrate some of the fundamental axioms and theorems in the geometry of origami. The source code for both MATLAB .m files can be found in Section 4.1 of the appendix.
3.1 Demonstrating Haga’s Theorem: foldFraction.m
The function foldFraction demonstrates Huzita’s Axioms as well as Haga’s theorem, interactively calculating the equation of the crease line required to fold a corner point to the top edge in order to divide the top edge into a specified fraction. The function also calculates the side lengths BQ and AP, verifying that the statement BQ = 2AP/(1+AP) holds true in the following diagram:
Fig. 4: Diagram of the crease demonstrating Haga’s Theorem
("Mathematics of Paper Folding.")
The desired fraction AP/PB can be specified using the slider control, after which the function will recalculate the crease line and redraw the figure.
3.2 Solving a Cubic Equation with Origami: cubicCrease.m
The function cubicCrease contains a few of the crucial steps in proving that completing the crease of Huzita’s 6th axiom solves a cubic equation and then displays a visualization of the fact that a the slope of a line tangent to two parabolas, constructed from a focus and directrix determined by the coefficients of the cubic polynomial, is a solution to the polynomial.
�5
4 Appendix
4.1 Source Code
a) foldFraction.m
function foldFraction(x) % Animates the use of Haga's theorems to perfectly divide the side of a % square % x is the fraction we want to produce if nargin < 1 startX = 0.5; else startX = x; end f = figure; set(f,'units','normalized','position',[.3 .3 .5 .75]); [a,b,c,d] = initPlot; initControls(f,startX); createFold(a,b,c,d,startX); end function initControls(fig,x) % add figure controls slider = uicontrol('Parent',fig,'Style','slider','Position', [81,54,419,23],... 'value',x, 'min',0, 'max',1); set(slider,'Callback', @redraw); tooltip = sprintf('Select a fraction to construct'); set(slider,'TooltipString',tooltip); bgcolor = [1 1 1]; sliderLabel = uicontrol('Parent',fig,'Style','text','Position', [240,25,100,23],'String',sprintf('Crease for x = %. 3f',get(slider,'Value')),'BackgroundColor',bgcolor); align([slider, sliderLabel],'HorizontalAlignment','center'); end function createFold(a,b,c,d,x) % abcd defines a square % x is the fraction to create fold for % fold points: p,q,r % find the lengths of segments bq = (2*x)/(1+x); ap = bq/(2-bq); % find the positions of the points based on corners + lengths p = [a(1) + ap, a(2)]; % find the crease - it is the symmetrical axis between d and p % first find midpoint midX = (p(1)-d(1))/2; midY = (p(2)-d(2))/2; % the slope of the fold is the opposite reciprocal of the line connecting d % and p
�6
slope = ((d(2)-p(2))/(d(1)-p(1))); foldSlope = -1/slope; % draw the fold f = @(x) foldSlope*(x-midX) + midY; x = [0,1]; y = f(x); plot(x,y,'--gs'); intercept = 0; % now reflect p d = (p(1) + (p(2)-intercept)*foldSlope)/(1+foldSlope^2); pReflectedX = -(2*d - p(1)); pReflectedY = -(2*d*foldSlope - p(2) + 2*intercept); % plot p plot(pReflectedX, pReflectedY, '-ro'); str1 = sprintf('x = %s', rats(p(1))); text(pReflectedX,pReflectedY+.1,str1); % plot q, which is the intersection of the fold and line bc (x=1) q = [1,f(1)]; plot([pReflectedX, q(1)], [pReflectedY, q(2)], '-ro'); % plot the point connecting the intercept to p plot([0, pReflectedX], [f(0), pReflectedY], '-ro'); fprintf('Using Hagas theorem:\n') fprintf('BQ = %f\n', bq); calcedAp = pReflectedX-a(1); fprintf('2AP/(1+AP) = %f\n', (2*calcedAp)/(1+calcedAp)); fprintf('Equation of crease: y = %.3fx + %.3f\n', foldSlope, midY - foldSlope*midX); end function redraw(hObject,callbackdata) [a,b,c,d] = corners; newVal = get(hObject,'Value'); clf; initPlot; initControls(gcf,newVal); fprintf('\n'); createFold(a,b,c,d,newVal); end
cubicCrease.m
function cubicCrease( a,b,c ) % solves a cubic equation of the form x^3 + ax^2 + bx + c = 0 using origami % methods (Huzita's 6th Axiom) figure hold on set(gcf,'units','normalized','position',[.3 .3 .5 .75]); axis off set(gcf,'color','w'); maxXAxis = 5; maxYAxis = 5; xAxisRange = [-maxXAxis:.1:maxXAxis]; axis([-maxXAxis maxXAxis -maxYAxis maxYAxis]) %[cornerA,cornerB,cornerC,cornerD] = initPlot;
�7
% first define two points p1 = [a, 1]; p2 = [c, b]; % label p1 plot(p1(1), p1(2), '-bo'); str1 = sprintf('P1 = (%.3f, %.3f)', p1(1), p1(2)); text(p1(1),p1(2)+.5,str1); % label p2 plot(p2(1), p2(2), '-ro'); str2 = sprintf('P2 = (%.3f, %.3f)', p2(1), p2(2)); text(p2(1),p2(2)+.5,str2); % and two lines range = [-maxXAxis:.01:maxXAxis]; line1 = -1; % y = -1 plot(range, line1, '-b'); line2 = @(c,y) -c*ones(size(y)); % x = -c where y is a vector of required length plot(-c, range, '-r'); % the crease line3 formed by placing p1 and p2 on line1 and line2, % respectively, is defined by y = tx + u and is a tangent to both of the % parabolas created by taking a point as a focus and the corresponding % line as a directrix parabola1 = @(x) (x.^2-2*a*x+a.^2)/4 plot(range, parabola1(range)); % if (x1, y1) is a point on the crease... deriv1 = @(x1) (1/2)*(x1-a) % slope of parabola 1 % rewrite deriv1 in point-slope pointSlope1 = @(x, x1, y1) (1/2)*((x1-a)*x - (x1-a)*x1) + y1; u1 = @(x1, y1) (-1/2)*(x1-a)*x1+y1; % u is the y-intercept of the crease u1 = @(t) -t^2 - a*t % substitution % second parabola defined by (y-b)^2 = 4cx, y = sqrt(4cx) + b parabola2A = @(x) sqrt(4*c*x) + b parabola2B = @(x) -sqrt(4*c*x) + b % plot both halves of the sideways parabola parabola2Range = [-maxXAxis:.1:maxXAxis]; parabola2Range(parabola2Range<0) = []; plot(parabola2Range, parabola2A(parabola2Range), '-r'); plot(parabola2Range, parabola2B(parabola2Range), '-r'); deriv2 = @(y2) 2*c/(y2-b) % differentiate u2 = @(x2, y2) y2 - (2*c*x2)/(y2-b); % after point-slope, the y-intercept u2 = @(t) b + c/t % substitution % u2 = b+c/t, and u1 = -t^2 - at, and u1=u2 if (c~=0) possible = roots([1, a, b, c]); % so if c~=0: t^3 + at^2 + bt + c = 0 else possible = roots([1, a, b]); % and if c==0: t^2 + at + b = 0 end indexOfSoln = find(possible==real(possible)); soln = possible(indexOfSoln); crease = @(x) soln*x + u1(soln); fprintf('Solution: x = %.3f\n', soln); fprintf('Equation of crease: y = %.3fx + %.3f\n', soln, u1(soln)); plot(range, crease(range), '--g'); end
�8
c) formatPlot.m
function [fig] = formatPlot( figInput ) if nargin < 1 fig = gcf; else fig = figInput; end % make the plot look nice for origami hold on axis([-.5, 1.5, -.5, 1.5]); axis off set(fig,'color','w'); end
d) corners.m
function [a,b,c,d] = corners.m % returns the corners of the paper a = [0,1]; % top left b = [1,1]; % top right c = [1,0]; % bottom right d = [0,0]; % bottom left end
e) initPlot.m
function [a,b,c,d] = initPlot formatPlot; % plot initial square [a,b,c,d] = corners; squareCoords = [a;b;c;d;a]; % loop back around to a to complete the square plot(squareCoords(:,1), squareCoords(:,2), '-o'); end
�9
4.2 References
Ghourabi, Fadoua. Algebraic Interpretation of Huzita’s Axiomatization of Origami Construction. Diss. U of Tsukuba, 2008. N.p.: n.p., n.d. Print.
Hull, Thomas C. "Solving Cubics With Creases: The Work of Beloch and Lill." JSTOR. The American Mathematical Monthly, Apr. 2011. Web. 07 May 2015.
Smith, John. "Bits of Smith : Notes on the History of Origami." Bits of Smith : Notes on the History of Origami. N.p., n.d. Web. 07 May 2015.
Lang, Robert J., and Alperin, Roger C.. One-, Two-, and Multi-Fold Origami Axioms. Http:// www.math.sjsu.edu/. San José University, 6 Dec. 2006. Web. 7 May 2015.
Krier, Jaema L. Mathematics and Origami: The Ancient Arts Unite. N.p., Spring 20016. Web. 7 May 2015.
Bowers, John C., and Ileana Streinu. "Lang’s Universal Molecule Algorithm." Annals of Mathematics and Artificial Intelligence (2014): n. pag. Springer Link. 01 Oct. 2014. Web. 07 May 2015.
Brewin, Bob. "Computational Origami." Computerworld. N.p., 10 May 2004. Web. 07 May 2015.
Trafton, Anne. "Knowing When to Fold." MIT News. MIT, 24 Feb. 2009. Web. 07 May 2015.
Bennett, Drake. "Is Origami the Future of Tech?" Bloomberg.com. Bloomberg, n.d. Web. 07 May 2015.
"DNA Origami." Wyss Institute at Harvard. Wyss Institute, n.d. Web. 07 May 2015.
Matson, John. "Shifty Science: Programmable Matter Takes Shape with Self-Folding Origami Sheets." Scientific American Global RSS. Scientific American, 28 June 2010. Web. 07 May 2015.
Lang, Robert J. "TreeMaker." TreeMaker. N.p., n.d. Web. 07 May 2015.
Ireland, Corydon. "Protein Folding: Life's Vital Origami." Harvard Gazette. Harvard Gazette, 13 Mar. 2008. Web. 07 May 2015.
"Mathematics of Paper Folding." Wikipedia. Wikimedia Foundation, n.d. Web. 07 May 2015.
�10