Meshdiff – visually compare two STL versions in the browser, client-side

152 points - today at 11:34 AM

Source

Comments

agys today at 1:57 PM
A nice feature to add could be a synchronized transform: when rotating one viewport the other two rotate along (optional).
Agingcoder today at 8:17 PM
Ok so stl here is not standard template library. I was very confused for a minute.
progbits today at 1:09 PM
Looks handy. Feature suggestion: locked views so all three viewports rotate together.
sota_pop today at 3:20 PM
Very cool work! Nice job. Road-map looks good too! I always appreciate client/local-first emphasis. I have been seeing a lot of great in-browser apps coming out via 3js,wasm,etc (THANK YOU LLMs)

With interest in this space you may be interested to check out:

- That Open Company in the BIM industry (not personally affiliated, but admirer). - Fovea ArchVision (also not directly affiliated, but can attest that the team are great people.)

happyPersonR today at 3:56 PM
Yo this would be cool to have embedded as a PR trigger on GitHub for 3d files

And maybe as a preview option between branches ?

embedding-shape today at 12:53 PM
This is pretty cool, and seems to be useful in order to compare various "3D model" generators that are around, would make the comparison a bit easier to make.

Given it runs client-side, could you potentially offer like a CLI as well, or something we could integrate with other things / CI? That'd be a really nifty way of generating these diffs for later inspection.

dvh today at 2:03 PM
- Multi group objs are ignored, I only see first group.

- When uploading same file twice, you should warn about it like meld does (meld says: File /home/foo/Downloads/D_LED_3mm.obj is being compared to itself)

DaSHacka today at 12:34 PM
Wow, just needed something like this literally yesterday, thanks OP.
tomtom1337 today at 12:14 PM
Wow! This looks really cool! Looking forward to playing more with this?
croemer today at 1:06 PM
Should be "Show HN"
ionwake today at 1:14 PM
cool thanks
projscope today at 11:34 AM
I built Meshdiff because clients keep sending me part_v3_FINAL.stl and I have no quick way to see what changed.

Drop two STL/3MF/OBJ files → voxel diff renders in your browser. Green = added material, red = removed. Adjustable tolerance (0.05–1mm). Volume delta metrics.

Privacy first: zero upload to any server. Everything runs client-side in a Web Worker.

Stack: React + TypeScript, React Three Fiber, custom voxel diff engine. No Manifold/CGAL — those assume clean CSG topology; real-world STLs are triangle soup.

If you work with 3D prints, try breaking it with your weirdest files. Real-world meshes are chaos and I need the stress test.