Skip to content
3DToolBench

Convert Rhino 3DM to OBJ

Rhino out, and into whatever you model or render in. OBJ keeps the separate objects and their names, which an STL cannot, so a Rhino file with twenty named parts arrives as twenty named parts rather than one lump of triangles.

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.

Add a file to switch this on.

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.

Names and parts survive, which is the reason to choose OBJ

Rhino names its objects, and designers use those names. An STL throws every one of them away and merges everything into a single body. OBJ has named groups, so each Rhino object becomes a group with its own name.

That matters most for anything going into Blender, Cinema 4D, 3ds Max or a renderer, where the first thing you do with an imported model is find the part you want to work on. With names, that takes a second. Without them, you are selecting faces by hand.

What you are actually getting

The render mesh Rhino saved, not the NURBS surfaces. A 3DM holds exact mathematical surfaces and OBJ holds triangles, so the conversion is a tessellation, and the density is whatever Rhino’s display mesh setting was when the file was saved.

For rendering and for games that is usually right, because Rhino’s render mesh is built for display. For anything where you need to keep editing the surfaces, export a STEP file from Rhino instead and take that into a CAD program.

Units: metres, millimetres, and the box you need to set

Rhino records its document unit and this reader uses it, so the size is a fact. OBJ records nothing at all, so what the file means is decided by whichever program opens it — and Blender reads an OBJ as metres.

A ring modelled in millimetres therefore arrives in Blender as something the size of a house unless you set the output unit box. If the model is going into a modelling program, set it to metres. If it is going to a printer, millimetres.

What survives, and what does not

Kept in the OBJ file

  • Every object as its own named group
  • The document unit, converted to whatever you choose
  • Object colours, written into a .mtl file beside the OBJ

Lost on the way

  • The exact NURBS surfaces, which become Rhino’s own render mesh
  • Curves, points and annotations — OBJ holds only surfaces
  • Objects on hidden or switched-off layers, which are counted

How to convert Rhino 3DM to OBJ

  1. Save from Rhino with "Save Small" unticked

    Without the render meshes there is nothing in the file for any reader to use.

  2. Drop the .3dm file in

    The Rhino reader is fetched once, about a megabyte, and cached by your browser.

  3. Check the object list

    Each Rhino object is a row with its own name. Switch off anything you do not want in the OBJ.

  4. Set the output unit for where it is going

    Metres for Blender and most modelling programs. Millimetres for printing or CAD.

  5. Download

    If the objects carry colours you get a ZIP with the .obj and its .mtl inside. If not, a single .obj file.

Rhino 3DM and OBJ compared

Rhino 3DM and OBJ compared, row by row
PropertyRhino 3DM.3dmOBJ.obj
File contentsBinary, in Rhino’s openNURBS format. The reader is published as open source.Plain text, one item per line. Materials live in a separate .mtl file beside it.
GeometryNURBS surfaces and curves, plus meshes and SubD objects.Triangles and polygons. Also stores free-form curves, which almost nothing writes.
UnitsRecorded in the file, along with a model tolerance.None. Like STL, the numbers are bare, though exporters usually mean metres.
Colour and textureMaterials, layers and display colours.Material names and texture coordinates, with the materials themselves in the .mtl file.
Separate objectsObjects on named layers, with blocks for repeated parts.Named objects and groups, each able to carry its own material.
Published byRobert McNeel and Associates. The specification is deliberately open.Wavefront Technologies, 1980s, for the Advanced Visualizer.
Written byRhino, Grasshopper, and Matrix in the jewellery trade.Blender, Maya, 3ds Max, ZBrush and most modelling programs.

Questions

Why is my model enormous in Blender?
Blender reads an OBJ as metres and your Rhino document was probably in millimetres. Set the output unit box to metres before downloading, or scale by 0.001 in Blender.
Can I keep the NURBS surfaces?
Not in an OBJ — the format holds triangles and nothing else. Export a STEP file from Rhino if the surfaces need to stay exact, and take that into a CAD program.
Do the layers come across?
Object names do; layers do not. OBJ has one level of grouping and Rhino layers are a separate idea, so the names are the more useful of the two to keep.

Where to go next