engine_web-ifc icon indicating copy to clipboard operation
engine_web-ifc copied to clipboard

bool - holter tower

Open vegarringdal opened this issue 3 years ago • 13 comments

Holter tower is missing a few windows Tried this with v 0.20 with and without USE_FAST_BOOLS

image

vegarringdal avatar Jun 22 '21 14:06 vegarringdal

Hey @vegarringdal can you confirm that this still happens? Cheers!

agviegas avatar Jun 15 '22 09:06 agviegas

@agviegas

Nope, but noticed npm version and console is printing out different version... I just cloned... so I dint not have any old files laying around

image

vegarringdal avatar Jun 15 '22 14:06 vegarringdal

Hey @vegarringdal yeah that's actually a mistake on our side, you are probably using 35, the log has a typo. If you could provide me the model privately, we'll address this asap. Cheers!

agviegas avatar Jun 16 '22 21:06 agviegas

I just downloaded a random holter tower IFC file from internet. 😁 Ill see if I have it still when I get home.

vegarringdal avatar Jun 17 '22 09:06 vegarringdal

If this is 169 MB file from https://www.markusplassen.no/?p=159 - these windows are now fine. Although there is still a 100+ boolean problems in the file: Снимок экрана (447)

edit: I think they are fine because the walls around them are gone 😅

makc avatar Jun 17 '22 13:06 makc

Hey @makc so still problematic, huh? We'll need to take a deeper look into this when we release more bounties regarding booleans!

agviegas avatar Jun 22 '22 15:06 agviegas

@agviegas as you see, the most of bugs are meshes where joining the vertices does not make them manifold - those are supposedly easy to figure out. but errors in polygon.cpp are kind of hard to understand, and will probably need to be reported to @elalish with obj files to reproduce.

makc avatar Jun 24 '22 15:06 makc

I'd love to know more about what's going on here. Are you referring to merging nearby verts to e.g. make an STL manifold? Like most things, the simple cases are simple, but making it robust can be pretty tricky. Certainly pass any Manifold errors back to our library. In fact, I have some flags for verbosity that help with spitting out polygon error cases (which is how I've created a lot of my tests).

Speaking of, I had no idea you took me on as a dependency; that's exciting! Ideally I'd like to keep a list somehow of what projects are using the library, though it seems easier said than done. Anyway, thanks for mentioning me.

elalish avatar Jun 24 '22 16:06 elalish

@elalish I could log input mesh if you are willing to take a look at that in the context of polygon.cpp error;

Are you referring to merging nearby verts to e.g. make an STL manifold

currently ifc input data is just a triangle soup - so I have attempted to merge the vertices back before passing to manifold lib and when we have a simple enough mesh it works. but I guess there are cases where too many vertices touch and then merging them is doing nothing but harm.

makc avatar Jun 24 '22 16:06 makc

Yeah, this is why triangle soup like STL is such a problem - it's basically impossible to reliably retain manifoldness in general cases. This is why I helped develop the 3MF format, which is focused on defining and retaining manifoldness.

Yes, please log the input meshes you're having trouble with. If you can manage to write a PR with a TEST case that reproduces it, that would be the best, but an issue with some repro steps would also be helpful.

elalish avatar Jun 24 '22 17:06 elalish

@agviegas here is an example of non-manifold hole that breaks this tower file: image

again, 2 boxes together in one hole, just like in #126 - so I guess the same issue.

makc avatar Jun 24 '22 20:06 makc

Hey @elalish sorry for not letting you know, my bad. We will probably release more bounties to identify these errors, fix the ones related to geometry generation on our side and support your fantastic work (like we did with Garret's three-mesh-bvh), if that's ok with you. 🙂 We'll let you know of any news. In the meantime, of course, feel free to include IFC.js as one of the projects using your library as a dependency, and let us know if you need anything from us.

agviegas avatar Jul 06 '22 07:07 agviegas

Fantastic, keep those bug reports coming! And certainly let me know if have any comments on the API.

elalish avatar Jul 06 '22 17:07 elalish