Runs on your device · Your file never leaves your device.
An OBJ carries shape, colour and texture; a slicer wants none of that. Drop the OBJ and get back a binary STL — the geometry, watertight as it was, in the format slicers such as Cura and PrusaSlicer open directly.
The colours are not lost through any fault of the conversion: STL has no way to store them. It describes triangles and nothing more, which is exactly why it became the printing standard. If you need the colours later, keep the OBJ — this gives you a printable file beside it, not instead of it.
The conversion runs on your own machine, which for a 3D file is the whole point: a model is usually a client’s product, a scanned property or something not yet announced. Nothing is sent to a server, so there is nothing to delete afterwards and nothing to take anyone’s word for.
Not for: Repairing non-manifold geometry or holes — this converts the shape as it is; it does not mend a model that was already unprintable.
Every object and group in the OBJ is merged into one list of triangles, because STL has no way to keep parts apart or to name them. Faces with four or more corners are split into triangles by joining the first corner to each pair of the others. That is correct for flat faces without an inward corner. An L-shaped face, for example, can come out with triangles that cross its edge, so triangulate faces like that in your modelling program before you export the OBJ.
Lines and single points in the OBJ are left out, since an STL can only hold triangles. The OBJ's own normals are not copied either: the direction each triangle faces is worked out from the order of its corners, so a triangle wound the wrong way in the OBJ also faces the wrong way in the STL. Coordinates are stored as 32-bit numbers, which keep about seven significant digits, so a model placed very far from the origin loses fine detail; move it near the origin before exporting.
STL stores no unit, and slicers read its numbers as millimetres. An OBJ states no unit either, so the page shows its measured size as bare numbers and asks what one unit was meant to be. If the OBJ was modelled in millimetres, leave it as it is: the numbers go into the STL unchanged, and a part that measures 45 arrives as 45 mm.
If it was saved in centimetres, inches or metres, choose that unit, and the STL is written in millimetres from it. Many modelling programs work in metres by default, and an OBJ from one of them needs A metre. The page shows the size in millimetres before you convert.
An OBJ normally has Y as its up direction, while slicers build upwards along Z. Unless you choose to keep the axes, the model is given a quarter turn so that what was up in the OBJ is up on the print bed.
An STL keeps none of what an .mtl file and its images describe, so for this conversion the .obj alone is enough. Adding them does no harm, but the tool waits for every image to finish loading before it writes the file, so leaving them out is quicker.
This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা