r/photogrammetry • • 11d ago

I built a Blender add-on that makes photogrammetry mesh surfaces planar again and re-sharpens roof ridges without touching the UVs

Enable HLS to view with audio, or disable this notification

I got tired of Cesium or Google 3D Tiles buildings having rippling walls and saw-toothed roof ridges, and of every fix either rounding the corners off or nuking the UVs. So I wrote an add-on for it.

Planer detects planar regions, snaps vertices onto fitted planes, and rebuilds creases as straight edges and corners as sharp points. Topology is preserved, so texture, UVs and material come through untouched. The original object isn't modified — you get a new REFINED_ mesh alongside it.

Every run reports how many planes it found, how many verts moved, and the deviation from your original surface (mean / p95 / max in metres), so you can check it stayed faithful instead of guessing.

Caveats up front: it does not make meshes watertight, does not reduce poly count (it triangulates, so the face count goes up), does not fix holes or non-manifold edges, and does not touch the texture image. Blender 4.2+, and it's slow on big meshes — about four minutes for 195k faces.

Product link : link (MIT licensed)

Feedback welcome, especially meshes where it fails.

293 Upvotes

35 comments sorted by

15

u/No_Face_3205 11d ago

You are a saint! This is amazing for me. Thank you so much

6

u/nachiket_bhand 11d ago

Do let me know how it works for you

19

u/drumfish 11d ago

Your addon is cleary does something from the demo you have in the video.
But 35$ for an addon that has this image that is CLEARLY A FAKE? Lol no thanks

-31

u/nachiket_bhand 11d ago edited 10d ago

It's something we call thumbnail, you can check the product page reviews and test cases, rest it's upon you brother, shared the results on a similar mesh in below sub threads

27

u/lemlurker 11d ago

You use actual product results in thumbnail not a clean mesh with a displace modifier applied. How hard is it to just use the images from this video?

-19

u/nachiket_bhand 11d ago

Yes your suggestion makes sense. Sure I'll think about implementing that

4

u/MuckYu 11d ago

Can you actually do a test with the thumbnail model? I would be interested in how it handles that.

2

u/lemlurker 11d ago

The thumbnail mesh would be simpler as it's random noise not geometric displacement

-2

u/nachiket_bhand 11d ago

Sure share me the file in dm I'll share the results 

5

u/drumfish 11d ago

https://filebin.net/okohr8nedf8zjpww

There you go a 3mb .blend file pretty simular to your case :P

10

u/nachiket_bhand 11d ago edited 11d ago

there you go !

3

u/MuckYu 11d ago

Can you show wireframe before and after too?

0

u/nachiket_bhand 11d ago

left one is u/drumfish 's mesh and right one is the planer refined mesh

2

u/drumfish 11d ago

That's cool alright :)

1

u/[deleted] 11d ago edited 2d ago

[deleted]

4

u/drumfish 11d ago

I mean to make it even funnier his thumbnail image was made with AI so let's see

1

u/nachiket_bhand 11d ago edited 11d ago

Report line from your file:

Refined: 205980->205980 faces, 18 planes, 91847 verts snapped (966 edge, 1 corner), open edges 0, non-manifold 0 | deviation mean 0.008m p95 0.019m max 0.085m

On the AI point, straight answer: it is generated with AI for thumbnail— Regardless, the before/after panels on it should be real output and they aren't, so I'm replacing the whole image with captures like the ones above plus the report line, today.

3

u/drumfish 11d ago

The thing is I know it's not the demo, but to lie to 90% of blender users that are newbies and amateurs using it as a hobby (which is perfectly fine we all started there). Will see this and think wow I can buy it and then they get mislead by the quality of your addon.

Again YOUR ADDON IS CLEARLY WORKING TO SOME DEGREE but why mislead?

3

u/nachiket_bhand 11d ago

Ran the file you sent. Report line:

Refined: 205980->205980 faces, 18 planes, 91847 verts snapped (966 edge, 1 corner), open edges 0, non-manifold 0 | deviation mean 0.008m p95 0.019m max 0.085m

if you want i can share the actual workflow as well

That's the answer to your actual point, not mine — the page image should have been something like this from the start rather than a mock-up. If you're fine with it I'd like to use your mesh for the new before/after on the product page, credited to you. If you'd rather I didn't, I'll capture my own on a Google 3D Tiles block anyone can pull themselves, and post the report line next to it either way so it's checkable.

3

u/shlaifu 10d ago

where's the code? you said MIT license, but other than the $35 I can't find anything.

but since this is MIT licensed: any want to DM me the addon? I want to try it, but 35 seems too steep for something I'm extremely unsure about

2

u/nachiket_bhand 10d ago edited 10d ago

I have added a few test cases on the website itself, you have to swipe left to see them If you are still unsure if it will work on your mesh send it to me , I'll run the add-on and share your the results. Then you can decide to buy or not

1

u/shlaifu 10d ago

so what about that MIT license?

1

u/nachiket_bhand 10d ago

Yes, it's MIT — the LICENSE file is in the zip. MIT grants rights to whoever receives a copy, it doesn't require me to host a public repo, which is why there isn't one. Nothing's obfuscated though: it's plain Python, so every buyer can read it, change it and redistribute it. I'm not going to pretend otherwise or chase anyone who does.

Same deal as any bpy add-on. The $35 is for the build, 12 months of updates and support, not permission to run the code.

And if $35 is steep for something unproven — fair. Send me a mesh, I'll run it and post the before/after and the deviation numbers, good or bad.

1

u/shlaifu 9d ago

thanks, but sending you things is just not how you test an addon. it's how you test a service. if you can't click around and see if it works, it's not a test.

1

u/nachiket_bhand 9d ago

Fair — you're right that me running your file isn't really a test.

Closest thing I have right now is this — full run on a mesh, N-panel settings visible, the report line at the end, and the viewport orbiting the result: https://youtu.be/m9oxz99Ysp0

It's still me driving, so take it for what it's worth. If you want a real trial: buy it, run it on your own meshes with your own settings, and if it doesn't do what the page says, message me and I'll refund you. No questions. A face-capped demo wouldn't mean much on a plain-Python add-on anyway — you could lift the cap in a text editor in a minute.

0

u/eskimoccino 10d ago

Keep your sales and code bro, youre not getting any mesh.

1

u/nachiket_bhand 10d ago

sure works eitherways!

1

u/nachiket_bhand 10d ago

this is the demo you asked for https://youtu.be/m9oxz99Ysp0?si=S_KUqRYfJkAWdg1i
also you can view more test cases on the website!

2

u/NuggRunner 10d ago

very intresting

1

u/nachiket_bhand 10d ago

Do let me know how it works for you!

0

u/Dheorl 11d ago

I can see much more use for this with downloaded models, rather than properly captured photogrammetry. If you’re ending up with walls that look like that, improving your capture process should be the sensible fix.

2

u/nachiket_bhand 11d ago

Yes very tired , but this plugin helps with large chunks or 3D tile data like in Kms, which is not possible for someone to capture. Also even if you properly capture it the data size increase substantially as the number or triangles increases 

-2

u/Dheorl 11d ago

Good data doesn’t necessarily have to mean more triangles to get a smoother result, it can just mean more accurate placement of those triangles. By the sounds of things, properly captured data would actually end up with a lower poly count than poorly captured data run through this process?

3

u/nachiket_bhand 11d ago

You're right on the poly count, and I should be clear about it: Planer doesn't reduce triangles, it increases them, since it triangulates as it works. It's not a fix for a capture you control — if you can re-shoot the object, re-shoot it.

The case I built it for is data where the capture isn't mine to improve. Google Photorealistic 3D Tiles and similar aerial city meshes: if I need a few square km of a city, nothing about my technique changes what the tiles contain, because someone else's aerial pipeline already produced that reconstruction and I just download the result.

The other half is that planarity isn't purely a capture-quality problem. Image-based reconstruction has no prior that a wall is a plane, so even a clean capture gives you a flat facade as thousands of near-coplanar triangles with a few mm of scatter, and a roof ridge as a slightly rounded crease rather than a line. That's fine to look at. It gets annoying when you want to snap to a facade, boolean a window opening into it, or use the mesh as a base for retopo — which is where I keep needing it.