The Rhino .3dm File Format Explained
What's inside a .3dm file, how OpenNURBS versions work, and why downgrading is a lossy operation for some features.
OpenNURBS: the engine behind .3dm
Every .3dm file is written with the open-source OpenNURBS toolkit maintained by McNeel. Each Rhino release bumps the archive version (50 = Rhino 5, 60 = Rhino 6, 70 = Rhino 7, 80 = Rhino 8) whenever new object types are introduced.
What's stored inside
Geometry (NURBS surfaces, SubD, meshes, curves), layers, materials, blocks, annotations, viewport settings, plugin user data and a rendering mesh cache. A single file can range from a few kilobytes to several gigabytes.
Why downgrades can be lossy
When a newer object type (SubD from Rhino 7, new annotations from Rhino 8) is written to an older archive, OpenNURBS falls back to the closest legacy representation. Geometry is preserved; some metadata may be simplified.