HomeJournalThis post

Origami Crease Patterns That Actually Fold

A theorem-aware crease-pattern workflow separating vertex checks, fold assignments, global motion, collision, layer order, and physical paper evidence.

JP
JP Casabianca
UI/UX designer and full-stack engineer · Bogotá

Origami crease patterns can satisfy the eye and still contradict the geometry required by a flat sheet. Before line weight, color, or tessellation rhythm, each vertex needs an ordered angle record and every shared crease needs one consistent mountain or valley meaning.

This guide applies local theorem checks, visualizes assignment conflicts, separates local admissibility from global folding, and finishes with a physical paper trial. A runnable vertex fixture makes the proof scope explicit.

Model origami crease patterns as constrained graphs

Origami crease patterns are planar graphs embedded in a sheet, with boundary edges, fold edges, vertices, faces, and mountain or valley labels. Treat geometry and assignment as separate layers so a beautiful line drawing cannot hide an impossible vertex. Begin with exact or tolerance-aware angles around every interior vertex, then check the local conditions before simulating global motion.

The worked six-crease vertex uses positive sectors of 40, 60, 80, 100, 60, and 20 degrees: they total 360, both alternating sets total 180, and four mountain labels differ from two valley labels by two. Passing those equations does not prove the entire mesh folds flat; it only removes two known local contradictions. That distinction is the thesis: theorem checks are filters that direct attention, not certificates that replace a physical fold.

The single worked vertex uses sectors of 40°, 60°, 80°, 100°, 60°, and 20° in clockwise order. All six sectors are positive, total 360°, and produce alternating sums of 180°; the four-mountain, two-valley assignment is tested separately, so neither the diagram nor the code can hide a coincident ray as a zero-width success.

Origami crease patterns angle wheelSix distinct rays form positive clockwise sectors of 40, 60, 80, 100, 60, and 20 degrees; both alternating sums equal 180 degrees. 40°60°80°100°60°20°
  • Declared input
  • Inspectable transformation
  • Measured output
Figure 1: The SVG, prose, and fixture share one ordered 40°/60°/80°/100°/60°/20° vertex with no coincident rays.

Check origami crease patterns with Kawasaki

At a single-vertex flat fold with an even number of creases, alternating sector angles sum to 180 degrees. Sort incident rays consistently, compute sectors including the wraparound angle, and compare odd and even sums within a declared tolerance. Kawasaki theorem catches a large class of locally impossible designs, but boundary vertices, coincident rays, numerical noise, and non-flat targets require explicit handling.

Render an angle wheel that labels every sector and both alternating sums. If the check fails, highlight the contributing angles rather than showing one red badge. Designers can then move a ray, remove a degenerate sector, or intentionally classify the vertex outside the theorem's scope instead of nudging coordinates until an opaque validator turns green.

The theorem scope and alternating-sum rule follow MIT’s single-vertex crease-pattern lecture. The validator first rejects non-finite, non-positive, odd-count, or non-360° sectors, then evaluates the two alternating totals; ordering these checks avoids reporting a degenerate geometric input as a meaningful theorem pass.

Runnable artifact: The vertex checker evaluates alternating sector angles and the mountain-versus-valley count independently.

Save this proof as flat-fold-vertex.test.mjs and run node flat-fold-vertex.test.mjs. Expected final line: PASS: vertex constraints.

import assert from "node:assert/strict";
const validateVertex=angles=>{assert.ok(angles.length>=4&&angles.length%2===0,"even crease count");assert.ok(angles.every(Number.isFinite),"finite sectors");assert.ok(angles.every(a=>a>0),"positive sectors prevent coincident rays");assert.ok(Math.abs(angles.reduce((a,b)=>a+b,0)-360)<1e-9,"sectors total 360");return angles};
const kawasaki=angles=>validateVertex(angles).filter((_,i)=>i%2===0).reduce((a,b)=>a+b,0)===180;
const maekawa=folds=>Math.abs(folds.filter(x=>x==="M").length-folds.filter(x=>x==="V").length)===2;
const valid=[40,60,80,100,60,20];assert.equal(kawasaki(valid),true);assert.equal(maekawa(["M","M","M","M","V","V"]),true);
assert.equal(kawasaki([60,50,80,100,50,20]),false);assert.equal(maekawa(["M","M","M","V","V","V"]),false);
assert.throws(()=>kawasaki([40,60,80,100,80,0]),/positive/);assert.throws(()=>kawasaki([40,60,80,100,90,-10]),/positive/);assert.throws(()=>kawasaki([40,60,80,100,60,30]),/360/);
console.log("PASS: vertex constraints");

Assign origami crease patterns with Maekawa

For an interior flat-foldable vertex, the number of mountain and valley folds differs by two. A mountain valley assignment is therefore more than a visual convention: it participates in local consistency. Store the assignment on the crease edge so neighboring vertices share the same physical fold, then compute each vertex's signed count.

An assignment graph can show which unlabelled edges control several failing vertices. The worked vertex uses four mountains and two valleys; reversing one crease breaks the count at both endpoints in a mesh. Keep unassigned creases distinct from flat or auxiliary lines. Treating unknown as valley makes the diagram look complete while fabricating a choice that a later layer-order solver must somehow honor.

Assignment evidence is rendered on the same six ray identifiers used by the angle wheel, even though line style is omitted from the simplified hero. A failing fixture changes one mountain to valley and asserts the count failure, while the prose continues to distinguish that combinatorial result from any statement about collision, layer order, or continuous motion.

Separate local origami crease patterns from global folding

Kawasaki and Maekawa are necessary local conditions in their stated settings, not a global collision or layer-order proof. A mesh can satisfy every vertex and still self-intersect, demand contradictory stacking, or lock during a continuous fold. Add face orientation, hinge motion, layer ordering, and collision tests in stages, recording which model assumptions apply.

Physical paper adds thickness, grain, stretch, and imperfect scoring that ideal geometry omits. My preferred workflow stops calling a pattern validated after the vertex pass; it says locally admissible, then names the global and material checks still open. That language preserves creative freedom while making the remaining uncertainty useful to collaborators and fabricators.

One failure specimen can satisfy both local equations yet collide when faces move, which is why the status label reads locally admissible. The next evidence layer records face orientation and stacking constraints; the paper trial then records thickness and scoring behavior, preserving three different kinds of uncertainty instead of compressing them into a green “valid” badge.

VariantAngle checkM/V checkMeaningNext move
APassPassLocally admissibleSimulate
BFailPassAngle conflictMove ray
CPassFailAssignment conflictFlip edge
DPassPassCollision laterReview layers
Figure 2: Local checks identify a failure class and repair direction without claiming global foldability.

Study origami crease patterns through primary geometry

MIT OpenCourseWare's single-vertex class notes and single-vertex lecture present Kawasaki's and Maekawa's theorems in their local setting; Erik Demaine and Joseph O'Rourke's Geometric Folding Algorithms supplies broader computational context. Use the original theorem statements and their assumptions when implementing checks. Flat-foldability has several meanings across a vertex, a complete crease graph, rigid panels, and physical paper.

The article's angle and assignment fixture covers one interior vertex only. A simulation or successful paper model can reveal other failures, but neither should be misreported as a general mathematical proof.

The live MIT course page and Geometric Folding Algorithms are used for theorem scope and computational context. Each source sits next to the claim it supports, and the article avoids presenting a simulation or a successful hand fold as proof of global flat folding—both remain experiments under additional assumptions.

Design origami crease patterns from failure atlases

Create a small family around one valid vertex: perturb an alternating angle sum, reverse one fold, merge two rays, add an odd incident count, and create a global overlap despite local passes. Show the failed constraint on the same visual scale as the valid pattern. This teaches the geometry faster than a gallery of successful tessellations because each edit has a named consequence.

Continue relationship-led composition with constraint-based layout, nonperiodic structure in Penrose tiling posters, provenance-aware construction through Islamic star patterns, and inspectable vector changes in SVG path morphing. Those studies share graph discipline while leaving the folding mechanics here.

The failure atlas now includes a zero sector, a negative sector, a total-angle error, an alternating-sum error, an assignment error, and a locally passing pattern reserved for global review. Because every variant changes one named condition, the reader can connect a highlighted ray or label to a specific repair rather than reverse-engineering a generic failure state.

  1. 1Embed

    Order rays and compute every sector angle.

  2. 2Assign

    Share mountain and valley labels across edge endpoints.

  3. 3Simulate

    Inspect motion, layers, and collision beyond vertices.

  4. 4Fold

    Score the intended paper and record material deviations.

Figure 3: Geometry, assignment, global motion, and paper trials remain separate evidence layers.

Prototype origami crease patterns in material

Export mountain, valley, boundary, cut, and reference lines as separate named layers with a scale bar and orientation mark. Score one specimen on the intended paper, fold it in a documented order, and photograph intermediate states from consistent viewpoints. Record paper weight, fiber direction, crease tool, direction convention, and any vertex that needs relief or behaves differently from the ideal model.

Do not hide a hand-adjusted fold behind a clean render. If thickness compensation moves a line, update the geometric source and rerun local checks. The tactile prototype is not a failure of computational design; it is the measurement stage where zero-thickness abstractions meet a sheet that can buckle, tear, and remember previous motion.

I cut the prototype from a print generated by the same coordinates tested in code, then mark any physical relief cut or shifted crease directly on that source. A second run of the local checks after material adjustment proves the paper experiment did not silently fork from the published geometry, while photographs document where the zero-thickness model remained insufficient.

Release origami crease patterns with proof scope

The receipt includes source inspiration and rights, sheet boundary, coordinate units, vertex and edge IDs, angular tolerance, sector order, theorem scope, alternating sums, fold assignments, signed counts, unassigned edges, local status, global simulation version, collision and layer-order findings, export layers, physical material, scoring method, fold sequence, deviations, photographs, accessibility description, and hashes. Fail publication when angle order is ambiguous, unknown assignments are silently coerced, a local check is described as global proof, physical edits are missing from the source, or a diagram lacks line-type labels independent of color. A strong pattern can remain speculative, but its speculative boundary should be as carefully drawn as the creases themselves.

The release package stores the six ordered sectors, cumulative ray angles, six edge assignments, tolerance, local results, and unresolved global checks in machine-readable form beside the SVG. A reviewer can therefore recalculate every label from the array and detect if future visual editing moves a ray without updating the theorem fixture.

Origami crease patterns need local geometric proof before decorative styling. Preserve the theorem checks, layer-order caveats, and physical fold trial with every published family of origami crease patterns.