3DM to STL Converter

To convert 3DM to STL, drop your Rhino .3dm file here, untick any layers you do not want to print, and press Convert to STL. The converter reads the render meshes Rhino saved with your surfaces and solids, scales them from the file units to millimetres, keeps Z up and downloads a binary STL ready for any slicer.

Free. No sign-in. Your file never leaves your device.

Loading the 3DM to STL converter...

How to convert 3DM to STL

  1. 1

    Open the .3dm

    Drop a Rhino 5, 6, 7 or 8 file, or tap Open. The Rhino file reader loads the first time (about 1 MB), then the model appears with its layers and the size it will have in the STL.

  2. 2

    Choose what to print

    Untick construction, reference or annotation layers. Only the ticked layers go into the STL, and the size label updates as you go.

  3. 3

    Set the output

    Millimetres suit almost every slicer. Pick binary for a small file or ASCII if another program needs text, and tick One STL per layer to print parts in different colours or materials.

  4. 4

    Convert and print

    Press Convert to STL. Open the file in Cura, PrusaSlicer, Bambu Studio or OrcaSlicer, or send it to a print service; it arrives at the size you modelled.

Private by design. The .3dm file is read and converted by JavaScript in your own browser. It is never uploaded, so unreleased product designs and client jewellery models stay on your device.

What happens to a Rhino file in STL

3DMRhino model
Holds exact NURBS surfaces, polysurfaces, SubD, extrusions, meshes, curves, layers and units. When saved normally, Rhino also stores a render mesh: a triangle version of every surface, used for display.
Render meshWhat gets converted
A browser cannot turn NURBS into triangles, so the converter uses the render mesh saved in the file. Its density follows the file's render mesh setting (Document Properties > Mesh in Rhino).
STLTriangles for printing
Only triangles and their facet normals: no colours, layers, curves or units. That is why the size matters: an STL from a model in inches, read as millimetres, prints 25.4 times too small.
Binary vs ASCIITwo kinds of STL
Binary stores each triangle in 50 bytes and is what slicers prefer. ASCII writes the same triangles as text, about five times larger, but readable and accepted by older CAM tools.
Per layerSeveral STLs in a zip
Each ticked layer becomes its own STL, named after the layer, with all parts keeping their position. Load them together in a multi-material slicer and they line up.

Units: getting the size right

A Rhino file stores its unit system: millimetres, centimetres, metres, inches, feet and others. STL has no unit at all, and slicers assume millimetres. The converter reads the file unit and scales the triangles for you, so a ring modelled at 18 mm stays 18 mm and a bracket drawn in inches comes out in the right size. If a file has no unit set, it is read as millimetres, and the page says so.

You can still write the STL in centimetres, inches or metres if your next program expects that. The scale factor is shown under the unit list. The output box in the preview shows width, depth and height in the unit you picked, which is a quick check before you print.

When surfaces are missing

If a part of your model does not appear, it was saved without a render mesh. Rhino skips render meshes when you use Save Small, export with "save geometry only", or when the file comes from a script or another CAD program. The converter counts these objects and tells you. In Rhino, open the file and use File > Save As, which stores the meshes, or run the Mesh command and save the meshes in place.

Render meshes are made for the screen, so curved parts can look faceted in print. For smoother results, raise the density before saving: in Rhino, set Document Properties > Mesh to Smooth & slower or a custom setting with a smaller maximum distance, then save again. Jewellers often use a 0.01 mm tolerance for rings and settings.

Checking the STL before printing

Rhino render meshes are made per surface, so a polysurface can come out as separate pieces that touch at their edges rather than one closed shell. Most slicers print this fine. If yours reports open edges, run the STL through a repair tool first, or close the polysurface and use the Mesh command in Rhino with "jagged seams" turned off.

Rhino and slicers both use Z as up, so no rotation is applied: the model sits on the bed the way it sits on the Rhino construction plane. Parts modelled far from the origin stay there; most slicers centre them on import.

What this 3DM to STL converter does

Keeps the real size

Reads the Rhino unit and writes millimetres (or cm, inches, metres).

Pick the layers

Every layer and sub-layer with an on/off switch, so construction geometry stays out.

One STL per layer

A zip of STLs named after the layers, aligned for multi-material printing.

Binary or ASCII

Small binary files for slicers, or text STL for older tools.

Clear warnings

Surfaces saved without a render mesh are counted and explained, never silently dropped.

Private

Converted in your browser. Files are never uploaded.

Limits, honestly

  • NURBS surfaces and solids saved without a render mesh cannot be converted in a browser; save the file again with File > Save As in Rhino.
  • The triangle density is the one saved in the file; this tool does not re-mesh.
  • Curves, points, text, dimensions and hatches have no surface and are not written.
  • STL has no colour; for colours keep the layers apart with One STL per layer, or convert to OBJ.
  • Files over 250 MB may be too large to read in a browser.

Frequently Asked Questions

Drop the .3dm file on this page, untick the layers you do not need, keep millimetres, and press Convert to STL. The STL downloads straight away and opens in any slicer.
No. The file is read in your browser with the open-source rhino3dm library. You only need Rhino if parts of the model were saved without a render mesh.
Those surfaces were saved without a render mesh (for example with Save Small). The converter counts them. Open the file in Rhino, use File > Save As, and convert again.
Yes. The converter reads the unit stored in the .3dm and scales the STL to millimetres, the unit slicers expect. You can choose centimetres, inches or metres instead.
No. Reading and converting both happen on your device. Nothing is sent to a server and no account is needed.
Yes. Tick One STL per layer and you get a zip with one STL for each layer, named after it and kept in place, for multi-colour or multi-material printing.
Binary, unless a program asks for text. It holds the same triangles in about a fifth of the size, and every slicer reads it.

More free 3D viewers and converters