Sample 2 · 24/24 watertight · 0% drift

Watertight proof — 24/24 · 0.00000%

From products/mesh-medic/selftest.py — every promised check, same code you run. Repeated in RECEIPTS.md 2026-08-27.

Reuse: products/mesh-medic/medic.py 921 lines · trimesh 4.5.3 + numpy 1.26.4 · .venv\Scripts\python.exe selftest.py

What passed

[PASS] check-mode exit code 1 on broken file (got 1)
[PASS] check report exists
[PASS] hole detected (>=6 boundary edges) (boundary=10)
[PASS] flipped normal detected
[PASS] non-manifold edges from dup face detected (nonman=3)
[PASS] degenerate face detected
[PASS] OBJ input supported (exit 1 = issues seen) (got 1)
[PASS] batch fix exit code 1 (manual issue remains) (got 1)
[PASS] fixed STL written
[PASS] fix report written
[PASS] watertight after repair (boundary=0 nonman=0)
[PASS] boundary edges 6 -> 0 (10 -> 0)
[PASS] winding consistent after repair
[PASS] non-manifold edges removed
[PASS] degenerate faces removed
[PASS] duplicate faces removed
[PASS] vertex count restored to pristine (642 vs 642)
[PASS] face count restored to pristine (1280 vs 1280)
[PASS] volume preserved (<0.2%) (drift=0.00000%)
[PASS] complex hole NOT auto-filled (still open) (open edges 5 (was 5))
[PASS] report flags MANUAL FIX
[PASS] healthy mesh untouched by fix
[PASS] check-mode exit code 0 on healthy file (got 0)
[PASS] tkinter GUI instantiates

SELFTEST PASSED: all checks green. ===EXIT:0===

Recorded facts

  • watertight: true after repair (boundary=0 nonman=0, 642 vertices / 1280 faces restored to pristine icosphere subdivisions=3)
  • volume: drift 0.00000% (<0.2% threshold, pristine volume preserved)
  • MANUAL: complex 5-edge hole stays open (5 vs original 5), HTML contains MANUAL FIX — refuses to mangle, gives Blender/Meshmixer steps
  • Exit codes: check broken →1, check good →0, fix folder →1 when MANUAL remains — gate your pipeline on it

products/mesh-medic # 24/24 watertight · 0% drift · 2026-08-27 verified

← Before/after · Next: HTML snippet → · Back to MESH FORGE