geomcheck runs 30 deterministic, CPU-only probes on a 3D mesh (open boundaries, floaters and connected components, self-intersection, hidden surface, thin walls, surface roughness) and reports which ones fail. It is pure Python (Trimesh, PyMeshLab, Embree), takes seconds per mesh, and ships with unit tests on synthetic meshes.
The repository also contains the code, configs and per-asset statistics for the paper "Geometric validity is not perceptual quality" by Miles Carter (Zenodo DOI 10.5281/zenodo.22995915). ...