MMG Parameters Reference¶
Complete reference for all MMG remeshing parameters.
Size Parameters¶
hmin¶
Minimum edge length.
| Property | Value |
|---|---|
| Type | float |
| Default | Auto-computed |
| Range | > 0 |
Edges shorter than hmin will be collapsed or lengthened.
hmax¶
Maximum edge length.
| Property | Value |
|---|---|
| Type | float |
| Default | Auto-computed |
| Range | > hmin |
Edges longer than hmax will be split.
hsiz¶
Uniform target edge size.
| Property | Value |
|---|---|
| Type | float |
| Default | None |
| Range | > 0 |
When set, overrides hmin and hmax with uniform sizing.
hgrad¶
Gradation parameter controlling size transition.
| Property | Value |
|---|---|
| Type | float |
| Default | 1.3 |
| Range | >= 1.0 |
hgrad=1.0: No size variation allowedhgrad=1.3: Default, allows 30% size change between adjacent edgeshgrad=2.0: Large size variations allowed
Geometric Parameters¶
hausd¶
Hausdorff distance - maximum distance between input and output geometry.
| Property | Value |
|---|---|
| Type | float |
| Default | 0.01 * bounding box diagonal |
| Range | > 0 |
Smaller values = better geometric approximation but more elements.
angle¶
Ridge detection angle in degrees.
| Property | Value |
|---|---|
| Type | float |
| Default | 45.0 |
| Range | 0 - 180 |
- Edges with dihedral angle >
angleare treated as ridges - Ridges are preserved during remeshing
angle=180: No ridge detection
Control Flags¶
optim¶
Enable optimization mode.
| Property | Value |
|---|---|
| Type | int |
| Default | 0 |
| Values | 0 (off), 1 (on) |
When enabled, only moves vertices to improve quality (no topology changes).
noinsert¶
Disable vertex insertion.
| Property | Value |
|---|---|
| Type | int |
| Default | 0 |
| Values | 0 (off), 1 (on) |
Prevents adding new vertices during remeshing.
noswap¶
Disable edge/face swapping.
| Property | Value |
|---|---|
| Type | int |
| Default | 0 |
| Values | 0 (off), 1 (on) |
Prevents topology changes via edge/face swaps.
nomove¶
Disable vertex movement.
| Property | Value |
|---|---|
| Type | int |
| Default | 0 |
| Values | 0 (off), 1 (on) |
Keeps vertices at their original positions.
nosurf¶
Preserve surface vertices.
| Property | Value |
|---|---|
| Type | int |
| Default | 0 |
| Values | 0 (off), 1 (on) |
Prevents modification of surface mesh vertices.
Output Control¶
verbose¶
Verbosity level.
| Property | Value |
|---|---|
| Type | int |
| Default | 1 |
| Range | -1 to 10 |
result = mesh.remesh(verbose=-1) # Silent
result = mesh.remesh(verbose=0) # Errors only
result = mesh.remesh(verbose=1) # Standard info
result = mesh.remesh(verbose=5) # Debug output
Common Combinations¶
Quality Optimization Only¶
Or use the convenience method:
Uniform Remeshing¶
Or use the convenience method:
High-Quality Surface Approximation¶
result = mesh.remesh(
hmax=0.1,
hausd=0.0001, # Tight geometric tolerance
hgrad=1.1, # Smooth size transition
)
Preserve Sharp Features¶
Fast Coarse Remeshing¶
Volume Interior Only¶
Parameter Interactions¶
| Parameters | Effect |
|---|---|
optim=1, noinsert=1 |
Quality optimization only |
hmin=hmax |
Near-uniform sizing |
hausd small + hmax large |
More elements on surface |
angle=180 |
No ridge preservation |
hgrad=1.0 |
No size gradation |
Best Practices¶
- Start with defaults: MMG auto-computes reasonable defaults
- Set
hmaxfirst: Most important parameter - Add
hausdfor surfaces: Controls geometric fidelity - Tune
hgrad: Lower for smoother transitions - Use
verbose=-1: For batch processing - Validate results: Always check mesh quality after remeshing