DM file (Rhino): what a 3DM file is and how to open it

Learn what a DM file (Rhino) really is, which apps open .3dm files, and when to view, edit, import, or convert Rhino 3D models.

Summary

A 3DM file (Rhino) is Rhino’s native 3D model format family. The correct filename extension is .3dm, the Library of Congress identifies the short name as 3DM, and it classifies the format as a model family with partial disclosure rather than a fully documented open standard. [1] If you searched for “DM file (Rhino),” you likely mean a .3dm Rhino file. [1]

The practical next step is to decide whether you need to view, edit, import, or convert the file. Support varies by app and version, and a file can seem to open correctly while still arriving at the wrong size if the receiving workflow interprets units differently. [8]

How to Open, View, or Import a 3DM File

When people ask what program opens 3DM files, the key distinction is whether they mean native open/edit, import into another CAD system, view-only access, or programmatic read/write. Rhino is the native editor, some CAD platforms translate .3dm into their own model structures, Autodesk Viewer is representation-based viewing, and openNURBS or rhino3dm are developer libraries rather than end-user viewers. [2] [5] [15]

App Capability Documented 3DM version scope Key caveat
Rhino Open/edit. Rhino 8 help says the current version opens files from previous Rhino versions and saves to previous versions except V1.x. [9] Down-saving can discard newer data; Rhino 8 help specifically warns that new Rhino 8 data is lost when saving to Rhino 7. [9]
iRhino 3D Open/import for viewing on iOS. Official page says it can open/import any version of 3dm, including Rhino 8, and save to Rhino 8 format. [13] The documented save target is Rhino 8 3dm format. [13]
Autodesk Viewer View-only. 3DM is listed as a supported file type. [14] Uploads are converted to a representation, and shared viewers cannot access or edit the source files there. [15]
Autodesk Fusion Import/translate. Rhino *.3dm is listed in Fusion’s supported file formats. [16] Autodesk says non-Autodesk formats are translated and not all original information is retained. [16]
AutoCAD Import/translate. Autodesk documents Rhino *.3dm import through the IMPORT workflow. [17] Autodesk says this does not apply to AutoCAD LT. [17]
SOLIDWORKS Import/translate to a new part. SOLIDWORKS documents Rhino files as NURBS and analytic surface import into a new part document. [19] Curves are not supported. [19]
Onshape Import/translate. Onshape documents Rhino .3dm versions 2 through 8. [18] Compatibility is limited to that documented version range. [18]
openNURBS / rhino3dm Programmatic read/write. openNURBS provides C++ read/write tooling for 3DM, rhino3dm provides .NET/Python/JavaScript access, and openNURBS 8 reads and writes version 8 files. [2] [3] [5] These tools are meant for software development, not routine end-user viewing. [2] [5]

Use the table by matching the job to the tool. Rhino is the native choice for editing, viewers are mainly for inspection, and apps like Fusion, AutoCAD, SOLIDWORKS, and Onshape should be treated as translation targets rather than full-fidelity Rhino environments. [15] [16] [17] [18] [19] If the file still will not open, the next thing to check is archive version compatibility. [3]

What a Rhino 3DM File May Contain

A Rhino 3DM file may contain geometry, document settings, and optional payloads rather than just a visible shape. McNeel’s rhino3dm documentation covers both geometry classes and non-geometry classes that can be read and written to .3dm, and Rhino’s template documentation shows that a template is itself a 3DM file carrying model defaults such as units, tolerances, layers, geometry, and viewport layout. [5] [12] [8]

A 3DM file may contain…

  • Core geometry: points, point clouds, and NURBS curves and surfaces. [5]
  • Core geometry: polysurfaces/BReps, meshes, extrusions, annotations, and SubD objects. [5]
  • Document/model settings: layers, object attributes, transforms, and viewports. [5]
  • Document/model settings: grid settings, viewport layout, units, and tolerances; Rhino templates store these as part of a 3DM file. [12] [8]
  • Optional payload: embedded textures when the file is saved with Save textures enabled. [9]
  • Optional payload: plug-in attached object or document data when the file is saved with Save plugin data enabled. [9]
  • Optional payload: render meshes and analysis meshes, which affect file size and may be removed by Save small. [9]

Other apps may import the geometry but not preserve the same metadata or Rhino-specific behaviors. [9] That is why a model can look mostly correct after import while still losing layers, attributes, view information, embedded textures, or plug-in-dependent data outside Rhino. [9] [16] [19]

Rhino 3DM scene with NURBS geometry, mesh data, layers, and document settings
This diagram shows how a Rhino 3DM file can bundle geometry, layers, and document settings together.

Technical Principles: NURBS, B-rep, and Mesh

A lot of 3DM workflow confusion comes from mixing up NURBS, B-rep, and mesh data. In Rhino’s NURBS overview, a NURBS curve is defined by four things: degree, control points, knots, and an evaluation rule. [25] Rhino uses that mathematical description for smooth curves and surfaces, and those surfaces may then be organized into a B-rep, or boundary representation, where faces, edges, and trim boundaries define the model.

Meshes are different. Rhino’s accuracy page says a mesh is a collection of flat triangles, and even curved-looking forms are still represented as facets once tessellated. [7] Rhino does not use meshes as its primary modeling method, but it can convert NURBS to meshes at any density for rendering and file export. [7] That is useful for STL, OBJ, 3MF, and glTF workflows, but it is still an approximation of the source geometry rather than the original editable NURBS or B-rep form. [7]

It also helps to separate precision, tolerance, and tessellation. Rhino says it uses double-precision floating-point numbers, expects calculations accurate to 15 digits of precision in a range from ±10^20 to ±10^-20, and uses a default tolerance of 1/100 millimeter. [7] Tolerance is a document setting, not a manufacturing guarantee, and tessellation is the separate step that turns smooth geometry into triangles for downstream mesh formats. [7] [8]

Versions and Compatibility Troubleshooting

Rhino release number, 3DM archive version, and conversion target are related but not identical. A user may say “Rhino 8 file” when the practical compatibility issue is really that the file is a version 8 3DM archive. [3]

Item What it refers to Practical note
Rhino release number The application version, such as Rhino 7 or Rhino 8. This is not the same thing as the file/archive version. [3]
3DM file/archive version The version of the 3DM archive written by Rhino or another app using openNURBS tooling. Rhino 1.0 through 7 will not read version 8 files. [3]
Convert3dm version arguments The target archive version used during command-line down-saving. Documented values are 1, 2, 3, 4, 5, 50, 60, 70, 80, and the default is 80. [11]

Why Rhino 7 (and earlier) can’t open some Rhino 8 files

McNeel’s openNURBS getting-started guide says Rhino 8 and applications using an openNURBS toolkit released on or after October 2023 create version 8 files, and that Rhino 1.0 through 7 will not read version 8 files. [3] So if a valid file fails to open in Rhino 7 or older, the problem may be version mismatch rather than file corruption. [3]

Rhino 8 help also says the current Rhino version opens files from previous Rhino versions and Rhino backup files such as .3dm.bak and .3dmbak. [9] But backward saving is not neutral: Rhino 8 help says the current version saves to previous Rhino versions except V1.x, and it specifically warns that new data in Rhino 8 files will be lost when saving to Rhino 7. [9]

For manual down-saving, Rhino’s documented path is Save As or Export Selected to an earlier Rhino version. [9] For batch or scripted work, Convert3dm is the documented utility for reading a 3DM file and writing a new one to a specified version from Rhino file versions 1 through 8. [11]

How Conversion Works and How to Choose the Right Target

Converting a 3DM file is usually about choosing the right downstream model type, not chasing a single “best” format. Rhino’s format index documents direct support for STEP, STL, OBJ, 3MF, glTF/GLB, USD, DWG/DXF, and Rhino 2 through 8 .3dm, while Rhino’s separate IGES help documents IGES import/export as its own workflow. [10] [27] The main choice is whether the recipient needs editable CAD-style surfaces, a mesh for printing or visualization, a scene-delivery format, or an older Rhino archive. [7]

Use this export target when…

  • You need CAD-style exchange for another modeling system, and translator-dependent results are acceptable. STEP or IGES are the usual choices. [21] [27]
  • You need mesh output for 3D printing or a simple manufacturing handoff. STL or 3MF fit that job better than native Rhino geometry. [20] [10]
  • You need general polygon exchange for visualization. OBJ is a common target. [10]
  • You need efficient runtime delivery for a web or app pipeline. glTF or GLB are designed for that role. [22]
  • You need scene-oriented interchange or asset assembly rather than Rhino-style CAD editing parity. USD is the better fit. [26] [10]
  • You need drafting-oriented handoff. DWG or DXF are the conservative choice. [10]
  • You need to stay in Rhino while helping an older recipient open the file. Down-save to an older .3dm version. [9] [11]
Target format Geometry model Best use Typical losses / caveats
STEP CAD exchange format for product data described in EXPRESS; ISO 10303-21:2016 is Edition 3. [21] Cross-CAD exchange of surface and solid models. Translation is app-dependent, and Rhino-specific features may not survive.
IGES CAD exchange format documented by Rhino as an import/export path. [27] Legacy interoperability. Often less robust for modern model structure and metadata than newer exchange paths.
STL Triangle mesh. [10] 3D printing and simple manufacturing handoff. No native NURBS/B-rep editability, and units can be ambiguous in downstream tools.
OBJ Polygon mesh. [10] Visualization and general mesh exchange. Material, texture, and scale handling vary by app.
3MF Additive manufacturing package format recognized as ISO/IEC 25422:2025. [20] Print-oriented exchange. Still a mesh-oriented output, not Rhino CAD parity.
glTF/GLB Runtime asset delivery format recognized as ISO/IEC 12113:2022. [22] Web and real-time delivery. Delivery-oriented rather than a native CAD editing target.
USD Scene description and interchange system. [26] Larger scene assemblies and DCC pipelines. Translation may reduce CAD semantics and Rhino-specific behavior.
DWG/DXF Drafting and CAD exchange path documented by Rhino. [10] 2D handoff and some CAD interoperability. Complex surface data may not round-trip cleanly.
Older .3dm Native Rhino archive. [9] Keeping work Rhino-native for older recipients. Down-saving can drop newer data. [9]

The conservative rule is simple: if the receiver needs editable CAD geometry, try a CAD exchange format first; if the receiver needs a mesh, export a mesh; if the receiver needs a lightweight runtime asset, use a runtime format. Rhino can tessellate NURBS to meshes at different densities, so the same source model can produce very different STL, OBJ, 3MF, or glTF results depending on export settings. [7]

Term Practical meaning
Units The document measurement system, such as millimeters or inches. A mismatch can make a model appear at the wrong size. [8]
Scale The relative size applied during export or import to match another app’s expectations.
Tolerance The document-level fit/accuracy setting. Rhino defaults to 0.01 mm and gives general guidance around 0.01 to 0.001 in model units for many workflows. [8]
Tessellation resolution How finely smooth Rhino geometry is converted into mesh triangles for export. [7]
Comparison of a Rhino CAD model and exported mesh and interchange outputs
This comparison shows how a Rhino model can become different downstream formats after conversion.

Mesh Export and Post-Export Validation

Mesh exports need their own validation step because the export changes the model type. Rhino’s accuracy page explicitly distinguishes smooth NURBS geometry from triangle meshes and says Rhino can create meshes at any density for export and rendering. [7] That means an STL, 3MF, OBJ, or glTF file can export successfully while still being too coarse, open, flipped, or inconsistent for the next stage. [7]

After exporting STL/3MF/OBJ/glTF, verify…

  • Units and scale in the target app or slicer. [8]
  • Watertightness or closed-mesh status where the downstream workflow requires it. [7]
  • Normals orientation so surfaces render and slice consistently. [7]
  • Non-manifold edges or self-intersections that can break import or slicing. [7]
  • Tessellation density against the needed curvature fidelity, file size, and performance. [7]
  • Materials and textures, where the chosen format is supposed to carry them. [9] [10]

Coarser meshes are lighter and easier to move, while denser meshes track the source shape more closely. The right setting is workflow-specific, so validation matters more than any one preset. [7]

Triangulated mesh part inspected for normals, watertightness, and tessellation density
This inspection scene illustrates the checks used after exporting a Rhino mesh.

File Quality, Size, and Sharing

3DM file size depends on what is stored, not just how many visible objects you see on screen. Geometry complexity, saved render meshes, analysis meshes, embedded textures, and plug-in attached data can all increase the payload. [9] Rhino’s Save small option reduces 3DM file size by deleting render meshes and analysis meshes, but Rhino warns that the model may shade and render more slowly the next time it is opened because those meshes must be rebuilt. [9]

Rhino also documents Save textures, which embeds external textures used by materials, environments, and decals, and Save plugin data, which stores data attached by plug-ins to objects or the document. [9] No reliable general file-size figure found.

For sharing, keep an original before using Save small. [9] Then decide whether the recipient actually needs the native Rhino file, an exchange format, or only a mesh or viewer-friendly output, because that choice often matters more than compression alone.

Common Pitfalls and Fast Fixes

Most 3DM problems come from three places: version mismatch, import-versus-open confusion, and overestimating what translation preserves. [3] [16] [19]

If Rhino will not open the file, first check whether it is a version 8 archive being opened in Rhino 7 or earlier. McNeel’s documentation says Rhino 1.0 through 7 will not read version 8 files. [3] If a web viewer shows the file, that only proves a viewing service could make a representation; Autodesk Viewer says viewers cannot access or edit the source files there. [15]

Then check app-specific limits. Fusion says non-Autodesk data is translated and that not all information from the original program is retained. [16] Autodesk documents Rhino support in AutoCAD through IMPORT, and says that workflow does not apply to AutoCAD LT. [17] SOLIDWORKS documents Rhino import as a new part workflow and says curves are not supported. [19] If the model arrives at the wrong size or behaves oddly after translation, re-check the Rhino document’s units and tolerance before exporting again. [8]

Standards and Ecosystem Context

3DM is Rhino-native, but it sits in an unusual middle ground. The Library of Congress calls it partially disclosed and notes that while toolkit source code exists, the 3DM format lacks a standalone full outline or documentation. [1] McNeel, meanwhile, provides openNURBS read/write tooling plus rhino3dm wrappers, and the licensing language is highly permissive about using, modifying, and distributing that software. [2] McNeel also says that more than 400 software development teams and applications exchange 3D models using the openNURBS .3dm format. [4]

For standards-backed alternatives, STEP remains the conservative product-data exchange option, 3MF is the standards-backed route for additive manufacturing packages, and glTF is positioned for efficient runtime asset delivery rather than CAD exchange. [21] [20] [22] As of 2026-09-11, McNeel’s downloads page centers Rhino 8, while the Rhino 9 system requirements page says Rhino 9 is the current RhinoWIP, not a released licensed version. [23] [24]

3DM File (Rhino) Checklist Before Sharing or Printing

  • Confirm the file/archive version before sending it, especially if the recipient may be on Rhino 7 or earlier. [3]
  • Confirm what the recipient’s software actually does with .3dm: open/edit, import/translate, or view-only. [15] [16] [17] [18] [19]
  • Check the document units before export or handoff. [8]
  • Check the document tolerance; Rhino defaults to 0.01 mm and gives general guidance around 0.01 to 0.001 in model units. [8]
  • Decide whether textures need to be embedded with Save textures. [9]
  • Decide whether the file should include plug-in attached data with Save plugin data. [9]
  • Use Save small only if you keep an original copy first. [9]
  • Choose STEP for CAD handoff when appropriate, or STL/3MF for print-oriented mesh output, and validate the mesh before release. [21] [20] [7]

FAQ

What is a 3DM file (Rhino)?

A 3DM file is Rhino’s native 3D model archive family. The Library of Congress identifies the short name as 3DM and the filename extension as .3dm. [1]

Is “DM file” the same as a 3DM file?

Usually yes in practice; it is typically just a shortened or mistaken reference to a Rhino .3dm file. The correct extension is .3dm. [1]

Why won’t Rhino 7 open my 3DM file?

One common reason is that the file is a version 8 3DM archive. McNeel says Rhino 1.0 through 7 will not read version 8 files. [3]

What program opens 3DM files?

Rhino is the native editor. Other tools may view or import the file, including iRhino 3D, Autodesk Viewer, Fusion, AutoCAD, Onshape, SOLIDWORKS, and developer libraries such as openNURBS or rhino3dm, but their behavior is not the same as native Rhino editing. [9] [13] [14] [16] [17] [18] [19] [2] [5]

Expert: How can I check a 3DM file’s version without Rhino?

McNeel’s File3dm API documents ReadArchiveVersion(path) for reading just the archive version, ArchiveVersion for inspecting a loaded file, and Write(path, version) for writing a chosen archive version. [6]

Expert: What is the 3DM magic number / signature?

The Library of Congress reports the ASCII signature as 3D Geometry File Format, including a trailing space, and the corresponding hex value as 33442047656F6D657472792046696C6520466F726D617420. [1]

Is 3DM an open standard?

Not fully. The Library of Congress describes 3DM as partially disclosed, while McNeel provides openNURBS and rhino3dm tooling under permissive terms for reading and writing the format. [1] [2]

Sources

The numbered citations in the article body map to the source list below.

  1. Library of Congress — “3D Model File Format Family (3DM).” https://www.loc.gov/preservation/digital/formats/fdd/fdd000601.shtml
  2. McNeel — “The openNURBS Initiative.” https://www.rhino3d.com/features/developer/opennurbs/
  3. McNeel Developer — “Getting Started.” https://developer.rhino3d.com/en/guides/opennurbs/getting-started/
  4. McNeel Developer — “What is openNURBS?” https://developer.rhino3d.com/en/guides/opennurbs/what-is-opennurbs/
  5. McNeel Developer — “What is Rhino3dm?” https://developer.rhino3d.com/en/guides/opennurbs/what-is-rhino3dmio/
  6. rhino3dm API — File3dm docs. https://mcneel.github.io/rhino3dm/python/api/File3dm.html
  7. McNeel — “How accurate is Rhino?” https://www.rhino3d.com/features/accuracy/
  8. McNeel Docs (Rhino 8) — “Units.” https://docs.mcneel.com/rhino/8mac/help/en-us/documentproperties/units.htm
  9. McNeel Docs (Rhino 8) — “Rhino (.3dm) Import/Export.” https://docs.mcneel.com/rhino/8/help/en-us/fileio/rhino_3dm_import_export.htm
  10. McNeel Docs (Rhino 8) — “Import and export file formats.” https://docs.mcneel.com/rhino/8/help/en-us/fileio/_index_of_import_export_file_types.htm
  11. McNeel Wiki — “Guide to Using Convert3dm.” https://wiki.mcneel.com/rhino/convert3dm
  12. McNeel Docs (Rhino 8 Mac) — “New.” https://docs.mcneel.com/rhino/8mac/help/en-us/commands/new.htm
  13. McNeel — “iRhino 3D.” https://www.rhino3d.com/en/ios/
  14. Autodesk Viewer Help — “Supported File Types.” https://help.autodesk.com/cloudhelp/ENU/ADSKVIEWER-Help/files/ADSKVIEWER_Help_SupportedFileTypes_html.html
  15. Autodesk Viewer Help — “Getting Started.” https://help.autodesk.com/cloudhelp/ENU/ADSKVIEWER-Help/files/ADSKVIEWER_Help_GettingStarted_html.html
  16. Autodesk Fusion Help — “File formats supported in Autodesk Fusion.” https://help.autodesk.com/view/fusion360/ENU/?caas=caas/sfdcarticles/sfdcarticles/File-formats-supported-by-Fusion-360.html
  17. Autodesk Support — “AutoCAD: Opening files from Rhino *.3dm in AutoCAD.” https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/AutoCAD-Opening-files-from-Rhino-3dm-in-AutoCAD.html
  18. Onshape Help — “Supported File Formats.” https://cad.onshape.com/help/Content/File/supported_file_formats.htm
  19. SOLIDWORKS Help — “Rhino Files.” https://help.solidworks.com/2024/English/SolidWorks/sldworks/c_Rhino_Files.htm
  20. 3MF Consortium — “Specification.” https://3mf.io/spec/
  21. ISO — “ISO 10303-21:2016.” https://www.iso.org/standard/63141.html
  22. Khronos Group — “glTF.” https://www.khronos.org/gltf/
  23. McNeel — “Downloads.” https://www.rhino3d.com/download/
  24. McNeel — “Rhino 9 System Requirements.” https://www.rhino3d.com/9/system-requirements/
  25. McNeel Developer — “NURBS Geometry Overview.” https://developer.rhino3d.com/guides/opennurbs/nurbs-geometry-overview/
  26. OpenUSD — “USD Frequently Asked Questions.” https://openusd.org/release/usdfaq.html
  27. McNeel Docs (Rhino 8 Mac) — “Initial Graphics Exchange Specifications (.iges) import/export.” https://docs.mcneel.com/rhino/8mac/help/en-us/fileio/iges_iges_import_export.htm

Leave a Reply

Your email address will not be published. Required fields are marked *

Contents