You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, mmgpy's progress reporting only shows phase-level progress (0% at start, 100% at complete) because the underlying MMG library doesn't expose fine-grained progress callbacks. This issue tracks the work needed to propose and implement progress callbacks in the upstream MMG library.
Current Behavior
The progress bar jumps from 0% to 100% instantly when remeshing:
Init phase: 0% → 100%
Options phase: 0% → 100%
Remesh phase: 0% → 100% (entire remeshing happens here, could take minutes for large meshes)
Desired Behavior
Discrete progress updates during the remeshing phase, showing actual algorithm progress:
Iteration 1/10: 10%
Iteration 2/10: 20%
etc.
Technical Feasibility
Analysis of the MMG library source code (mmg3d1_delone.c) shows this is highly feasible:
Main adaptation loop (MMG5_adpdel(), line 642-744) runs up to maxit=10 iterations
Existing progress output at line 715-717 already tracks operations:
Summary
Currently, mmgpy's progress reporting only shows phase-level progress (0% at start, 100% at complete) because the underlying MMG library doesn't expose fine-grained progress callbacks. This issue tracks the work needed to propose and implement progress callbacks in the upstream MMG library.
Current Behavior
The progress bar jumps from 0% to 100% instantly when remeshing:
Desired Behavior
Discrete progress updates during the remeshing phase, showing actual algorithm progress:
Technical Feasibility
Analysis of the MMG library source code (
mmg3d1_delone.c) shows this is highly feasible:MMG5_adpdel(), line 642-744) runs up tomaxit=10iterationsMMG5_Infostructure (libmmgtypes.h, lines 523-564) could be extended to hold callback function pointersProposed Changes to MMG Library
Add callback function pointer to
MMG5_Info:Add setter functions in the public API:
Call the callback at key points:
MMG5_adpdel()Allow cancellation via callback return value (non-zero = cancel)
Implementation Steps
libmmgtypes.hmmg3d1_delone.clibmmg3d.cRelated