STEP→STL Your file stays in this tab · nothing is uploaded

Why does a repair service fix some files for free and quote others — and where is that line drawn today?

The line is decidability, not price. A repair that a rule can settle without asking anyone a question is the repair a service can hand back finished at no charge, because the rule returns the same outcome for every file that carries the same defect. A repair whose answer is a choice between two valid reconstructions is the repair that has to be quoted, because someone must decide what your model was meant to be and stand behind that decision. The order form read for this article already split its repair option along that seam, and the seam is still visible today: a closed cube is 18 edges and every one used exactly twice, while the same mesh with one face removed is 10 triangles, 17 edges, 4 of them used once.

This page answers one question: on what basis a repair is given away and a different repair is priced. The archived order form named in the numbers section was read on and is described by structure only — no name, no amount and no sentence from it appears here. The measured side is this site’s own output, re-run by this project’s test suite before release.

Where the line is drawn

Start with what the two offers actually promise, because the wording is usually identical. Both say "we repair your file". One of them means the file will come back with a known defect removed, and the other means a person will look at the file and tell you what can be done. Nothing in the sentence separates them; the separation is in who is allowed to decide.

A rule can decide when three things hold at once. The defect is countable on the mesh, the count has one correct repair for every file that shows it, and applying that repair does not require choosing between two shapes that are both defensible. A judgement is needed as soon as the third condition fails: the file shows a gap, two different surfaces could close it, and the model does not contain the answer to which one was intended. The first case can be automated to the end. The second stops at the first person who has to pick.

The archived form read for this article is instructive less for what it charged than for where its repair option sat. Repair was a row inside the ordering table, not a product of its own: you chose it while ordering something else, and the outcome of that choice depended on the file rather than on the row. One path ended at a fixed result the service could promise; the other ended at an estimate from a person. Two exits from one row is the same split, expressed as a form.

One repair row inside an ordering table with two exits: a fixed result on the left, an estimate from a person on the right A table row labelled repair branches into two boxes. The left box says the rule decides and the outcome is fixed; the right box says a person decides and the outcome is an estimate. One row, two exits The repair option as it appeared inside an order table, described by shape. the order table repair is a row you tick while ordering something else — not a separate product the rule decides the defect is a count, the repair is the same for every file with that count outcome fixed when the order is placed a person decides the defect is a choice between two shapes and the file does not name the one intended outcome depends on somebody looking The row is one product; the exits are two kinds of work. Only the right exit has a person’s time in it.
Two exits from one row. The repair option sat inside the ordering table rather than beside it, and the file, not the price list, decided which exit you took.

Why the free half can be free

A rule that decides by itself has a marginal cost close to nothing, and that is the whole reason a service can give it away. Running the same check over a thousand files with the same defect costs the operator the same per file, adds no negotiation, and needs no one to be available when the file arrives. Giving it away is not generosity; it is the cheapest possible way to make the sentence "we repair your file" true.

There is a second reason, and it is about risk rather than cost. When a repair is fully determined, the service can promise the outcome before seeing your file. Nothing has to be estimated because nothing has to be chosen. A promise that can be made in advance is exactly the kind of thing a business can attach to a free tier without exposing itself to a loss on every order.

That is also why the free half tends to cover the same short list of defects wherever you go: gaps that are bounded by edges with only one face, duplicate faces, faces with no area, stray pieces that touch nothing. Each of those is a count on the mesh, each has one conventional repair, and each can be checked by the same routine that fixes it.

Why the other half has to be quoted

The quoted half begins where the count stops being enough. A gap with four boundary edges is countable, but closing it can mean adding one face, extending two existing faces until they meet, or removing the flange that created the gap in the first place. Those are three different models, and the file contains no statement of which one it is. A service that picks one silently has changed your design; a service that asks has started a conversation, and a conversation is what the quote pays for.

So the quoted half is not "harder files cost more". Difficulty without ambiguity is still a rule, and a rule can be free. What is being priced is the decision and the responsibility for it: someone with the model in front of them has to choose a reconstruction, and that person can be wrong in a way a boundary-edge count cannot be.

This is why the same file can be free at one shop and quoted at another without either being dishonest. They drew the line in the same place, but one of them only offers the left exit, so everything else simply is not accepted, and the other offers the right exit as well.

The line can be counted

The first condition is easy to check on your own file, and it is worth doing before you accept any offer. Count how many times each edge is used by the triangles around it. A closed surface uses every edge exactly twice, so the useful numbers are the edges used once, which bound a hole, and the edges used three or more times, which mean the surface folds through itself.

On the cube this site ships as a test file the result is exact and boring: 18 edges, 18 of them used exactly twice, 0 used once, 0 used three or more times, and the triangle count is 12. Delete one of its six faces and the same geometry becomes 10 triangles and 17 edges, with 4 edges used once. The second number is the size of the repair, printed before anybody touches the file — and it is the same number for every file that has that hole in that place, which is what lets a rule act on it.

Edge-use counts for a closed cube and for the same cube with one face removed The closed cube has 12 triangles and 18 edges, all used twice. The open version has 10 triangles and 17 edges, with 4 used once. The defect as a number Each edge counted by how many triangles use it. Read from the mesh, not from the file format. closed cube 12 triangles 18 used twice 0 used once · 0 used three or more one face removed 10 triangles 13 used twice 4 used once — the four edges around the missing face 13 + 4 = 17 edges. The single-use count is the repair, stated as a number before anyone looks. A rule can act on that number. It cannot act on "which surface did the designer mean".
Countable, then decidable — or not. The mesh on the left is closed and the one on the right is open by exactly four edges, so the size of the repair is known before any person is involved.

What remains of it today

The order form is gone and the seam is not. It survives inside converter pages as a sentence about repair, and the sentence is only informative if you can tell which exit it describes. A page that says files are repaired automatically, with no review and no follow-up question, is offering the left exit. A page that says to send the file and the team will assess it is offering the right one, with the same three words.

The seam also survives in a place that is easy to miss: the two ways a repair can be carried out on the same file. One way leaves the original geometry alone and only audits or patches it, so the outcome is bounded by what is there. The other way builds a fresh surface around the old boundary, which can close a gap and still move the shape. Choosing between those two is the decision the quote is paying for, and it is why a repaired file can measure differently from the one you sent.

Where a page offers neither exit and simply converts, the line does not apply at all: the geometry is carried across as it is, and whatever was wrong is still wrong on the other side, in a different format.

Why this page has no line at all

This site converts in the tab, so there is no second party to quote a decision. Nothing is uploaded, nothing is queued, and no operator inspects the model before or after. The output is tessellation of what the file declares: the flat 10 mm cube leaves as 12 triangles and 684 bytes, where 684 = 84 + 50 × 12, and that byte count is the same whether or not the faces were ever closed properly.

That has a consequence worth stating plainly. If your file needs the right-hand exit — the choice between two reconstructions — this page will not make that choice for you and will not tell you it has been made. What it gives you is the left-hand half of the truth: an honest tessellation of the geometry you supplied, with the counts printed so you can see what it did. Where the mesh is open, the page on counting and closing holes owns the count and the repair; this page only owns who gets to decide.

A file passing straight to tessellation in the tab, with no repair stage and no person in the path Your file enters the tab, is tessellated, and leaves as 12 triangles and 684 bytes. A crossed-out box marked repair sits below the path. No stage where a decision could be sold your file stays in the tab tessellation OpenCASCADE, in the tab 12 tris 684 bytes repair stage: none no upload · no queue · no operator 684 = 84 + 50 × 12. The count is fixed by the file, so there is nothing left to negotiate.
Nothing to sell a decision about. With no upload and no operator, the only remaining step is tessellation, which reproduces the geometry rather than improving it.

What you can check in a minute

Questions this page answers

Why does a repair service fix some files for free and quote others?

Because the two halves are different kinds of work. A free repair is one where a rule can decide the outcome without asking anybody a question: count the edges used once, close the ones that can be closed, and the result is the same for every file with that count. A quoted repair is one where the fix is a choice between two valid reconstructions, and somebody has to decide which one your model was meant to be. The first half is a rule, the second half is a judgement, and only the second half has a person’s time in it.

How can I tell in advance which half my file will fall into?

Ask whether the defect can be written as a count. A closed cube has 18 edges and every one of them is used exactly twice; drop one face and the same mesh is 10 triangles with 17 edges, 4 of which are used once. That number decides itself, so a rule can act on it. If instead the question is which of two surfaces was intended, no count answers it, and the work stops until a person is asked.

Does a converter that never repairs still fall on the free side of the line?

It falls outside the line rather than on one side of it. There is no second party, so there is nothing to quote: no upload, no queue and no operator to decide anything about your model. What comes out is tessellation, which neither adds nor removes a defect. The flat 10 mm cube leaves as 12 triangles and 684 bytes, where 684 = 84 + 50 × 12, whether or not the geometry was ever whole.

Where these numbers come from

npm test

The command above re-runs every number on this page. The holes page owns how a boundary is counted and what closing one does to the mesh, the editing page owns what work on a mesh costs once a person is doing it, and the upload page owns who runs the machine that decides.