Skip to main content
Model Mender

Reference

Supported formats and what each conversion preserves

Exactly what is read, what is written, and what is lost on the way. Where a format cannot carry something, that is stated rather than glossed over.

Read and write support

FormatReadWriteUnitsMaterials
STLASCII and binaryASCII and binaryNoneNone
OBJGeometry, normals, uvs, groups, MTL when suppliedGeometry, normals, uvs, groups, optional MTLNoneNames, diffuse colour, opacity, texture filename
PLYASCII, binary little-endian, binary big-endianASCII and binary little-endianNonePer-vertex colour detected, not carried through
3MFUnits, objects, components, build transforms, base materialsUnits, one object per mesh, base materialsDeclaredNames and display colour
GLBScene graph, node transforms, materials, uvsOne node per mesh, base colour materialsMetres, by specificationBase colour factor and opacity
glTFSame as GLB; external .bin must be suppliedNot written (GLB is written instead)Metres, by specificationBase colour factor and opacity
SVGFilled paths and shapes, full transform stackNot written: this is a 3D toolMillimetres when the drawing declares an absolute sizeNone
STL
A flat soup of triangles. No units, no materials, no object names. Vendor colour extensions are not read, because they are not part of the format.
OBJ
Texture images are referenced by name only and are never loaded or written. Add the .mtl to the queue with the .obj to read materials.
PLY
Arbitrary property order and all scalar types are supported. Point clouds without faces are refused rather than guessed at.
3MF
The only launch format that records a real unit. Treated as untrusted input: bombs, traversal, entry counts and XML entities are all checked.
GLB
Node transforms are baked into vertices. Draco and meshopt compression are refused with a clear message rather than partly read.
glTF
A .gltf usually references a separate .bin. Add it to the queue alongside, or use a self-contained .glb.
SVG
Filled outlines are flattened, holes resolved by fill rule, triangulated and extruded to a watertight solid. Strokes, text and images are not extruded.

Conversion pages

The workspace itself will convert between any of STL, OBJ, PLY, GLB and 3MF, and from SVG into any of them. The pages above exist where the conversion is common enough to deserve its own guidance.

Deliberately not offered

These are not missing by oversight. Each one is either impossible to do honestly today or would produce files that look plausible and are wrong, so it is held rather than shipped.

step → stl

Reading STEP needs a real CAD kernel. The only pinned, published WebAssembly build of OpenCascade is 48 MB (2.0.0-beta.b5ff984) or 63 MB (1.1.1). Measured on this hardware, instantiating the module alone took resident memory from 49 MB to 820 MB, and converting a trivial 40x30x20 box with one hole peaked at 1.19 GB for 236 output triangles. The geometry it produced was exact, so the blocker is cost, not correctness: that footprint cannot honour the sequential low-memory fallback this site promises on phones and Safari. A size-reduced custom build is the way forward and needs the OpenCascade.js Docker toolchain, which was not available in the build environment.

stl → step

Blocked twice over. It needs the same OpenCascade kernel that STEP reading needs, and it is the conversion most often misrepresented: an STL is flat triangles, so the only honest STEP output is a faceted solid with thousands of planar faces, not the smooth NURBS surfaces people usually expect from a CAD file. It will only launch labelled as a faceted solid and only once the output has been proven to re-open in a real CAD parser.

stl → dxf

A DXF is 2D. Turning a 3D mesh into one means choosing a projection or a slice plane, and the right choice depends entirely on what the visitor wants: an outline, a section, or a flattened silhouette. Shipping one arbitrary interpretation would produce files that look plausible and are wrong. A future tool would need an explicit plane picker and clear limitations before it could produce a trustworthy result.

One thing worth stating plainly: no tool can recover true NURBS surfaces from a mesh. An STL contains flat triangles and nothing else, so anything claiming to turn one back into a parametric CAD model is fitting new geometry, not recovering yours.