Cheers Dale, thanks so much for looking this up for me. I’m afraid it doesn’t add more information. With the Rhino help description being the most rich:
The ShortPath command creates the shortest possible curve (geodesic) between two points on a surface. A true shortest path exists, and if this path does not run along a surface boundary, it is a geodesic. Not all geodesic curves are shortest paths between their end points. For instance, a great circle on a sphere is a closed geodesic, it does not have endpoints. An arc of a great circle on a sphere containing more than 180 degrees is a geodesic, but it is not the shortest path between the end points. However, geodesics are locally shortest paths. This means that if you take a sufficiently small piece of a geodesic curve, it will be the shortest path between its endpoints.
This doesn’t describe/reference the underlying method/algorithm used to compute the geodesic though, which is what I was hoping to reference within my PhD thesis. For context, I’m referencing various methods for computing geodesics on triangle meshes for membrane pattern cutting, including:
- Barnes, Michael R. (1999). “Form Finding and Analysis of Tension Structures by
Dynamic Relaxation”. In: International Journal of Space Structures 14.2. - Ishii, Kazuo (1999). “Form Finding Analysis in Consideration of Cutting Patterns
of Membrane Structures”. In: International Journal of Space Structures
14.2. - Gründig, Lothar, Erik Moncrieff, Peter Singer, and Dieter Ströbel (2000). “Highperformance
Cutting Pattern Generation of Architectural Textile Structures”.
In: Fourth International Colloquium on Computation of Shell & Spatial Structures. - Kim, Jae Yeol and Jang Bog Lee (2002). “A New Technique for Optimum Cutting
Pattern Generation of Membrane Structures”. In: Engineering Structures
24.6.
These generally use dynamic relaxation or the force density method as their underlying method (similar to this approach). However, since I ended up using Surface.ShortPath
for a project, I am now wondering how exactly it works, being that it operates on NURBS surfaces and not triangle meshes?