i have a loft surface i need to divide by equal distances based on proximity to adjacent isocurves, so i can populate it with fixed dimension boxes. Standard UV extraction doesn’t do it, as can be seen in image below, where box sometimes overlap, when at other parts there is too much distance between them. See image below with blue parts overlapping, red is more distance between them. I’ve been try all sort of alternative, but kinda stuck how to best approach this.
Given related topics on this discourse, i tried using tools from plugin Paneling Tools, but ‘Surface Distance’ node only give me partial points, so cannot check the result (probably using it wrong). Also mentioned by someone to use Pufferfish RebuildSurface but results was identical as my loft
I attach file, how someone can have a look and guide me in the right direction, been stuck on this for way too long
i was too quick to reply, I optimistically just looked at the distance numbers, which indeed solve my question. But it seems it was the wrong question to ask, as when i orient the geometry, you can see the mapping is still not there, when i orient the boxes to the new iso curves. They still overlap or have spacings. So it seems we need to a another curve to divide, or use the frame? I am breaking my head around this, seems so trivial.
PS, with native nodes i get same result, no need for the Flexibility node.
Being agnostic towards a working solution, might a Kangeroo-based implementation be worth a shot? So instead of cutting the surface analytically, what if being thread as a combo of RigidBody and Solid collisions, with the surface as constraint.
before diving in (never played with Ka2), what is your take on this approach? Seems so trivial to just pack object on a loft, especially since top and bottom edge have same length. Me vs GH continues…
I already told you its geometrically impossible. You will not get ISOCURVES that can fit boxes that will NOT intersect with each other. Look at my solution, it solves your issue but does not utilise surface isocurves. You can map your boxes to sliced surfaces my solution produces
thanks, and let me look at your script with a fresh perspective. Maybe i need to reevaulate my approach. The ‘need’ came out simplified future production step
With some vibe coding i was able to make a iterative loop that gave me a result that is good enough. Indeed a perfect alignment could not be achieved with this particular surface.
This approach treats the surface isocurves as a dynamic system that “relaxes” into an equidistant state through iterative refinement. The script evaluates a point (mid) on each isocurve, pulls that point to the adjacent curve to measure the shortest 3D distance, and uses a mass addition of all lengths to establish a target average. Then compare each gap to this average: gaps that are too wide cause the curve to nudge closer, while narrow gaps push it away.
that is an interesting/creative approach, in 15 years of using GH, never used Offset on Srf .. and actually pretty elegant to be left with a single misfit i can potentially use to my advantage, instead of incremental ‘misfits’ . Thanks, food for thought