How duplicate detection works
Updated Aug 9, 2026 · 2 min read
Content hashing groups exact copies, a geometry tier catches re-exports, and near-copies queue up for your review.
Every model Meshory indexes gets a content hash, a fingerprint derived from the file's actual bytes. Two files with the same hash are the same model, regardless of their names or which folders they live in. That works inside ZIP, RAR and 7Z archives too: a copy buried in a downloaded archive groups with the loose file next to it. And the Duplicates view counts only what belongs there: models and archives. Companion files like images and PDFs are indexed alongside your models but never reported as duplicates, so a preview render repeated across fifty folders can't bury the real findings.
Exact matches are only the first tier. STL, OBJ, and 3MF models also get a geometry fingerprint derived from the mesh itself, so the same model re-exported under a different name (or a different format) still groups even though the file bytes differ. And rotated, rescaled, or re-tessellated near-copies surface separately as likely duplicates for you to review: they never join bulk cleanup unless you look at a group and confirm it.
That's how the Duplicates view groups copies together: the dragon you downloaded three times under three names becomes a single entry listing every copy and where it lives, so you can see the redundancy instead of tripping over it. Your library itself is untouched; each file stays right where it is.
New to Meshory? The duplicate STL finder page shows how detection fits into cleaning up a real library.
Bulk actions only ever operate on the certain tiers: identical content and identical geometry. A rotated or rescaled near-copy stays quarantined in the likely-duplicates queue until you confirm it, so a group you clean up really is the same model.
Network sources are covered too: files on NAS mounts are fingerprinted at a gentler pace by default. You can switch that off in Settings → Scanning, or pause the comparison pass from the Duplicates view if you need the drive left alone right now. Pausing takes effect within moments, survives an app restart, and stays on until you resume it. Files a running scan touches still get their fingerprints for free, since the scan is reading them anyway.