How to create some diagonal lines in a geodesic structure?

Hello,

I am trying to create a sort of geodesic structure for a Nautilus shell. I would like to know how to create this type of curve (diagonally) to implement a triangulation.


Imagine a u,v grid, the diagonal curves start at the top center curve of the shell and go down diagonally for each “u” layer.


The goal is to create a diagonal line until it hits each of the points on the bottom of the shell. 1 goes one way, 2 goes the other way, 3 a curve on the other side of the shell going one direction and 4 goes the other direction on the other side of the shell.


Imagine this as a flat surface (the shell is not a developable surface), the grid would look like this:

I have already done something in Grasshopper, but I do not know how to deal with the data (the lists need the connection points to create the diagonal curves, but I do not know how to deal with the indices of the intersection points generated from the u and v axes).

How could I do this in GH?

nautilus_shell.gh (147.8 KB)

Thanks in advance.

Hello
you can do something like that with meshes


nautilus_shell_LD.gh (144.4 KB)

or you can surely write the equation in UV space



nautilus_shell_LD2.gh (145.7 KB)

2 Likes

Hi @laurent_delrieu ,

Thank you for your help!

My intention was to create something with these types of curves already in place, forming this direction. In other words, the solution you showed is not exactly the path I want the curves to follow. Also, I was not very clear when I wrote this, so let me explain better:


In 1, the curve goes in one direction, and the other goes in the other. But there is an inflection between the two. Curve 1 was formed by geodesics, starting from the “u” curve centered at the top to the “u” curve centered at the bottom, and the other starting at the top and going to the center of the Nautilus shell.

So you need to keep these rule axes to create the triangulation.

Just to note:

I noticed that with this setup it exactly meets my intentions, but with only one curve:

I am tinkering with this, so this information might help me figure out a solution.


nautilus_shell_2025May3a.gh (153.8 KB)

This responds quickly to changes of the ‘U Count’ and ‘V Count’ sliders.

2 Likes

This version (‘b’) uses straight lines instead of CrvSrf. (Curve On Surface)


nautilus_shell_2025May3b.gh (152.2 KB)

1 Like

CrvSrf has some anomalies. Pull Curve (version ‘c’) is promising but has weird flaws at the “center” of this shape. This version (‘d’) uses Project and I think it’s the best yet.


nautilus_shell_2025May3d.gh (153.3 KB)

P.S. Version ‘c’ (Pull Curve) isn’t quite as broken in R8 as R7 so I’ll post it anyway, just in case developers want to study it. I tried a little but failed to cull the weird stuff.
nautilus_shell_2025May3c.gh (151.6 KB)

1 Like

Hi @Joseph_Oster,

Thank you for your solution!

As I mentioned earlier in a reply to @laurent_delrieu, I was thinking of something that would follow the axes created from the geodesic component in order to create the triangulation around these rule curves.

Looking for a solution on the internet, I found something useful for me (it was necessary to deal with the data structure): ‘Relative Items’ was useful here, see 3.6.1, because I was able to manage the connections between the points.


The two images have a small difference: 1 is the generation with your .gh file, and 2 is the result I got with the “Relative Item” process (I disabled the horizontal ‘u’ lines in “2”, because it is clearer to see the structure created in relation to what I mentioned earlier for Laurent).

Your attention to the center of the surface is true. This came from the origin of the surface (this comes from parametric equations, implemented in Python, but I do not know how to deal more clearly with its center). For some reason, the center has some strange curves. Even so, I think the way I got it is good for now (it will be a truss structure, but this center will have a column or something, so it could be ignored somehow).

nautilus_shell_truss.gh (29.9 KB)

This is the .gh file with the “Relative Item” process and the Nautilus shell surface source (I did not post this earlier as I thought it was not relevant to the main problem). The .gh file is not in the best organization, nor even with the best component optimizations, but it’s good enough for me for now. Maybe it is possible to optimize the file somehow.


Now, I just need the truss to reach the final curve, as shown in the image. I will appreciate any solution!

Thank you again!

Yeah, I saw your second post after I had implemented the SubSrf (Isotrim) method. I’m just playing, not working. I tried your nautilus_shell_truss.gh and get this error:

  1. Error running script: No module named ‘numpy’ [2:1]

FYI:

nautilus_shell_2025May3f
nautilus_shell_2025May3f.gh (148.7 KB)
full size

P.S. This looks like work to me :bangbang: :slightly_smiling_face:

Five Path Mapper components :bangbang: :roll_eyes:

1 Like

Hi @Joseph_Oster,


For the ‘numpy error’, inside the py3 component (double click on it), try installing the numpy library in the IDE. If it works for “numpy” and you get errors for the “itertools” and “math” libraries, try installing them using the same method, but with the names “itertools” and “math” in step 2.

Oh yeah, that is kind of annoying. I need to enroll in a GH course, but I need time to improve my skills…

nautilus_shell_truss_internalized.gh (183.1 KB)

In this new .gh file, I have internalized the Nautilus shell, so you can see the process, but also generate the shell from the py3 component if the libraries work. I changed some texts of the path mappers, just to work in each way (internalized and python).

Thanks, Joseph!