OBJ to glTF
Your model never leaves your browser, and nothing is downloaded to make this work. A mesh is a list of points and a list of triangles; reading one and writing the other is arithmetic your browser can already do.
Into readable JSON, self-contained: the numbers are written into the document itself rather than into .bin files beside it, because a download is one file. That costs about a third in size against a GLB, which is exactly why GLB exists.
An OBJ is a text file that most things read and most things write, which is why it is where models go to be moved between programs. Faces with four or more corners — and nearly every box out of every modeller is quads — are split into triangles here, because that is what the rest of these formats hold.
None of these formats has units
This is the single most common reason a model comes out
wrong, and no converter can fix it, because there is
nothing in the file to read. Both of these formats are lists of numbers.
Whether 10 means ten millimetres, ten inches or ten of
something else is a convention between whoever exported the file and
whatever opens it next — it is not written down. That is why models
arrive at twenty-five times their intended size, or a twenty-fifth.
So the dimensions are shown above as three bare numbers. If your object is meant to be about 60 long and it says 2.36, somebody wrote it in inches and something else is about to read it as millimetres. The numbers are yours to recognise; nothing here can do it for you. If you want the size recorded in the file, convert it to 3MF instead — that is the one format here that stores it.
A face in an OBJ can have any number of corners
Nearly every box that comes out of every modeller is made of quads, not triangles — and an OBJ face can have four corners, or ten. A reader that takes the first three corners of each face loses half of every quad, silently, leaving a model with the right number of lines in it and holes where the other halves were.
Faces here are fanned into triangles, however many corners
they have. Negative indices are handled too: f -3 -2 -1 means
“the last three vertices”, which is how a file written by a
streaming exporter refers to points it has just emitted, and reading them
as literal numbers points every triangle at nothing.
Both of these store a corner once
Both formats keep a list of points and refer to them by number, so a corner where six triangles meet is stored once and pointed at six times. That is what an STL cannot do, and it is why these conversions do not change the size of a file very much.
Duplicate corners are still welded on the way through, in case the model passed through an STL earlier in its life — but only bit-for-bit identical ones. Welding within a tolerance, which most tools do, quietly fuses surfaces somebody meant to keep apart. The number actually welded is reported above.
What does not come across
Materials, textures, animation and the scene. The result is one mesh in one node with no material, and a viewer will show it in its default grey. The numbers are written into the document as base64 rather than into .bin files beside it, which makes it one file you can actually keep — at about a third more size than the same model as a GLB.
Whether it is watertight is reported above, because that is what a slicer is about to ask: a closed solid has every edge shared by exactly two triangles, and one that does not leaves the slicer guessing what is inside. This is measured after welding — straight off an STL no two triangles share a corner by index, so every model on earth would look full of holes. Nothing here repairs a mesh; it tells you, and repairing is a different job.
Nothing is rotated. glTF is Y-up by its specification, COLLADA records an up axis of its own, and STL, OBJ and PLY say nothing at all — in practice arriving Z-up from CAD tools. What a file declares is reported rather than acted on, because a silent rotation is far worse than a model you can turn yourself. If your object arrives lying on its side, that is why, and it is one rotation in whatever opens it next.
Where to go next
- glTF to OBJ — back the way it came
- OBJ to STL — the same model, another way out
- OBJ to PLY — the same model, another way out
- OBJ to GLB — the same model, another way out