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

Posted by projscope 1 day ago

Counter196Comment21OpenOriginal

Comments

Comment by agys 23 hours ago

A nice feature to add could be a synchronized transform: when rotating one viewport the other two rotate along (optional).

Comment by dotjustin 17 hours ago

Quite honestly this is what I expected the default behavior to be. +1

Comment by progbits 1 day ago

Looks handy. Feature suggestion: locked views so all three viewports rotate together.

Comment by twwwt 23 hours ago

Had the same wish after one second of rotating one pane.

Another thing that came to my mind quickly, whether it would be possible that for one object whose dimension was changed, for instance it was enlarged/shrinked in the x axis by x millimeter, to just highlight those x millimeter of difference. Similar for rotation and shift.

Anyway, cool!

Comment by Agingcoder 16 hours ago

Ok so stl here is not standard template library. I was very confused for a minute.

Comment by pvillano 13 hours ago

.STL files are the most common file format for 3D printing. STL is short for stereolithography, which is usually abbreviated SLA

Comment by zerozerotwo 16 hours ago

Same here. Nothing made sense

Comment by simonw 11 hours ago

Suggestion: add more than one demo. The default demo right now is a little un-interesting, I'd love to be able to swap that out for a few other ones that show more complex objects.

Comment by pjmlp 6 hours ago

I was thinking this would be doing a diff between clang, GCC and MVSC implementations of the C++ STL library.

Comment by rpunkfu 5 hours ago

Would’ve been great to be able to lock/sync orientations on both

Comment by sota_pop 21 hours ago

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.)

Comment by embedding-shape 1 day ago

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.

Comment by dvh 23 hours ago

- 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)

Comment by tomtom1337 1 day ago

Wow! This looks really cool! Looking forward to playing more with this?

Comment by DaSHacka 1 day ago

Wow, just needed something like this literally yesterday, thanks OP.

Comment by happyPersonR 21 hours ago

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 ?

Comment by croemer 1 day ago

Should be "Show HN"

Comment by ionwake 23 hours ago

cool thanks

Comment by projscope 1 day ago

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.

Comment by croemer 1 day ago

From https://news.ycombinator.com/item?id=22336638:

> Don't have your username be that of your company or project. It creates a feeling of using HN for promotion and of not really participating as a person. You don't have to use your real name, just something to indicate that you're here as a human, not a brand. If you'd like to change your username, email hn@ycombinator.com.

Your projscope website cuts off text on mobile as it's completely unresponsive.

Comment by denpa 15 hours ago

What do you mean by CGAL requiring clean CSG topology? It’s not even a CSG kernel and it supports polygon soups out of the box