Splitting a Surface with Intersecting Breps fails pretty often

Hello,

Anyone have a workaround to split the surface of a sphere with these cutting curves? Every surface split generates an incorrect result.

I’ve attempted a few python solutions too, but never seems to spit out something proper.

Thanks
Earth.gh (862.2 KB)

missing

I got around that but OUCH :exclamation: It is painfully slow before even trying to split the sphere.

And I wonder if the extrusions even intersect the sphere fully? To be sure, I’m inclined to scale up the extrusions or the joined curves that are extruded… Yes, I can see that works better:


Earth_2023Aug29a.gh (854.5 KB)

My inclination is to try SplitMul first - I’ll let you know.

P.S. How to choose which parts of the split sphere to view if either method succeeds?
P.P.S. My laptop is running too hot, I may kill this before it completes. :cry:

Later - I quit, burn up your own computer if you must - I don’t see the point of damaging mine.

PullCurve is much faster on this than brep Intersection by the way at 530ms :slightly_smiling_face:

Best I have, not perfect though. Splitting the sphere in half actually helped it. As @Joseph_Oster said though, How to sort the surfaces? Good luck :slightly_smiling_face:
Earth (1).gh (851.9 KB)

Hi @Cooper_Copetas ,

This is a tricky one…

I have heeded the warnings of others and noted that this one is a real CPU hog.

I added some optimizations to cull bad lines, and filter by tolerance for the outline sizes.

If you need every single island, you will need to take the time to compute it.
If you can get away with the earth looking correct in general, it can be a significant performance boost.
Your call, it should work either way.

Thankfully when it comes to separating the split faces, we can exploit the fact that the oceans will return the largest “single” surface and cull or filter other faces accordingly.

The longest computation time is the Extrude To Point component. Not even sure if that’s what you’re after or if you simply need to split the sphere with the boundary curves?

If that takes too long, you can utilize the Loft logic I added where we scale the curves to near 0 and loft between them. Creating the tapered to point illusion while giving a performance boost.

Graph Space:

Model Space:

Hope this helps you!

20230829_Earth_Split_Response_01a.gh (869.1 KB)

3 Likes

All,

Thanks for giving it a shot!
Sorry I forgot to leave a disclaimer that your CPU might melt…

@Joseph_Oster I gave those a shot too, does not work. I think it’s an issue inherent to the splitting functions in grasshopper unfortunately.

@Ryan14 That’s a good tip – saves me the trouble of making the extrusions.

@michaelvollrath Thanks for this interesting workaround. Size filtering does help expedite the testing to see what works and what doesn’t. What I’m looking is to isolate only the landmass boundaries as spherical cut-outs. That was why I made the extrusions in the first place to cut the sphere. I can just adjust the selection from the cut surface list to pick the landmasses only.

It does cripple the Sphere (Ocean) but landmasses come out good


:slight_smile:

2 Likes

Ha no worries! Its been a long time sinse I worked my CPU that hard. It needed a workout anyways :wink:

Nice, I’m glad that worked. Just out of curiosity, what did your computation time end up being?

2 Likes

1.2 Minutes. Not too bad actually… It only partially fused to my motherboard.

1 Like

That was around my time as well. Good haha no computers were harmed in the making of this globe

1 Like

Not posting your code? :yawning_face:

Oh I’m still messing with this script (adding features like landmass extrusions and filtering out seas using layers), but the bulk is resolved by Michael (I copied the script here). I brought it down to 18.3s.

Cheers!

image

Earth Workaround.gh (865.4 KB)