Import/Export is how you get meshes into and out of Meshmixer, so it's kind of important. Because there are so many different mesh file formats, this page is surprisingly complicated!
There are three different things you can click on to Import a mesh file into meshmixer. When you first start the app, there is an Import button on the splash screen. There is also always the Import button at the top of the left sidebar. And then there is the Import button in the File menu. Meshmixer also comes with three default objects (Bunny, Sphere, and Plane), which are available in the startup splash screen and also the File menu.
If the scene is not empty, then when you Import you will be asked if you want to Append the imported objects to the existing scene, or Replace the current scene with a new scene entirely.
You can Export from the left sidebar and also the File menu, or use the Ctrl/Cmd+E shortcut. In this case you will be presented with a file dialog where you can select the desired output mesh file path and also the mesh format (see below).
Finally, there is the Import Reference option. This is just like Import, except that Reference objects cannot be modified.
Open/Save .mix Format
In addition to Import/Export, the File menu also has Open, Save, and Save As options (you can also Open from the startup splash screen). These are for working with the native Meshmixer .mix file format. This is a binary format that no other software can read or write. It allows us to store things that the various mesh formats do not support, and .mix files also open and save much more quickly than we can import or export meshes.
if you are working on a project, we strongly recommend you use a .mix file. You can quickly (and frequently!) save using the Ctrl/Cmd+S hotkey, just like any other program.
One caveat with .mix files is that we do sometimes break backwards-compatibility. Your old .mix files will always open fine in the newest versions of meshmixer, but new .mix files might not open in old versions. We know this is a huge hassle, so we don't do it very often. But for example in Meshmixer 3.0 we had to make breaking changes, so 3.0+ files do not load in the 2.X versions.
Here is a list of the formats you can currently Import into Meshmixer
The canonical 3D printing format. Unfortunately this is also just about the worst way to store a mesh! See below under the Preferences section for details. We support both ASCII and Binary STL. For Binary STL, we support face colors, but only one of the modes (there are two conventions and there is no way to tell which is which!). And we bake these face colors into vertex colors, so there is some blurring.
The Wavefront OBJ format is widely used in many industries, and this is the format we have the most extensive support for. OBJ can store arbitrary polygons, but we always convert to triangles on input. We support the color-per-vertex extension used by some other software (eg ZBrush). OBJ is also (currently) the only format where we support importing texture maps (only diffuse maps). We really prefer the texture images to be PNG or JPG formats. For more info on how we handle groups in OBJ files, see the details below in the Preferences section.
Additive Manufacturing Format (AMF) is a relatively new format that was designed to replace STL for 3D printing. Frankly we still think this format is not as good as OBJ, but that's just our opinion. We only support a subset of the expansive AMF format, in fact we only support the triangle-mesh portion.
Polygon File Format PLY is a format that is produced by many 3D scanners. We support ASCII and Binary PLY, and we can read per-vertex colors in PLY files. Note that PLY is quite a tricky format, so if you have a PLY file that gives you an error, please send it to us and we can probably help.
OFF format is a very basic format that stores a list of triangles, essentially a very simple version of OBJ. You might run across OFF files in some old 3D file databases.
Meshmixer support for the 3MF format is relatively new, so there may still be bugs or other issues. This format supports vertex colors and texture/material information.
Yes, in addition to being able to Open a .mix file (which replaces the current scene), you can Import a .mix, to append the objects to the current scene.
Note that for all these formats, we discard the normals stored in the files. We always re-estimate our own normals from the mesh triangles. Also, most of these formats don't tell us what units they were saved in!! So for formats that don't (everything except DAE and AMF), we assume millimeters.
We can export both ASCII and Binary STL. No colors, though.
We export OBJ, and optionally also OBJ with the color-per-vertex extension. In addition, if your model has texture maps, we will export those too. Note, however, that our image file-naming is a bit buggy, so if you are going to export an OBJ with textures, we strongly recommend you do it in a different folder than your source files!
This is the Collada format, which we currently can only write. We simply write out the meshes, not any of the other things you might find in a Collada file (cameras, etc).
We write ASCII PLY files with RGBA colors.
Similar to DAE, our AMFs just contain the mesh data, nothing else
We write Version 2.0 utf8 WRL/VRML files, with per-vertex colors. You might need these for some 3D printing services. We don't support UV-mapped textures in WRL (yet).
This is a pretty obscure format that is used in finite-element simulation, it is basically a concatenated .ele and .node file (if that means anything to you!).
Exporting in 3MF format will export the mesh, vertex colors, UVs, and texture files.
One complication with many of the common 3D mesh formats is that they do not store which direction is "up" in the model. Unfortunately different 3D programs are roughly 50-50 split between "Y-up" and "Z-up". If you are using 3D printing software, you are mostly dealing with Z-up, while if you are using film & games software, or Autodesk Fusion 360, chances are you have files that are Y-up. This is a nightmare!
Inside Meshmixer, we use Y-up. This decision was made 6 years ago and changing it now would be a huge amount of work. However, since many files are Z-up, we provide an option to automatically handle the Z/Y-up conversion on import and export. This option is available in two places - in the Preferences dialog under the File tab, and also in the Append/Replace dialog. The setting is called Flip Z-Y axis on Import-Export, as shown below.
There are a few other Import/Export-related things in the Preferences dialog that you might need if you are an advanced user.
There are a few options for the OBJ file format. If you un-check Load Materials and Textures, then Meshmixer will ignore the .MTL file (and hence texture map files) referenced by the OBJ file. There are a pair of options, Import Groups as FaceGroups and Export Facegroups and Groups. These options determine how we treat the 'group' lines in OBJ files.
When Import Groups as Facegroups is un-checked, we follow the Autodesk Maya convention and treat each group in the OBJ as a separate object. When this option is checked, we assume the entire file is a single mesh, and each group becomes a facegroup on this mesh.
When Export Facegroups and Groups is checked, we export our facegroups as groups. When these two options are combined, it means you can round-trip an OBJ file between Meshmixer sessions without losing your facegroups. OBJ is the only format for which this is supported.
We mentioned above that STL is the worst mesh format, ever. Here is why. Inside Meshmixer, you will notice that your triangles are connected. If you pull on one triangle with a 3D sculpting brush, its neighbours come with it. This information about which triangles are connected, well, STL doesn't store it!! An STL file is just a long list of separate triangles.
When we load an STL, we have to figure out which triangles should be connected. This is a slow process, and in some cases it is ambiguous (like if you have any duplicate triangles or near-degenerate edges). This is why sometimes you can export an object that has no holes or nonmanifold areas as STL, and when you import it into another program (including back into meshmixer), holes or other artifacts will have appeared. So frustrating!
Because this recover-connectivity process has to deal with ambiguity, there are different strategies. You can change the strategy using the Merging Technique drop-down. The Merge Vertices option means that we weld any vertices that are identical (within a tiny tolerance, for ASCII STL), and then try to figure out which triangles are connected based on these merged vertices. The Region Growing option instead picks "seed" triangles and tries to grow a connected, consistently-oriented region out from the seed. This works as long as the faces are consistently oriented, which unfortunately is not always the case. The Adaptive option runs both of these strategies and then returns the result that has the fewest problems (this is the default). And finally the No Welding option skips this step entirely. You will end up with a bunch of disconnected triangles, which are impossible to edit, but you can use such a mesh in some cases (i.e. to fit primitives, as a projection target, for measurements, and as an input to Make Solid)
Does this all sound like trouble? It is. No other mesh format has these problems. So please, only export an STL if your 3D printing software is so terrible that it doesn't support anything else. And complain to them!!