Grasshopper

algorithmic modeling for Rhino

Hello everybody!

After reading the MeshMash! Daniel´s blog post and watching the video for isosurface dynamic remeshing (http://vimeo.com/49685425), I would like to ask if anyone could give a hand on how to get hexagonal subdivision for the mesh.

I think the clue is in:

"(...) Instead, using the mesh connectivity itself from the very beginning as the network of which vertices interact with which, and updating it iteratively and locally based on its changing geometry, solves all of these problems at once. This connectivity update can be done by using repetitions and combinations of just 3 essential moves. (...)"

But couldn´t get exactly to the point because I am not sure of the meaning of it.

Any hint?

Thanks!

Views: 3671

Replies to This Discussion

I'm pretty sure that's actually the dual graph of an underlying mesh consisting of triangles and/or quads (and hence not guaranteed to be hexagonal by the way). I believe that Weaverbird has a component which extracts the dual graph from a mesh. Hope that helps.

Thanks!

This is a pretty complex problem, for sure.  What kind of geometry are you starting with?  What kind of control can you exert during mesh formation?  Or are you inheriting a very messy mesh that you want to clean up?

Hello Anders and David.

Thanks for your replies. I see it is quite complex.

Just for testing purposes, I am starting by meshing a surface, similar to the Soumaya Museum´s (see pictures attached), which has a simmilar panneling.

Firstly, I thought that maybe a Kangaro "hinge" component could help in order to constrain the angles of the mesh triangles?

If I recall correctly, the interesting thing about the tiling on the Soumaya museum is that it uses hexagons of only a relatively small number of different shapes, while keeping the gaps within acceptable limits.

If you wanted just fairly even sized hexagons (but all slightly different), you could relax the edge lengths of a triangular mesh with springs or equalization forces.

To keep to a limited number of different panel types you could then find the best fit for each panel from a fixed family of options. (finding the optimal family and assigning panels to it could be tackled using something like K-means clustering - I think there was a thread about this here once).

Exactly, that is the point!

I remember watching a presentation in 2011´s SG in Copenhagen.

I´ll try what you mention in your response.

Thanks.

Ah yes, brings back great memories. That would be the presentation by Alex Pena De Leon, we were in the same presentation session as far as I recall. Anyhow, the k-means clustering part of the project is further elaborated upon here by Daniel Davis.

Also, there's a nice illustration of the tile families on the architects website.

That´s right, Anders.

Thanks again!

Anders is right that what is shown in that video is the dual of an underlying triangular mesh, and that the cells are not all hexagonal. In fact, the hexagons are the relatively easy part, and if you want to stick with only hexagons then you don't need this kind of remeshing at all.

Just take a regular triangulation of your mesh and dualize it (there's also another slightly different MeshDual component here). Of course how 'nice' and even your hexagons are depends on the edge lengths of your triangular mesh, and you can relax these in various ways, but that's a separate issue.

If you are tiling a shape which is topologically equivalent to a rectangle or a torus then (ie it could be stretched into that shape without tearing or joining) then you can tile it with only hexagons, but if not (say a sphere) then you need some 'special' tiles (in the case of a sphere, 12 pentagonal tiles and all the rest hexagons would be one option).

That is also very interesting!

Cheers!

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service