Skip to content

Latest commit

 

History

History
70 lines (44 loc) · 2.3 KB

File metadata and controls

70 lines (44 loc) · 2.3 KB

Mesh Decimation Benchmark

Python PyMeshLab Status License

A rigorous statistical comparison of mesh decimation algorithms (QEM vs. Vertex Clustering) using Python and PyMeshLab.

🚀 Overview

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.

Clone the repository

git clone https://github.com/ahnafnafee/mesh-decimation-benchmark.git
cd mesh-decimation-benchmark

Install dependencies using uv

uv sync

🚦 Usage

1. Prepare Dataset

Place your raw models in raw_downloads/ or use the included script to fetch ModelNet40 samples.

uv run model_preprocessor.py

2. Run Benchmark

Execute the main experiment runner. This will decimate meshes and record metrics.

uv run experiment_runner.py

3. Analyze & Visualize

Generate the statistical report and plots.

uv run data_analysis.py
uv run generate_presentation_figures.py

📈 Statistical Methodology

We 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.

📄 License

This project is licensed under the MIT License.