Two conditions at a point
Take a point in the middle of a sheet with several creases radiating from it. Whether the paper can be pressed flat around that point turns out to be decidable by inspection — two tests, both arithmetic, neither of them requiring the fold to be attempted.
That is a stronger result than it sounds. Most questions of the form “can this be done” in geometry are not settled by counting, and this one is.
Before either condition: the sheet must be flat
There is a prerequisite so basic it is easy to skip, and skipping it causes confusion later.
The angles around an interior vertex must sum to exactly 360°. That is not a folding condition — it is the condition for the unfolded sheet to be flat. A vertex whose angles sum to less than a full turn describes a cone; more than a full turn describes a saddle; and neither is a sheet of paper that was ever flat.
This is called developability, and every pattern on this site is checked for it before anything else. A crease pattern that fails it is not a hard folding problem; it is a drawing of paper that was cut or stretched.
Kawasaki’s condition, on the angles
Number the sectors around the vertex in order and add up alternate ones. A flat-foldable vertex has both alternating sums equal, and since together they make a full turn, each must be half of it.
The reason is a walk. Imagine an ant crawling around the vertex on the folded paper, staying at a fixed distance from it. On the flat-folded sheet the ant travels back and forth along a line segment: forward across one sector, backward across the next, forward across the third. To return to where it started, the forward distances must equal the backward ones — and those are the alternating sums.
Two immediate consequences fall out, both useful:
The number of creases must be even. An odd number cannot alternate consistently around a closed cycle. A three-crease vertex cannot fold flat, ever, whatever the angles.
Opposite sectors in a degree-four vertex are supplementary. With four creases the condition reduces to , which is why every flat-foldable four-crease vertex has the same two-parameter form.
Maekawa’s condition, on the assignment
The second test counts folds rather than measuring angles. At every flat-foldable interior vertex,
where is the number of mountain creases and the number of valleys.
The argument is about winding rather than about paper, which is why the constant is so specific. It also means the two conditions are testing genuinely different things: Kawasaki sees only the angles and Maekawa sees only the assignment, and a vertex can satisfy either while failing the other.
The assignment everybody draws, which does not fold
The cleanest demonstration that Maekawa has teeth is the preliminary base, and it catches almost everyone.
Take a square. Fold both diagonals one way and both midlines the other. That is how the preliminary base is described in every book, it is what a folder does, and at the centre it produces four mountains and four valleys.
Four and four differ by zero. Maekawa says the difference must be two. So that assignment cannot fold flat.
The resolution is that the description is wrong rather than the theorem. When the base is actually collapsed, the four “midline” creases at the centre do not all end up the same way: one of them reverses. Nobody notices, because the collapse does it without being asked, and the instruction “mountain-fold both midlines” describes the preparation rather than the result.
The pattern on this site has its assignment found by enumeration rather than stated, for exactly this reason. The generator lays down the geometry, tries all 256 assignments of the eight half-creases, and keeps one that passes. Writing down what everybody says the base is would have produced a figure that cannot be folded.
How many survive
Enumerating raises an obvious question: how many assignments of a given set of creases actually pass?
For the preliminary base the answer is 112 of 256. That number is exactly , which is worth checking: with all sectors equal at 45°, Kawasaki is satisfied by every assignment and the big-little-big condition has nothing to bite on, so the local tests reduce to Maekawa alone — and Maekawa allows exactly the three-and-five splits.
The enumeration and the combinatorics agree, which is a good check on both.
For a four-crease vertex with unequal sectors the answer is 4 of 16, because big-little-big does bite. The fraction falls as the pattern grows, and it falls fast.
Together they are enough — at one vertex
The strong statement is that Kawasaki and Maekawa, plus big-little-big, settle the single-vertex case completely. A vertex satisfying all three folds flat; one failing any of them does not.
That is a genuinely satisfying result. It means the local question has a complete answer obtainable by arithmetic, with no search and no attempt to fold.
It is also the last time anything in this subject is that easy. Whether a whole sheet folds flat is a different question, it is not the conjunction of the vertex conditions, and it is NP-hard.
What the conditions do not see
Being precise about the boundary is more useful than admiring the theorems.
They are local. Each is evaluated at one vertex using only the creases meeting there. Two vertices can each be fine and interact badly.
They ignore layers. Neither condition says anything about the order in which the flaps stack, and a self-intersection — paper passing through paper — is invisible to both.
They ignore the boundary. A crease running to the edge of the sheet has a free end, and the conditions are stated for interior vertices. Boundary vertices are unconstrained, which is why a crease pattern’s edge is where a lot of the freedom lives.
They assume the creases are straight and meet at a point. A curved crease has neither property, and none of this applies to it at all.
Checking, in practice
Everything above is implemented in lib/fold.js, and the implementation details matter because they are what makes the figures trustworthy.
Sectors are computed by sorting the creases at a vertex by the angle at which they leave it and taking successive differences. Developability is that sum against . Kawasaki is the alternating sum. Maekawa is a count. Big-little-big scans for a sector strictly smaller than both neighbours and checks the two creases bounding it.
assertFlatFoldable runs all four over every interior vertex and throws rather than returning false. That choice is deliberate: a generator that would emit an unfoldable pattern fails the build rather than shipping a figure that a reader will try to fold and cannot.
It has caught real errors. The first Miura fold written for this site had every vertex at four mountains and no valleys, which is developable, satisfies Kawasaki, and cannot fold. The picture looked entirely convincing.
Sufficiency, and what it costs to claim
Necessity is easy: each condition is derived from a property the folded state must have. Sufficiency — that satisfying all three guarantees the vertex folds — is a stronger claim and needs an argument of a different kind.
The proof is constructive. Given a vertex satisfying the conditions, repeatedly find a sector that is a strict local minimum, check that its bounding creases differ, and cancel it: fold the two neighbouring sectors together, removing the small one and merging its neighbours into a single larger sector. The result is a vertex of two fewer creases which still satisfies the conditions.
Recurse. The degree falls by two each time, and since it started even it reaches two — a single crease through the point, which folds trivially.
Unwinding the recursion gives an explicit folded state, so the vertex folds. The algorithm runs in time linear in the number of creases, and it is the reason the single-vertex problem is considered completely solved.
Who found them, and when
Both theorems are recent, and their attribution is tangled in a way that is characteristic of this field.
Maekawa’s theorem is named for Jun Maekawa, who stated it in the 1980s. It was independently found by Jacques Justin, and it is sometimes called the Maekawa–Justin theorem for that reason.
Kawasaki’s theorem is named for Toshikazu Kawasaki, who proved it in 1989. Justin had it earlier, and so, apparently, had Robert Lang. It is occasionally the Kawasaki–Justin theorem.
Justin’s name attaches to both and to neither, which happens when results circulate in a community that publishes in newsletters and conference proceedings rather than in journals. The mathematics of origami spent its first decades in a literature that was not indexed.
The conditions are independent
It is worth demonstrating rather than asserting that both tests are needed, because a reader could reasonably suspect one implies the other.
Kawasaki without Maekawa. Take the preliminary base’s geometry — eight creases at 45° — and assign four mountains and four valleys. Every alternating sum is 180°, so Kawasaki is perfectly satisfied. The counts differ by zero, so Maekawa fails. The vertex cannot fold.
Maekawa without Kawasaki. Take four creases at 90°, 60°, 90° and 120°, and assign three mountains and one valley. Maekawa is satisfied. The alternating sums are 180° and 180°… which happens to work, so pick different angles: 100°, 60°, 90°, 110°. Still three-and-one, still Maekawa; the alternating sums are 190° and 170°, and Kawasaki fails. The vertex cannot fold.
Neither test implies the other, and a pattern needs both plus the third condition. That is three independent filters on a space that started at , which is why so little survives.
What a checker is for
There is a reason this site implements the conditions rather than trusting itself to draw correct patterns, and it is not caution about the mathematics.
The theorems are easy. Applying them to a pattern of forty vertices while also arranging the geometry, choosing the assignment and making the figure legible is not, and the failure is silent: a wrong pattern draws exactly as well as a right one. Nothing about the picture indicates which it is.
So the check runs on every pattern, at build time, and throws. The cost is a few milliseconds and the benefit is that a reader who prints a printable pattern and spends an evening on it will not find that the site was guessing.
Where the model stops
Zero thickness. The conditions describe a sheet with no thickness folding into a plane. Real paper folded flat has a stack whose height grows with the layer count, and for a complex model that is millimetres at the core.
Perfectly sharp creases. A crease is treated as a line about which the paper turns instantaneously. A real one has a radius, and the radius consumes angle.
Fully flat. The theorems concern the completely flat state. A model folded to 95% is not covered by any of this, and neither is the motion of getting there.
Straight creases at a point. As above — curved creases and creases that do not meet at a vertex are outside the theory entirely.
The figures show one vertex. Every picture here is a single point with a handful of creases. That is where the theorems are exact and where the subject is least interesting.
From one vertex to a pattern
The conditions are complete for a single vertex, and a crease pattern is many vertices. Seeing how the difficulty enters is the natural next step.
Two vertices joined by a shared crease are already interesting. Each imposes conditions on that crease’s assignment, and the two sets of conditions have to be compatible — which they usually are, because each vertex constrains counts rather than specific creases. So far, so easy.
What goes wrong is layers. Each vertex determines a local stacking order for the paper around it, and where two vertices share a region those orders must agree. With three vertices the agreement conditions start interacting; with many, they form a constraint system that can be unsatisfiable without any individual vertex being at fault.
That is the whole shape of the field: a local theory that is complete and elementary, a global problem that is NP-hard, and no useful bridge between them.
What the conditions are worth
Given that they do not settle the real question, it is fair to ask what the local conditions buy.
They are a filter, and a cheap one. Checking a pattern of forty vertices takes microseconds and rejects the overwhelming majority of assignments. Anything that survives might fold; anything that fails certainly does not.
They are also a design tool. A designer laying out a pattern uses them constantly and mostly without naming them — the reflex that says a vertex needs an odd crease out, or that the sectors have to come in supplementary pairs, is Maekawa and Kawasaki internalised.
And they are the only part of the theory that gives a reason. The global algorithms, when they work, produce an answer without an explanation. The vertex conditions say why: this angle, this count, this collision.
Why these two and not others
A question worth asking of any pair of necessary conditions: why should these particular ones be the ones that matter?
Both come from a closure requirement, and that is the common structure. The paper is continuous around the vertex, so anything computed by walking all the way round must come back to where it started.
Walk round measuring how far the folded cross-section has travelled, and the forward and backward distances must cancel — which is Kawasaki. Walk round counting turns, and the total must be a whole circle — which is Maekawa. Two different quantities, the same closure argument, two independent conditions.
That also explains why there are exactly two of this kind. A closed walk gives one condition per conserved quantity, and around a vertex there are two things worth conserving: position along the folded line, and direction. The third condition is of a different kind entirely — it is about collision rather than closure — which is why it was found later and why it does not look like the others.
The ladder from here
Later rungs: Kawasaki’s theorem proved by the ant argument in full. Maekawa’s theorem as a winding number. Big-little-big and its generalisations. Layer ordering, which the conditions do not reach. Counting flat-foldable assignments. One-dimensional flat-foldability, where the whole problem is tractable. The NP-hardness result. The fold-and-cut theorem. Boundary vertices and the freedom they carry. And curved creases, where none of these theorems has an analogue.
Kawasaki’s theorem is a statement about alternating sums that a schoolchild can verify with a protractor, and it was first written down in 1989. The result is elementary, the subject is ancient, and the two did not meet until the decade the fax machine peaked.