Skip to content

A rigorous statistical comparison of mesh decimation algorithms (QEM vs. Vertex Clustering) using Python and PyMeshLab. Includes automated benchmarking, visualization, and statistical analysis.

Notifications You must be signed in to change notification settings

ahnafnafee/mesh-decimation-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A rigorous statistical comparison of mesh decimation algorithms (QEM vs. Vertex Clustering) using Python and PyMeshLab. Includes automated benchmarking, visualization, and statistical analysis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published