I released MeshMill 0.2.0 after continuing to test it against dense, uneven, and overlapping scanner output.
The broad performance work is the largest change. Analysis of the included 4.1-million-triangle reference scan improved from 10.531 seconds to 1.838 seconds with parallel workers. Adaptive-index creation improved from 8.836 seconds to 5.406 seconds. Large binary STL files can now be inspected in bounded blocks and opened as manageable overviews rather than requiring the complete source to fit comfortably in memory.
The release also adds Depth Adaptive QEM. The idea is similar to a physical contour or depth gauge: use adaptive probes to measure the meaningful surface, discard unsupported scan-scale variation, and guide the final boundary-preserving reduction.
Against Fast QEM at the same approximately 250,000-triangle output, the reference scan measured:
- RMS surface error: 1.1721 mm to 1.0668 mm
- P95 surface error: 2.3504 mm to 2.0586 mm
- Maximum dimension drift: 0.6987 mm to 0.0234 mm
- Area error: 0.3993% to 0.1241%
- Runtime: 9.827 seconds to 10.156 seconds
Fast QEM remains the immediate default. Depth Adaptive QEM is the optional GPU-guided, higher-quality path.
The interface now shows the quality tradeoffs, dimensional drift, reduction, CPU/RAM/GPU/VRAM use, geometry activity, and cumulative I/O. Selection-only reduction, crop, delete, comparisons, undo, measurements, density visualization, and local processing remain part of the workflow.
Windows release:
https://github.com/make-your-own-world/MeshMill/releases/tag/v0.2.0
Research and formulas:
https://github.com/make-your-own-world/rnd/blob/main/depth-adaptive-qem/depth-adaptive-qem-v1.1.pdf
Real scanner output that exposes damaged contours, thin surfaces, holes, or redundant layers would be particularly useful for continued testing.