Convert Rhino 3DM to STL
Rhino is the format of product design, jewellery and marine work, and it is the one professional CAD format on this site whose specification is genuinely open. Drop a .3dm in and get an STL for printing, without opening Rhino and without the file leaving your computer.
Drag a 3D file here, or.
This page is set up for Rhino 3DM files. Other formats we can read work here too.
The file is read on your own computer. It is never uploaded.
Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.
Why Rhino works here when SolidWorks does not
It is not that 3DM is easier. It is that reading it is allowed. McNeel publish the library that reads their own format, and they publish it under a licence that lets anybody use it — so a browser tool can read a 3DM honestly.
SolidWorks, Inventor and Fusion do not do that. Their formats are closed and undocumented, which is why those get honest guide pages on this site and 3DM gets a real converter. The difference is a licensing decision made by each vendor, not a technical one.
The render mesh, and the one thing that can go wrong
A 3DM holds NURBS surfaces — exact mathematics, no triangles — just as a STEP file does. There is no CAD kernel here that can turn those into triangles, and rhino3dm is a reader rather than a modelling engine.
What makes this work anyway is that Rhino saves a render mesh beside the geometry, so a file can be previewed without recomputing anything, and it does that by default. That mesh is what is read here. It is the same mesh Rhino draws on screen, at whatever density the document was set to.
So there is exactly one way this fails: a file saved with "Save Small", which strips the render meshes out to shrink the file. That is not a damaged file and you have not done anything wrong — but there is nothing in it to read. Open it in Rhino, save again with that box unticked, and it works. The error message says so.
Units are read, not guessed
Rhino always records its document unit, and the reader hands the numbers back in it. So the width, depth and height shown beside the model are what the Rhino document said, not an assumption — which is not true of an STL, and is a large part of why a 3DM dropped straight into a slicer usually arrives the wrong size.
Set the output unit to millimetres and your slicer will get the part at the size it was designed. Jewellery in particular tends to be modelled in millimetres and exported into workflows that assume inches.
What is left out
Curves, points and annotations. None of them has a surface, so there is nothing to print. If the curves are outlines you want to cut, export them from Rhino as a DXF and use the DXF converter here instead.
Objects on layers that are switched off, and objects hidden in the document. That is where construction geometry lives, and printing it is never what was meant. The message under the 3D view counts anything left out for either reason.
The mesh density is whatever Rhino saved. If the result is too coarse, raise the render mesh setting in Rhino — Document Properties → Mesh — and save again; or export STL from Rhino directly, where you can set the tolerance.
What survives, and what does not
Kept in the STL file
- Every surface and mesh that has a render mesh saved with it
- The document unit, as Rhino recorded it
- Object names, which become the names in the object list
- Per-object display colours where the object sets one
Lost on the way
- Curves, points, text and dimensions — none of them is a surface
- Objects on hidden or switched-off layers, which are counted
- The exact NURBS surfaces, which become the triangles Rhino saved
How to convert Rhino 3DM to STL
Save the Rhino file with "Save Small" unticked
This is the only preparation that matters. With it ticked, the render meshes are stripped out and there is nothing for any reader to use.
Drop the .3dm file in
The Rhino reader is fetched from a public CDN the first time, about a megabyte, and your browser keeps it for the next file.
Check the message under the 3D view
It says what was left out and why — curves, hidden layers, or surfaces with no mesh saved for them.
Set the output unit to millimetres
The input unit is read from the document, so this is the only one you need to think about. Then check the measurements against the real part.
Download the STL
Binary unless something has asked for text. The object list above lets you convert one object at a time if the file holds several.
Rhino 3DM and STL compared
| Property | Rhino 3DM.3dm | STL.stl |
|---|---|---|
| File contents | Binary, in Rhino’s openNURBS format. The reader is published as open source. | Binary or plain text. Binary is an 80-byte header, a triangle count, then 50 bytes per triangle. |
| Geometry | NURBS surfaces and curves, plus meshes and SubD objects. | Triangles only. Curves are approximated when the file is made, and cannot be recovered. |
| Units | Recorded in the file, along with a model tolerance. | None. The file stores bare numbers, and every reader has to guess what they mean. |
| Colour and texture | Materials, layers and display colours. | None. There is no place in the format for a colour, a material or a texture. |
| Separate objects | Objects on named layers, with blocks for repeated parts. | One body. Several parts written into one STL become one undivided lump of triangles. |
| Published by | Robert McNeel and Associates. The specification is deliberately open. | 3D Systems, 1987, for the first stereolithography machines. |
| Written by | Rhino, Grasshopper, and Matrix in the jewellery trade. | Every CAD program and every slicer, as the common denominator. |
Questions
- It says my file has no render meshes.
- The file was saved with "Save Small", which strips them out. Open it in Rhino and save again with that box unticked. Exporting a STEP file from Rhino also works, and this site reads that.
- The triangles look coarse. Can I make them finer?
- Not here — the mesh is whatever Rhino saved. Raise the render mesh setting in Rhino under Document Properties → Mesh and save again, or export the STL from Rhino where you can set the tolerance directly.
- Which Rhino versions can it read?
- Rhino 4 onwards, which covers everything anybody is still working with. The reader is McNeel’s own, so it understands the format as well as Rhino does.
- Can I write a 3DM?
- No. Writing a Rhino file properly means writing NURBS surfaces, and a mesh has none — a written 3DM would just be the triangles in a Rhino wrapper, which is worse than the STL you already have.
- Is my file uploaded?
- No. The reader is downloaded to your browser and your file is read there. For commercial design work, that is usually the point.
Having it printed
If the part is larger than your bed, needs a material your printer cannot handle, or you do not have a printer, these will print it and post it to you. Work out what it would cost you first — the cost calculator on this site gives you a figure to compare against.
- JLC3DPCheapest for resin and nylon, slow shipping
- CraftcloudCompares dozens of printers at once, including local ones
- PCBWayMetal printing and CNC as well as plastic
These are ordinary links, not paid referrals — we earn nothing if you use them. The converter above is the same whether you do or not.
Where to go next
Other things to do with a Rhino 3DM file
Other ways to get a STL file
Related guides and tools
- Gridfinity generatorBins and baseplates, any size, built in the browser
- Turn text into an STLType a word and print it, without drawing anything
- Turn an image into an STLA photo or a logo, turned into something you can print
- Lithophane generatorA photo printed as thickness, lit from behind
- Repair an STL that will not sliceClose the holes and separate the bad edges so a slicer accepts it
- STL to G-codeGuide
- How to convert an STL file to G-codeGuide