This node creates a tet mesh from the surface triangle mesh of the tissue. The tet mesh is generated using an adaptive lattice with tets no wider than tetSize. Tets near the surface are refined, as specified by the surfaceRefinement parameter. This makes it possible to generate meshes that are more refined near the surface than in the object interior. By default, there is no surface refinement, that is, by default, our meshes are uniform everywhere on the tissue. The surfaceRefinement parameter is paintable on the surface triangle mesh, which makes it possible to generate meshes that are more refined in some surface locations than others. It is also possible to “propagate” the refinement level from the surface into the interior, using the refinementPropagation attribute, to generate meshes that blend between surface-refined versions and uniform versions (by default, this is disabled).

Attribute Meaning

The base resolution of the tet mesh. No tets will be larger than this width. This is the primary value to adjust to make the mesh finer or coarser.

Note: Because we are using an embedded method, the resolution of the tet mesh is conceptually decoupled from the resolution of the embedded surface. Often, you can embed detailed Maya meshes into coarse tet meshes, and still produce high-quality results at a small computational cost. While great detail in the output geometry will be guaranteed automatically because of the embedding method (assuming a detailed embedded mesh), the tet mesh resolution can be increased, say, in order to support desired wave propagation and greater detail in the deformations. Since the deformation frequency of muscles is actually quite low, it is possible to achieve optimal muscle deformation with low resolution tet meshes in many cases.


Tets near the surface will be refined according to this value. A value of 0.0 is default and means no refinement (constant resolution everywhere on the mesh). A value of 1.0 means that the surface will be 2x more refined than the interior, a value of 2.0 will make the surface be 4x more refinement than the interior, and so on. The parameter must be greater or equal to 0.0, and typically ranges between 0.0 and 10.0, for a 1024x finer surface detail than the interior.

Note: surfaceRefinement is multiplied by the painted weights, which also default to 0.0. So, in order to use surface refinement, you have to paint the weights.

refinementPropagation Controls how much the surface refinement propagates into the mesh interior. Must be on the interval between 0.0 and 1.0. A value of 0.0 (default) causes no propagation. A value of 1.0 makes the interior resolution match the surface. Intermediate values produce intermediate amounts of refinement.
fillInterior When checked, fills the volume of the tissue with tetrahedra. When unchecked, only creates tets at the outer surface, leaving the interior hollow.
maxResolution Interrupts the computation if the smallest output tet would divide the object into more than this many tets per side. For example, if maxResolution=100, then the tet meshing will abort if the tets will be smaller than 1% of the width of the object. This does not affect the result (assuming the computation was not interrupted).
weights Gives spatial control over surface refinement. The surfaceRefinement attribute value is multiplied by the weight at each surface vertex, to determine the amount of refinement at that surface vertex. By default, the weights are 0.0, so if you want to use surfaceRefinement, you need to paint them (e.g., to a constant 1.0, or non-uniformly to generate meshes that are more refined in some surface locations than others).