algorithmic modeling for Rhino
Demonstration of algorithm developed for discretizing unstructured meshes into linear and developable strips (or face walks). Developed by Anders Holden Deleuran (CITA) in Rhino/Grasshopper/Galapagos (McNeel/David Rutten) using GHPython (Giulio Piacentino/Steve Baer) and NetworkX (networkx.lanl.gov/).
Tags:
Comment
You might also be interested in the mesh burning algorithm I wrote that does a similar thing (not using graphs though). There's an example file here with both methods in it.
Hi Dakksh, thank you :)
A single shortest walk in a graph shouldn't be self-intersecting (at least that I can think of). But perhaps you mean all the generated walks? If so, the algorithms I've been developing for this kind of stuff are iterative. Meaning that they iteratively calculate shortest paths in the face-graph and then remove the nodes/faces that the path go through at each step (think of it as peeling away the mesh one strip at a time). This way you only ever visit a node once and thereby avoid self-intersections. To keep the walks nice and next to each other, I re-weigh the nodes at each step by whether or not the nodes/faces are on the perimeter (making them more attractively to walk through). I never published anything about this, but Andrei Nejur wrote a paper on his Ivy plugin which covers similar methods in depth. It's in the proceedings for the latest Acadia conference. Might want to dig that that up.
Hope that helps a bit,
Best,
Anders
Ps. I once uploaded some code for building the face-graph and finding a shortest path in it. These are the basic methods I used to construct the algorithm used here. Might help.
Thank you Anders.
I wish success of the project. :)
@ Nenov: Thanks, yes I think you're onto something. Looks like several of the TheVeryMany's projects use some form of mesh traversal algorithm for discretizing their overall shapes. Fantastic work by the way.
@ Shohei: It might still be used for a project, so I'm afraid we can't share it. That said, I recently uploaded a simpler example of how to use the networkx Python module for making a graph using mesh faces or vertices as nodes and then calculating shortest paths on this graph.
Nice works ! looks a little bit like some structures made by Marc Fornes.
That’s awesome!
I have a very interested in this.
I will be able to know the definition of this grasshopper?
@AB: It was. We're developing a bending active (glass fibre rods) tensile membrane (bespoke knit) structure, conceptually similar to a tensegrity structure. This was an experiment to develop cutting patterns on an topologically complex macro form (a tripod shell in this case) for the knit. The idea would be that the "wall" is composed of a two-sided knit with the rods acting as compression members between the two. The project is quite different now ;)
@ Marios: Thanks :) I was minimizing the amount of short walks, so in effect yes also affecting amount of pieces. We also had a constraint at one point where a walk had to be even (i.e. only have an even number of faces). This was optimized towards and also implemented in the algorithm, where a walk would trim itself if it was odd.
Ps. Forgot to give credits to Dave Stasiuk and Daniel Piker. I implemented their isomeshing and meshmachine components for making the input mesh.
Great Anders. :) What are you optimising>? The Number of pieces?
Welcome to
Grasshopper
© 2024 Created by Scott Davidson. Powered by
You need to be a member of Grasshopper to add comments!