What it costs to know

The refusal that reads the list once

There are five ways of saying no to a crease pattern here, and their costs are two hundred and eighty-two, a hundred and twenty-six, a hundred and fifty-seven, thirty-nine thousand six hundred and twenty-one — and a search that is refused outright. On the largest patch the four cheap tests together do less work than one of them looks like it should, and the fifth cannot be started. A refusal that reads the crease list once is the only kind that scales.

Assumes The order the refusals come in and A proof in one pass.

Five ways of saying no to a crease pattern were ranked here once already, and the ranking was by what each costs and by what each says no to first. A sweep over pairs of creases catches two drawn across one another; a pass over the vertices catches an angle or a count; a walk over the panels catches a pattern whose two routes to the same panel disagree; a pass over the crease list catches letters that contradict themselves; and an enumeration of every ordering of the panels catches everything else it can reach.

Run all five over the four test populations and the tally was five, nought, nought, nought, six. The fourth had nothing to fire on.

That has changed, and the change is instructive about both the test and the population.

Which refusal fires firstFive ways of saying no to a crease pattern, in order of what they cost, with every member of the four test populations recorded against the first one that refuses it. The cheapest test catches the most, the two in the middle catch nothing here because the cheapest had already caught their cases, and the most expensive is the only one that reaches the rest.the bar is how many of the 38 patterns each refusal is the first to catchtwo creases cross5one sweep over pairs of creasesa vertex condition fails0one pass over the verticesthe panels do not place0one walk over the panelsthe letters force a loop1one pass over the crease listno ordering exists6every ordering of the panels26 of the 38 are refused by none of these and are folded, undecided, or waiting on a search too large to run
Fig. 1 The same five refusals over the four populations with the five clipped tessellation patches added. Thirty-eight patterns, five caught by the crossing sweep, one by the letters, six by the search, and twenty-six by none of them.

Why only one

The tally is worth reading carefully first, because the number that changed is small and the reason it is small is the finding. Thirty-three patterns became thirty-eight, and the layer refusal went from nought to one. Twenty-two refused by nothing became twenty-six. Nothing else moved: the crossing sweep still catches five, the vertex pass and the panel walk still catch none, and the search still catches six.

The patches are the patterns whose letters can contradict themselves, and only one of the five does. That is not a weak result; it is a result about the builder rather than about the test.

The tessellation builder does not draw the letters on. It propagates the vertex conditions to a fixed point, branches where propagation stalls, and takes what comes back. What came back on the square patch was a lettering that satisfied every condition and forced a circle of twenty-eight panels — so the builder now checks, and where it finds a circle it redraws with the branch order randomised until it finds a lettering without one.

Four of the five patches find a clean lettering within forty draws. The rhombille does not, and it is the one the ladder catches. So the ladder is reporting, accurately, that this collection now ships one pattern whose own letters are provably inconsistent — and that it ships four more that were in that state until the builder was taught to check.

How often a redrawn lettering is consistent with itselfIndependent letterings drawn from each pattern, and how many of them the letters do not contradict. A pattern this site prints is nearly always consistent whatever letters it is given; a tessellation patch cut from the same construction almost never is.the bar is the share of draws whose letters agree among themselvesa draw that disagrees is a proof that the pattern has no flat folded state with those lettersthe preliminary base200 of 2008 panels · 8 creases · 0 contradict themselvesthe square twist198 of 2009 panels · 12 creases · 2 contradict themselvesthe Yoshimura190 of 20065 panels · 86 creases · 10 contradict themselvesthe Miura fold181 of 20024 panels · 38 creases · 19 contradict themselvesa square twist patch26 of 20049 panels · 84 creases · 174 contradict themselvesa hexagonal patch2 of 20077 panels · 142 creases · 198 contradict themselvesa rhombille patch0 of 200157 panels · 282 creases · 200 contradict themselvesthe sampler returns solutions rather than a uniform draw over them, so these are shares of what it found
Fig. 2 Two hundred letterings drawn from each of seven patterns. The patches at the bottom are where a clean lettering is scarce; the builder’s redraw is a search through this column for one.

The cost, in the units each test spends

Ranking tests by cost usually means timing them, and timing them is the wrong measurement for a ranking meant to hold on somebody else’s machine. What can be counted instead is the primitive work each does.

On the rhombille patch: the crossing sweep compares 39,621 pairs of creases, the vertex pass visits 126 vertices, the panel walk places 157 panels, the layer pass reads 282 creases, and the ordering search is refused past two million nodes without deciding anything.

Two things fall out of that table which a stopwatch would have hidden.

The crossing sweep is quadratic, and on a large pattern it is by a wide margin the most expensive of the four cheap tests — a hundred and forty times the layer pass on the rhombille. It is also the one that fires most often, which is why it sits at the top of the ladder and why the ranking by what fires first and the ranking by what costs least are not the same ranking. On the small patterns everybody times, sixty-six pairs is nothing and the discrepancy is invisible.

And the search is not slow, it is absent. Five of the six patterns here defeat it: it does not return a worse answer more slowly, it returns no answer at all after spending its whole budget. A cost table that reported seconds would show it as the slowest row; what it actually is, is a row with nothing in it.

Where the costs cross

The two rankings — cheapest first, and most-likely-to-fire first — agree on small patterns and diverge on large ones, and it is worth saying where.

At twelve creases the sweep is sixty-six comparisons and the layer pass is twelve reads, a ratio of five and a half. At two hundred and eighty-two creases the sweep is thirty-nine thousand and the pass is two hundred and eighty-two, a ratio of a hundred and forty. The sweep grows as the square of the crease count and everything else here grows linearly, so the gap widens without limit.

That has a consequence for what order the tests should actually be run in, and it is not the order the ladder is drawn in. The ladder is ordered by cost as measured on the patterns anybody had, which were small. On the patterns this collection now draws, the right order is the layer pass first, then the vertices, then the panels, then the crossing sweep — and the crossing sweep last of the four, despite being the one that fires most.

Nothing has been reordered, because on every pattern here all four together take less time than reading the file, and because the ladder is a piece of exposition rather than a pipeline. It is worth knowing that the exposition’s order is a fact about a bygone size.

The vertices a crease list does not haveEvery crease pattern here, read twice: once as the list of vertices and edges it is built from, and once as the ink on the page. The bar is how many vertices the second reading has to invent, which is how many places two creases cross with nothing recorded there.the bar is the vertices the drawing has and the list does notThe preliminary base09 listed · panels closeThe Miura fold035 listed · panels closeThe square twist016 listed · panels closeThe hexagon twist022 listed · panels closeThe Yoshimura pattern045 listed · panels closeFold and cut — the triangle011 listed · panels closeThe tapered corrugation040 listed · panels closeThe waterbomb tessellation041 listed · panels closethe square grid, assembled064 listed · panels closethe triangular grid, assembled1282 listed · panels 1.73 apartthe honeycomb, assembled1884 listed · panels 2.00 apartthe rhombille tiling, assembled12138 listed · panels 1.86 apartthe elongated triangular tiling, assembled576 listed · panels 1.73 apartevery pattern with a bar has panels that cannot be placed, and every pattern without one places exactly
Fig. 3 What the crossing sweep is for: every pattern read twice, as a list and as ink, with the vertices the second reading has to invent. It is the most expensive of the cheap tests and the one that catches most, which is a combination the ladder’s order obscures.

The three cheap tests cost one number

The cost table has an identity hiding in it, and pulling it out turns the crossing point from an observation about one pattern into a statement about every pattern.

On the rhombille the vertex pass visits 126 vertices, the panel walk places 157 panels and the layer pass reads 282 creases. Those first two sum to 283, which is the crease count plus one — and that is not an accident of this pattern. It is Euler’s formula for a plane graph with its outer face set aside: vertices plus panels equals creases plus one.

So the three linear tests together always cost

V+F+E=2E+1V + F + E = 2E + 1

primitive operations, whatever the pattern is. On the rhombille that is 565, and the three measured numbers add to exactly 565.

Which puts the crossing at five creases

The sweep costs E(E1)/2E(E-1)/2. Setting that against 2E+12E+1 and solving, the two are equal at about five creases, and beyond that the sweep is the larger.

So the crossing sweep has cost more than all three other cheap tests combined on every crease pattern anybody has ever drawn. Not on large ones: on all of them. A pattern with six creases is already past the point, and the smallest object in this collection has twelve.

That is a stronger statement than the ratio the essay gives, and it says the discrepancy between the two rankings was never a large-pattern phenomenon. It was invisible because sixty-six comparisons and twenty-five operations are both instantaneous, not because they were close.

What the redraw loop actually spends

The same arithmetic prices the builder’s search, and the number is worth having because it is the concrete case for cheapness.

Forty redraws of the rhombille’s letters cost forty layer passes: 11,280 crease reads. Running the whole three-test linear ladder forty times costs 22,600 operations.

One crossing sweep costs 39,621.

So the builder’s entire forty-draw search for a clean lettering is cheaper than checking once whether any two creases cross. That is the case for the layer pass belonging inside a construction rather than after it, made in the units the construction spends — and it is why the ordering of the ladder as exposition and the ordering as a pipeline are worth keeping apart.

It also says what a pipeline should do with the sweep. Run it once, on the drawing, before any letter exists; nothing in the redraw loop can move a crease, so nothing in the loop can make two creases cross that did not cross before.

What linear buys that polynomial does not

The layer pass is the only one of the five that is linear in the drawing, and the practical difference that makes is not speed.

It is that the test can be run inside a loop. The tessellation builder redraws its letters up to forty times looking for a clean one, and each redraw has to be tested; forty passes over two hundred and eighty-two creases is nothing, and forty crossing sweeps of thirty-nine thousand pairs would be a noticeable fraction of the build. The test is cheap enough to be part of a construction rather than a check applied to its output, and that is a different role.

The same property makes it usable as a filter in front of the search. Where both apply, the layer pass either refuses in one pass or hands the pattern on, and the handing on costs nothing — so there is no case in which running it first is worse than not.

A cut does not weaken the contradiction, it dissolves the questionEvery crease of four tessellation patches cut in turn. The bar is how many of those cuts leave a sheet whose panels still place: a cut gives the paper a freedom, so a composition of reflections no longer decides where the far panel goes, and there is no folded state left to ask about.the bar is the cuts after which the panels still place at allnone of them clears the contradiction, and no cut of a buried crease leaves a sheet that placessquare0 of 8484 cut, one at a time · 0 still place · 60 are buried and none of those doeselongated0 of 106106 cut, one at a time · 0 still place · 74 are buried and none of those doeshexagonal14 of 142142 cut, one at a time · 14 still place · 100 are buried and none of those doestriangular2 of 142142 cut, one at a time · 2 still place · 100 are buried and none of those doesa cut along a crease removes no paper — the two panels are still there and are no longer joined
Fig. 4 Where the cheapness is spent rather than saved: every crease of four patches cut in turn and the whole test re-run on each, four hundred and seventy-four times. Most of those sheets no longer place at all, which is itself the answer — and finding that out cost four hundred and seventy-four passes over a crease list.

A third role is the one it is doing in this collection’s own gates. A check that costs one pass can be run over every pattern the site draws, on every build, without anybody noticing — and a check that is run on every build is a check that catches a regression on the day it lands rather than at the next audit. The vertex conditions have that property and are run that way; the ordering search does not and is not.

What it refuses, which is the part that matters

A cost ranking is only interesting alongside a coverage ranking, and the two do not agree.

The letters catch a small and variable share of the failures on any pattern where the complete answer is available: none of the twelve on a fold-and-cut triangle, four of the two hundred and forty-eight on a square twist. On patterns where the complete answer is not available they catch everything that is going to be caught, because nothing else runs.

The refusal the letters can see, and the one only a search canSix developable quadrilateral meshes, each asked twice whether its panels can be stacked: once by reading the arcs its letters force, and once by searching every ordering. The letters agree with themselves on all six; the search refuses four of them.the bar is the nodes the ordering search visitedthe letters are consistent on every one of these, so the one-pass test says nothing about any of themmesh 37,4739 panels · 7,473 nodes · no order existsmesh 58,0079 panels · 8,007 nodes · no order existsmesh 89,3469 panels · 9,346 nodes · no order existsmesh 111,0159 panels · 1,015 nodes · an order existsmesh 141449 panels · 144 nodes · an order existsmesh 199,0629 panels · 9,062 nodes · no order existsa red bar is a pattern with no folded state, found only by visiting every ordering it might have had
Fig. 5 Six quadrilateral meshes, each asked twice. The search refuses four; the letters of all six are consistent. Where both tests apply, the cheap one is strictly weaker.

So the honest description of the layer pass is not a fast version of the search. It is a different refusal that happens to be cheap, catching a class of failure — a chain of panels whose letters send it round — that the search would also catch, and missing everything the search catches by geometry. Two refusals that refuse differently is the account of how far apart they are.

What a no is worth without a reason

There is a quality to a refusal beyond soundness and cost, and the five here differ in it more than they differ in either.

A refusal that hands back a reason is worth more than one that hands back a verdict. The vertex pass names the vertex and the condition; the crossing sweep names the two creases and where they cross; the layer pass names the panels in the chain. The panel walk names how far the two routes disagreed. The search names nothing useful: it says that every one of some enormous number of orderings broke some rule, and the rule and the ordering differ from one to the next.

That matters for repair, and it matters for whether a finding can be written down. A near miss is nearly as rare could be written because the geometric refusals come with a number attached. The circle in the letters comes with eight panels attached, which is why it can be traced with a finger on a printed sheet.

The search’s silence on this point is not a shortcoming of the implementation. A negative answer from an exhaustive search genuinely has no short certificate — that is roughly what the problem being hard means — and a refusal with a reason is therefore a refusal that has found something structural. Which is a way of saying that the cheap tests are cheap because they are looking for something specific, and the expensive one is expensive because it is not looking for anything.

The shape of a good cheap test

There is a pattern in which cheap tests are worth having, and this collection now has five data points for it.

A cheap test earns its place when it is sound — never saying no about a pattern that folds — and when its cost is low enough that it can be run on inputs the complete test cannot be run on at all. Both halves are required. A cheap test that is merely faster on inputs the complete test handles is a convenience; a cheap test that is unsound is worse than nothing, because a wrong no is indistinguishable from a right one.

Of the five here, four are sound by construction and one — the search — is complete as well, on the range it reaches. The interesting position is the layer pass’s: sound, linear, and with a coverage that depends on a structural property of the pattern rather than on its size. A pattern with no closed chain of panels is one the layer pass can never refuse, whatever is wrong with it.

The bigger the patch, the rarer a lettering that agrees with itselfThe same twist construction over five tilings, ordered by how many panels the folded patch has, against the share of independently drawn letterings whose letters do not contradict themselves. The share falls to nothing well before the patch is large enough to be interesting.the bar is the share of draws that agree with themselvesthe rows are ordered by panel count, which is the only thing changing along them49 panels26 of 200square · 84 creases · 26 of 20062 panels5 of 200elongated · 106 creases · 5 of 20077 panels2 of 200hexagonal · 142 creases · 2 of 20083 panels0 of 200triangular · 142 creases · 0 of 200157 panels0 of 200rhombille · 282 creases · 0 of 200a zero is a zero of the draws taken and not a proof that no consistent lettering exists
Fig. 6 The cheap test measured the same way, against the same axis: the share of drawn letterings that still agree with themselves, as the patch grows. It falls where the search’s work rises, and where the two curves cross is where reading the list once stops being the bargain.

What each test would have to be given

There is a way of reading the five that says what each is really consulting, and it explains the coverage differences better than the cost table does.

The crossing sweep is given the drawing and nothing else — coordinates and segments, no letters. The vertex pass is given the drawing and the letters, one neighbourhood at a time. The panel walk is given the drawing and computes where the paper goes, without consulting a letter. The layer pass is given the letters and the panel adjacency, and never asks where anything landed. Only the search is given the folded state entire: which panels overlap which, and by how much.

So the layer pass is the one test that reads the letters globally and the geometry not at all. That is exactly why it catches what it catches — a contradiction among the letters, anywhere in the sheet — and exactly why it is blind to what it is blind to, which is every failure that depends on two panels happening to lie over one another.

Put that way the ladder is not a ranking by strength at all. It is a list of the ways a crease pattern can be looked at, ordered by how much of it each way needs to see.

The fifth test that is not on the ladder

One thing this collection can do to a crease pattern is missing from the five, and its absence is deliberate rather than an oversight.

Folding it. A sheet of paper answers the whole question — every condition, every overlap, every ordering — in about four minutes and with no budget. It is complete where the search is not, it costs nothing that scales with the pattern, and it is the only method here that can certify a tessellation patch.

It is not on the ladder because it is not a computation and the ladder is a ranking of computations. But its existence is why every figure in this collection is printable at true scale, and it is worth remembering when reading a table of refusals that the most capable instrument in the subject is a reader with a sheet of paper.

The sampled share against the one that can be countedFor every printed pattern: the share of letterings whose letters agree, as the sampler reports it, beside the share obtained by enumerating every lettering. Three patterns are small enough for the second, and on those three the two numbers agree to under a point.the bar is the sampled share; the tick is the exhaustive onea sampler over solutions has no right to be believed about a proportion until it is asked something with a known answerThe preliminary base100.0%112 of 112 exhaustively · 400 of 400 sampledThe Miura fold89.3%38 creases — too many to enumerateThe square twist98.8%252 of 256 exhaustively · 395 of 400 sampledThe hexagon twist100.0%18 creases — too many to enumerateThe Yoshimura pattern96.0%86 creases — too many to enumerateFold and cut — the triangle100.0%30 of 30 exhaustively · 400 of 400 sampledThe tapered corrugation86.5%45 creases — too many to enumerateThe waterbomb tessellation94.3%76 creases — too many to enumeratea pattern with no tick has more creases than an enumeration can reach, which is most of them
Fig. 7 Where a computed number gets checked against a countable one. The same logic applies one level up: a folded sheet is what any of this is ultimately answerable to.

What is still missing from the ladder

Two gaps, both worth naming rather than leaving as silence.

There is no cheap test between the layer pass and the search. The gap in cost between them is the gap between reading a list and exploring a factorial space, and there is nothing in between: no polynomial test in this collection catches a failure of the non-crossing rules. That is where the hardness of the problem actually bites, and the twenty-six patterns refused by nothing in the ladder above are mostly patterns waiting on a search that will not finish.

And there is no test at all for the direction that would matter most. Every one of the five says no or says nothing. None of them says yes about a pattern too large to search, so a tessellation patch that has a consistent lettering, places perfectly and passes every condition is still a pattern this collection cannot certify as foldable. A reader who folds one has better evidence than any of this machinery can produce.

How much room a pattern gives its letters to disagreeEvery pattern family here plotted by how many independent closed chains of panels it has against how often an independently drawn lettering agrees with itself. The count is Euler's relation on the panel graph and equals the number of interior vertices; it is read off the drawing before any letter is chosen.more chains is more chances for one of them to closethe printed shelftessellation patchesfold-and-cut outlinessheets folded at random00.2500.5000.7501255075100125independent closed chains of panelsshare of letterings that agree with themselvesa point at nought is nought of the draws taken, which is not a proof that no consistent lettering exists
Fig. 8 Every pattern family here by how many independent chains its panels form. The layer pass can only fire where there are chains, so the left-hand end of this axis is a region where it is guaranteed to be silent whatever is wrong.

That last figure is the one to keep. A refusal reporting zero looks like a refusal that is not needed, and here it was a refusal whose test set had been built entirely out of patterns that could not exhibit the fault. The count went from nought to one by adding five patterns, and it would have gone higher by adding five that had not been repaired first.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the concept index makes visible.

What links here

Every essay whose body links to this one.

The objects this essay names

Each one links to every other essay that touches it.

Crease patternDecision procedureEnumerationFlat-foldabilityLayer orderingNecessary conditionNP-hardnessSearch cost