algorithmic modeling for Rhino

Hi All,

I tried this for a long time in many different ways but I failed to achieve the result I am anticipating.

I need to model a Bucky space frame based on 2 triangular grid meshes (see image).

This is what I did in the definition:

1- Pick every other mesh face using David Stasuik's VB script

2-Project a pyramid mesh face on each of these

3-Get the edges.

The last step would be to connect the vertex of each of the pyramids in a triangle grid mesh that is 'slipped' from the original grid.

Any ideas? 

Definition attached. Your help is appreciated.


Views: 8571


Replies to This Discussion

BTW: Just before Seppuku > Plan Z > Skype

BTW: there's some nasty bug in the ballpivot code: see the direction of the primary edges (near by the left upper GH "window" corner). Nothing to do with the truss ...on a per se basis ... but aesthetically rather unacceptable.

better visible in the flipped mode: WDir towards -Z (mesh out of sight):

I meant a GH file without the weaverbird components. I need to see how the points are actually organised within Grasshopper. If they are properly structured then the Relative Item(s) components can probably be used, if they are not, then you need to take Peter's suggested route and actually deal with the mesh topology.

Sure David,

Here I replaced the WB Prism component with a face normal SDL and an end point.. Which is the same thing for me really. If these points were connected, the job is done.


The file..


Hi Chap-

Attached you'll find a script that should do the trick. The sorting process works with regular triangulated grids (as you have here: all interior vertices are valence 6)...once you break that topology, though, it won't work.

hope it helps!



Hi Dave. That's perfect! Its actually exactly what I'm looking for. Is there a way to remesh my topology so that all the interior verticies are valence 6? Then I assume your script would work on the mesh I am working on (the piece Is sent is a small patch)



It depends on the geometry. There are many configurations where it isn't possible (for example, a sphere)...and even in many instances where it is possible, it is extremely difficult. If your source geometry is surface like, then you can distort a valence 6 mesh over it...but the more doubly-curved it is, the more distorted your mesh will become. What does your original geometry look like?

Hi Dave,

Thanks again for your helpful insights. My geometry is a tent-like structure, generated through a  mesh relaxation. 
I'm afraid its very much a doubly curved surface.

Any way that could be resolved?


Another issue is.. That I am feeding a grafted list of mesh faces, and a grafted list of offset distances. Your script doesn't seem to take data trees.. I need this because the structure gets shallower near an attractor in the design I am working on.



It's always easier if you post files...:) If you're using mesh faces as a grafted list, then you lose all of the connectivity information embedded in the mesh (which really is the main reason to use it!).

I also think that if you're working with more freeform geometry, then the general approach that Peter is outlining - basically, using the dual graph of the base mesh (bottom members wireframe) to create a polygonal approach to the top member wireframe, and then creating a tetrahedron for each bottom face. This will negotiate any type of base mesh, so long as it is triangulated...if your base mesh has some mix of 5,6,7 valence faces, then it will be able to represent your double curvature well while maintaining similar member lengths.

Is there a particular reason that you want/need to use the specific truss typology you've shown?

i saw this little c# script and tried on a large scale mesh. while using your def i was wondering if it could apply to the whole object?







  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service