Geodesic on a closed polysurface

Hi, all.

I have a ‘Morpheus hotel’-like closed polysurface, built directly in Rhino via SubD and then converted to NURBS. I also have predetermined ‘node’ points on the brep that I would like to connect via geodesics.

The geodesic componenet in Grasshopper, however, does not work with polysurfaces and I would like to avoid meshing the geometry. I have the mesh, but is is not optimised, and I would like as a result a curve between two points.

Is there a way to make geodesics on a complex closed polysurface with Grasshopper? Any advice on how you would approach this would be greatly appreciated as well.

Welcome @Ivaylo.IG,

There is always a way, but the question is often, if it’s worth pursing! In my opinion, polysurfaces really are not the right choice here, unless each polysurface represents a discrete part of the final geometry.

For the original, they first did a sub-d model with Rhino and t-splines, which is not available anymore:

This seems absolutely on track with what you did with sub-d modelling in WIP 7 (?).

Now, where your workflows diverge is at the next step. ZAHA use a topological mesh, which they probably produced with an advanced script, in modelling software with manual remeshing, or even both (?):

Screenshot 2020-02-12 at 08.19.20

The great advantage here is that their mesh includes much of the necessary information to proceed further. The mesh edges are used for the facade pattern, the mesh faces and vertices contain adjacency information, which probably comes in hand later, etc.!

Screenshot 2020-02-12 at 08.19.33

The many individual surfaces of your brep currently only try to mimic the initial geometry and don’t inform on much more.

Let’s say you pursue this route! You already seem to have projected some kind of point pattern onto the volume. Now you need a custom script the can compute geodesic curves for subsurfaces of breps!
You could probably start at a point, get the points closest subsurface, get this surfaces adjacent subsurfaces, and check if they have a closest point. If they do, then you would need to project these adjacent points to the closest point on the initial subsurface and connect them geodesic-ally to the initial point. You would end up with geodesic curves fragments, but since your initial information was so weak, this will probably plague you throughout the next steps.

How are points currently structured? How do you produce these?

Here’s the video that I got the screenshots from:

Thank you very much for your answer, @diff-arch . I was half expecting this. I am familiar with the webinar. The reason why I did not want to go on with meshing is that I know I can get nowhere near ZHA’s elaborate script for the optimisation of the node positions.

That being said, I am also not necessarily trying to achieve that exact result for the exoskeleton. The points you saw merely follow BuroHappold’s idea of the nodes correlating to the building levels, so those are just a manual set of points arrayed accordingly and projected on the brep. Nothing special I am trying to achieve, just a proof of concept for modelling the geometry in Revit/Tekla.

I suppose I can proceed with a ‘whatever’ mesh, because as you said, and I figured, I will need adjacency information. One question about it I have, though, is how they figured the curvature of some of the members, where the mesh does not give information about curving or twisting. The surface comes in handy here I assume.

Thank you also for the advice with the polysurface. I will also attempt it. I also have to mention, the SubD is modeled in Rhino6, if that makes any difference, but it undergoes conversion anyway.

I don’t quite get what you mean? Their topological mesh seems to be composed of planar faces only, which is a logical step, to make things easier. There thus is nothing that can’t be or isn’t defined.
If you want to planarize your mesh, you could use Kangaroo!

Thanks again for your reply. In the last picture I uploaded of the actual building you can clearly see some of the thick exoskeleton members are either curved, twisted or both (they describe something similar about the three types of members in the webinar). If you consider their topological mesh’s nodes as constant, and the face edges - planar, out of curiosity, what information does the mesh give about how this member is constructed? Node normals?

Yes, the node normals are probably a compromise between all adjacent face normals that are attached to the vertex in question. By compromise, I mean average. Let’s say you have a vertex that is connected to three mesh faces, each having a normal. Its average normal would be the sum of the face normals divided by 3 (because of the three adjacent faces).

Now the faces can be planar, but the overall curvature can introduce torsion!

Check out this topic, where I get into why this happens and similar stuff is discussed: