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

Why did a 2006 converter sell format pairs — and why does this one run only one direction?

That 2006 page priced conversion one format pair at a time. Its feature list counts 14 input formats and 12 output formats, and OBJ and X_T appear on the input list only — readable, with nothing to be written back into. Fourteen times twelve is 168 ordered pairs, of which 144 have a counterpart going the other way and 24 are one-way. Here the count is two pairs, STEP to STL and IGES to STL, four extension spellings, one output, and the 10 mm cube still lands at 12 triangles and 684 bytes, where 684 = 84 + 50 × 12.

This page answers one question: why a conversion service can put a format on its input list and leave it off its output list, and what that says about a converter that runs a single direction. The left half is read off a dated public capture of a vendor product page; the right half is re-measured from the bytes this site writes. Every figure below is reproduced by this project’s own test suite before release.

Two lists, counted row by row

The page did not show a grid of conversions. It showed two standing lists, one headed as input and one as output, and the argument is made by counting them rather than by trusting a summary sentence.

The two format lists as printed on the captured page, and the two names that appear on one list only
Input list14 names: 3DS, B-Rep, DWG, DXF, IGES, OBJ, OPN, RAW, SAT, STEP, STL, TOS, VRML, X_T.
Output list12 names: 3DS, B-Rep, DWG, DXF, IGES, OPN, RAW, SAT, STEP, STL, TOS, VRML.
On the input list onlyOBJ and X_T — two formats that could be read and could not be written.
How the modules were describedOne specialized translator per input format, each taking one input format to any of the available output ones.

The two lists have the same shape except for those two names, so the difference is easy to state and easy to check: a reader can count the names and see where the two lists stop agreeing. What the page never did was present this as a limitation. It presented it as a catalogue, and the catalogue is what was for sale.

Two counted lists: fourteen input formats and twelve output formats, with OBJ and X_T only on the input side Two columns of equal height. The left column is headed Input and lists fourteen formats, with OBJ and X_T highlighted in burnt orange. The right column is headed Output and lists twelve formats, with the two highlighted rows left blank. Fourteen in, twelve out The two lists as printed, counted by name; the orange rows are the ones with no counterpart. Input · 14 3DS B-Rep DWG, DXF IGES OBJ OPN, RAW, SAT STEP, STL TOS, VRML X_T Output · 12 3DS B-Rep DWG, DXF IGES OPN, RAW, SAT STEP, STL TOS, VRML — — Two names on the left have an empty row on the right: an entrance and no exit.
The asymmetry is two names. Fourteen input formats against twelve output formats leaves OBJ and X_T readable but unwritable, and the page sold that list as a catalogue rather than explaining the gap.

Pairs with no way back: 168, 144 and 24

Once the unit of the product is a pair instead of a file, the two lists turn into a count of things being sold. Each input format against each output format is one pair, and the arithmetic is short enough to do on the page.

Those three numbers add up to the first one, and that sum is the cleanest way to see what an asymmetric list costs: 144 pairs can be sold in both directions and 24 cannot. A reader who wants a specific direction — OBJ into STEP, say — is inside the 168 on that page, but a reader who wants the return trip is not, and would have had to ask which module covered it.

A 14 by 12 grid of ordered pairs, with two rows that have no reverse, beside a single pair offered here On the left, a grid representing fourteen input rows by twelve output columns, 168 cells, with two whole rows marked as one-way. On the right, one pair labelled STEP and IGES into STL, with nothing pointing back. What a pair-based catalogue looks like 14 input rows × 12 output columns 168 cells · 144 reversible two rows, 24 pairs, no reverse here STEP · STP · IGES · IGS binary STL two format pairs, no arrow back A pair-based product scales by multiplication; a single direction scales by nothing.
168 cells against one arrow. The captured list multiplied fourteen inputs by twelve outputs, with the last two rows having no reverse; this site offers two pairs and one direction, so there is no return arrow to sell and none to maintain.

The price list followed the input format

The captured page made the pair the unit of the product in its ordering step too. Rather than a flat catalogue with one price attached to the whole program, the page asked the visitor to choose an input format and then show the price list that corresponded to it: swapping the input format swapped the price list.

No amount is readable in the capture — the price itself sat behind a selection, so this page prints no figure from it, and a 2006 amount would say nothing about today either way. What survives is the structure: the thing being priced was not a file, not a minute, not a month, but one input format. That is a product model this site does not share. Here there is nothing to select first and nothing to unlock: the tool has one direction and no tier, and the only quantity that changes when a setting changes is the triangle count.

The other detail worth keeping is what the page promised about the middle of the conversion. Its intermediate structure was described as holding every entity without conversion or transformation, and curves and surfaces were described as arriving unchanged: a circle stayed a circle, a B-spline kept its parameters. That promise is about the read side, and it is the same promise this site’s reader makes — the difference is at the far end, where a solid becomes a triangle list on purpose and cannot become a solid again by running the operation backwards. The STEP versus STL page owns that loss; this page only counts the pairs.

Two steps to a price on the captured page, and one fixed direction here On the left, a two-step ladder: choose an input format, then read the price list that format produces. On the right, a single unbroken line: STEP, STP, IGES and IGS into binary STL, with no selection box and no tier. What has to be chosen before a price appears 1 · choose an input format 2 · the price list for that format swapping the input swapped the list no amount is readable in the capture STEP · STP · IGES · IGS binary STL nothing to select, no tier, no account Left: a structure that needs a first choice before it can quote. Right: none.
Where the selection step sits. The captured page could not show a price until a visitor had named an input format, because the input format was the product line. Here the direction is fixed before anyone arrives: four extensions in, one format out, one setting ladder that changes the triangle count and never the terms.

One module per pair, and why that arrangement ends

A pair-based catalogue is not a marketing choice, it is a maintenance bill with a shape. Each format has its own conventions for storing a model, and a translator that reads one and writes another has to carry both sets of conventions. Twenty-eight modules covering 168 pairs is the arithmetic of a business that pays for that coverage by selling each pair separately, and the bill grows with the list rather than with the customers.

That is also why an asymmetric list is the honest one. A page that prints two lists is telling a reader exactly which modules exist. A page that prints one big grid marked as accepting anything and writing anything is making a claim it does not have to break down. The difference is not honesty of tone; it is whether the count can be checked — and here the count is the page.

Two facts about the captured page, stated as facts and nothing more: the copyright line on it runs from 1998 to 2006, and the domain no longer resolves. This page therefore describes what that page said on the days it was captured, and makes no claim about the company since.

Two formats in, one out, and the bytes prove it

This converter’s matrix is one line long. STEP and IGES are the two formats it reads, spelled four ways — STEP, STP, IGES and IGS — and the one format it writes is STL. That is two format pairs against the captured page’s 168, and zero pairs with a counterpart, because STL is only ever written here. The accepted inputs and the single output are listed in one place only, the format section of the verification page.

The output side is where the count becomes checkable. A binary STL is an 84-byte header plus 50 bytes per triangle, so the 10 mm test cube is 12 triangles and 684 bytes at Draft, Normal and Fine, and the 18-part test assembly leaves as 7,372 triangles and 368,684 bytes at Normal from a 433,606-byte input.

This site’s pair and the captured page’s catalogue, side by side.
Captured page, 2006This page, today
Formats read142 — STEP and IGES
Formats written121 — STL
Ordered pairs offered1682
Pairs with no reverse240
What sets the pricethe input format chosennothing; there is no account and no tier

Every length in the output is 84 + 50 × its triangle count, so a reader can redo the arithmetic without rerunning a conversion: 684 = 84 + 50 × 12, and 368,684 = 84 + 50 × 7,372. These are this page’s own test files and own settings, not a CAD standard.

What you can check without trusting the page

The 2006 half is checkable the same way: the capture is a dated public page and the counts are read straight off its two lists. What a later version of that page said is a different capture and a different question, and this page does not answer it.

Questions this page answers

Why can some formats go in but not out?

Because on that 2006 page a translator was one module per input format, and a module was only shipped when someone had written the writing half. Fourteen formats could be read and twelve could be written, so OBJ and X_T were readable and had nothing to be written back into. The list is asymmetric because the product was made of pairs, one pair at a time, rather than of a single box that claims every direction.

How many pairs is a 14 by 12 format list?

168 ordered pairs, 14 times 12. Of those, 144 are reversible, because twelve formats sit on both lists, so twelve times twelve pairs have a counterpart going the other way. The remaining 24 are one-way, two formats times twelve outputs, and those two are the ones with an entrance and no exit. Here the count is two pairs: STEP to STL and IGES to STL, four extension spellings, one output, and zero pairs with a counterpart.

Why does this converter run one direction instead of a matrix?

Because a matrix is a maintenance bill, not a feature. Each pair in that archived list was its own module, and a module has to be kept working for every format on either side of it, which is why a list that sold pairs did not keep them all. Here one kernel reads STEP, STP, IGES and IGS and one writer emits binary STL, so the surface to keep working is two pairs, and the cube still arrives at 12 triangles and 684 bytes.

Where these numbers come from

npm test

The command above re-runs every number on this page. The price-list page owns which side of a price list STEP once sat on, the cloud-pricing page owns what an online service charged and when it stopped, and the mesh-era page owns which formats a later generation of free tools could read at all.