Convert 3DM to STL
Convert 3DM to STL in your browser. The conversion runs on this page and the file never leaves your computer.
Result
Before you convert: what this keeps and what it destroys
Preserved
- The shape, to within the tessellation tolerance
- Overall dimensions and proportions
- Watertightness, where the input is watertight
Destroyed
- Exact curves and surfaces, replaced by triangles
- The feature tree and any parametric history
- A recorded unit: STL stores none
- Colour
- The separation between parts, merged into one body
Why people convert 3DM to STL
Printing a Rhino model without opening Rhino, usually because the file came from someone else.
3DM declares its unit system in the file, so the STL comes out at the correct physical size and nobody has to guess. That already puts this ahead of most routes into STL.
What gets read is the render mesh. Every 3DM saved with display meshes carries a triangulated version alongside the exact NURBS data, and that is what becomes the STL. Objects with no surface, meaning curves, points, text and dimensions, have no render mesh and cannot be converted. This site counts them and says how many were skipped, so a partial result does not look like a complete one.
One thing to watch if the result looks faceted. Rhino's default meshing is tuned for screen display, not for printing, and the mesh saved in the file is the one you get. If a curved face is visibly polygonal, re-save from Rhino with finer mesh settings and convert again. Layers and object colours are dropped, because STL holds neither.
What you get
You get a binary STL file containing triangles. The reader tessellates supported surfaces or uses saved render meshes where required by the source format. Inspect curved faces at the intended output size. The triangle count depends on the model and the reader's meshing settings.
Not carried across by this conversion: a recorded unit, colour, the assembly structure.
The conversion runs in your browser. Your file stays on your computer and is not uploaded.
What to check afterwards
- 3DM declares its unit in the file. Check the output dimensions in the receiving application, especially when its import settings can override the unit.
- Colour is lost. STL has nowhere to store it. If colour matters, pick a target that keeps it: 3MF, GLB, PLY or USDZ.
- Separate parts merge into one body. 3DM can describe an assembly and STL cannot, so a multi-part model arrives as a single mesh. 3MF and GLB both keep the structure if you need it.
- Curves become facets. 3DM stores exact surfaces, so a hole is a cylinder with a radius. STL stores triangles, so that cylinder becomes a many-sided prism. Look at curved faces in the result at the size you intend to make the part.
- Coordinates are stored as 32-bit floats. For a part measured in millimetres that's far finer than any machine tolerance. For a model spanning hundreds of thousands of units it isn't.
If you need something this conversion cannot give you
If the unit has to be unambiguous, convert to 3MF instead. It records the unit in the file, so nobody downstream has to assume millimetres and nobody has to scale by 25.4 after the fact.
If colour has to survive, convert to 3MF for printing, GLB for the web, or PLY if the colour is per-vertex scan data.
If the parts must stay separate, convert to 3MF or GLB. Both keep a real structure, so a five-part assembly arrives as five parts rather than one merged body.
If you need editable CAD geometry, don't convert at all. Open the 3DM file directly in FreeCAD, Fusion, Onshape or SolidWorks. Every mesh format destroys the exact surfaces, and no later conversion brings them back.
If your slicer accepts 3MF, consider it when you need a unit declaration or separate components in the output. Keep the original project for its print settings.
Going the other way
This site reads 3DM but does not write it. For the reverse conversion, use an application that can export 3DM.
How we know this conversion works
This pair was checked against 3 files from the test corpus on 2026-09-04. Each run parses its own output back in and compares the bounding box, the triangle count and, for closed solids, the volume against the input.
A pair that fails those checks doesn't get a page. That's why this site lists 120 conversions and not the several hundred a format-times-format grid would suggest.