Methods for creating surface meshes


Learn the different methods available for creating surface meshes. If you want to create a surface mesh, go here

Applies to:

  • Exporting
  • Design Analysis
  • Simulation
  • Topology Optimization
  • Manufacturing


Mesh from Implicit Body

Mesh from Implicit by DC

Mesh from CAD Body

Surface Mesh from a Volume Mesh block

Quadrangulate Mesh


Mesh from Implicit Body:

(Previously known as Mesh from Implicit Body by Voxels)

Mesh from Implicit Body version 2.4.0 creates a Mesh from an Implicit Body. You can preserve sharp features by choosing the Sharpen option. Reduce the triangle count of the final result by choosing the Simplify option.

We have an overload for the block with more inputs, including Sharpening iterations and a region to localize sharpening. This version has a higher computational overhead than Mesh from Implicit by DC block but can handle more complex geometry and produces cleaner meshes.

    • Tolerance: We recommend 1/3rd of the minimum feature size as the input. Translates to the voxel size. Half the input tolerance gives the voxel size. As a rule of thumb, the number of triangles in the unsimplified output mesh quadruples whenever the tolerance input is halved. Keep that in mind to avoid generating unreasonably large meshes. If you only use this input, the output mesh is guaranteed to be watertight, manifold, and without self-intersections.
    • Min. feature size: This input is very different from the min feature size of v1 and should not be confused. If you provide a feature size, the block performs a filtering step to remove any features or holes which are smaller than the provided input. Use this input if the output mesh captures small details which are not manufacturable.
    • Apart from the “Min. feature size” input, the block automatically removes any connected component with a surface area smaller than 0.1% of the surface area of the largest connected component. This step differs from the filtering step in that this cleans up artifacts produced by the meshing step, while the filtering step works directly on the (voxelized) implicit surface.
    • Sharpening option: Enable this to reconstruct sharp features present in the implicit body. Typically, enabling the sharpening option improves the approximation quality of the mesh by a lot. Thus, in practice, it is often possible to decrease the tolerance input and enable sharpening to obtain a given target tolerance between the mesh and the implicit.
      • In most cases, the output mesh should not have defects (i.e., closed, no self-intersections, and manifold).  However, in rare occurrences, the resulting mesh may have self-intersections, be non-manifold, or have pockets (i.e., two triangles with an extremely small dihedral angle).
      • Enabling this option will substantially increase the runtime of the block. Typically, it will take more than twice as long.
    • Simplification option: The old version provides an "adaptivity" input that can be used to obtain a mesh with fewer elements in areas of low curvature. Similarly, the new version has a "simplify" option that produces a mesh with the least amount of triangles while still conforming to the input tolerance. Like the old version, the simplification process can introduce new mesh defects (self-intersections and overfolds). Enabling this option will substantially increase the runtime of the block.
    • Overloads: The block has an overload that provides even more inputs. In particular, it provides a “Sharpening Extent” input. This can be used to localize the sharpening to certain mesh regions. It also provides a “Sharpening iterations” parameter which can be used to run the sharpening algorithm multiple times to potentially increase the quality of the sharp feature reconstruction.


  Pros   Cons
  • High-Quality meshing that produces clean manifold meshes without self-intersections
  • Very robust and useful for capturing detail in complex parts
  • Captures details on TPMS and lattices well
  • Can be exported without further refinement
  • Eliminates sharp edges to a tolerance. Fix this by lowering the tolerance and simplifying the mesh* This can be fixed when used with the Sharpen option.


Mesh from Implicit by DC:

This block converts an Implicit Body to a Mesh using dual contouring. This version has lower computational overhead than Mesh from Implicit Body. However, the result may contain self-intersections and non-manifold edges or vertices. Use Mesh from Implicit Body when a clean mesh is required and/or for the option to sharpen specific regions.

  Pros   Cons
  • Captures sharp features.
  • Lesser computational overload.
  • This might result in self-intersections depending on the geometry.
  • Typically requires further refinement.


The feature size input of this block should be less than the minimum feature size you want to capture in your implicit body. It is the minimum feature size to preserve and not an exact mesh size. Since all future meshes will be based on this, consider using a very small feature size for intricate implicit bodies and re-mesh to a coarser mesh later.

Suggested Feature sizes:

    • Lattices: ≤ 1.0 x thickness
    • Curved thin wall: < 0.6 x thickness
    • Flat thin walls: No constraint (use adaptivity > 0)

The adaptivity input takes in a number greater than 0, which controls if mesh elements will increase in size over flat areas. Low values will result in a more uniform and accurate mesh, while larger values will result in lower element counts. 

    • 0: Uniform mesh
    • 1: Maximum decimation (fewer triangles)


Mesh from CAD Body:

The Mesh from CAD Body block takes in a CAD body and converts it into a surface mesh.

  Pros   Cons
  • Discretizes CAD geometry when implicit nTop geometry is not required.
  • If the imported CAD part has errors or holes, this may cause issues with the resulting mesh.
  • Typically requires further refinement.
  • The tolerance is a scalar input that determines the maximum allowable distance from the mesh to the surface of the CAD body.
  • The Max edge length input is the maximum allowable length of each edge in the mesh.


Surface mesh from a volume mesh block

Extract Volume Mesh Boundary (Deprecated)

You can drag and drop the surface mesh chip from the properties panel of any Volume mesh block. Reduces a volume mesh to a surface mesh by extracting the outer triangles. Robust Tetrahedral Mesh block is often used to fix the imported meshes with self-intersection. 

  Pros   Cons
  • Guarantees no meshing issues such as holes or intersections.
  • Useful for complex parts. 
  • Cleans up input surface meshes that have errors
  • Dependent on the time it takes to generate a tetrahedral mesh using the Robust Tetrahedral Mesh block.




Quadrangulate Mesh:

The Quadrangulate Mesh block re-meshes a triangular or quad mesh and outputs a quad mesh.

  Pros   Cons
  • Used as the input to the **CAD Body from Quad Mesh** block when converting a low-complexity model to a CAD part.
  • Used to generate a quad mesh for export.
  • Used to generate the input quad mesh for the **Cell Map from Quad Mesh** block.
  • It only works on manifold meshes.
  • Meshes may need further refinement before being converted into a Quad mesh.
  • Not for use with lattices or TPMS structures. 
  • When using this block to convert a tri mesh to a quad mesh, we recommend using the tri mesh’s face count as the value for the block’s Target count input. We recommend this value because it may be the fastest and return cleaner results.
  • If the output mesh is self-intersecting, please try increasing the Target count value.

More on this topic:


 mesh surface volume implicit meshing boundary create from voxel grid quadrangulate quad methods extract voxels 
Was this article helpful?