A rigorous statistical comparison of mesh decimation algorithms (QEM vs. Vertex Clustering) using Python and PyMeshLab.
This project provides a comprehensive benchmark of 3D mesh simplification algorithms. It automates the process of decimating dataset models, measuring performance metrics (Wall-clock time & Hausdorff Distance), and performing rigorous statistical analysis (ANOVA, Welch's T-test) to determine the optimal trade-off between speed and geometric fidelity.
Key Findings:
- Vertex Clustering: ⚡ 100x Faster and Robust. Best for real-time previews and extreme decimation (90%), where it maintains stable error rates compared to QEM.
- Quadric Error Metrics (QEM): 💎 High Fidelity (at 50%). Preferred for moderate reduction, but geometric error spikes significantly on CAD models at 90% reduction.
git clone https://github.com/ahnafnafee/mesh-decimation-benchmark.git
cd mesh-decimation-benchmarkuv syncPlace your raw models in raw_downloads/ or use the included script to fetch ModelNet40 samples.
uv run model_preprocessor.pyExecute the main experiment runner. This will decimate meshes and record metrics.
uv run experiment_runner.pyGenerate the statistical report and plots.
uv run data_analysis.py
uv run generate_presentation_figures.pyWe employ a Three-Way ANOVA to analyze the interaction between Algorithm, Mesh Type, and Decimation Level (50% vs 90%).
-
Significance Level:
$\alpha = 0.05$ - Post-Hoc: Tukey's HSD for pairwise comparisons (controlling for Type 1 error).
See RESULTS.md for the experiment report.
This project is licensed under the MIT License.