Grasshopper

algorithmic modeling for Rhino

Here are some demo's of remeshing with Plankton combined with some relaxation functions from Kangaroo.

(Similar to what I described here:

 http://www.grasshopper3d.com/profiles/blogs/meshmash-dynamic-remeshing)

The first is a simple remeshing aiming for equal edge lengths, while the second also allows interpolation between multiple target lengths, and also optimizes for circle packing.

They require the latest version of Kangaroo to run.

Enjoy!

More explanations to follow soon

Daniel

Views: 66284

Attachments:

Replies to This Discussion

Yep, would be great! - The platform is so advanced in all other areas, its strange no one has developed this yet.

I have obtained tetrahedral meshing in Grasshopper, using a simple Python script to invoke the pre-compiled version of the classic Tetgen program:

http://www.grasshopper3d.com/forum/topics/idea-with-bone?commentId=...

Ah, yes this is really interesting Nik.

Do you have the python script and some basic instructions on how to implement this?

Many thanks !

The linked comment has a Grasshopper file included with the short Python script in it as well as a screen shot of that script. You must first install the Tetgen compiled binary .exe file/program and the link is in the script too, for that. You can run the .exe manually too using the Windows CMD console, and it Tetgen comes with a viewer too that I believe allows cutting plane views, despite Tetgen only outputting obscure custom file formats. They are simple enough that I could extract Grasshopper lines from them.

Thanks for the rundown Nik, I'll try and find some time to look into it.

More Tetgen parsing in Grasshopper Python here:

http://www.grasshopper3d.com/forum/topics/shortest-walk-tapered-bra...

Hi Andrew,

Sorry I missed this one before.

Working more with volumetric meshes is something I'm very interested in too. However, a big part of what makes MeshMachine work is the Plankton half-edge mesh data structure and its topology modification operators, which took me and Will a while to develop to its current level.

However, Plankton is a surface mesh library, and to do something similar for volumetric remeshing would require an equivalent volumetric mesh library. Writing such a library, or extending Plankton for this would probably be a fun, but big undertaking. I know there are such libraries out there already, but learning one well enough to do what you want would take some time too, coupled with the issue that most are C++, which makes developing it for GH a bit less straightforward than when you have something native C# like Plankton.

and I agree an OpenFoam link to GH would be very nice.

Hi Daniel,

Thanks for taking the time to update us on the possibility of this. 

If you say it's a 'big undertaking', then I can imagine it's probably incredibly complex indeed!

I hope you find enough time one day to figure it out, but in the meantime, thank you once again for your amazing tool set!

Cheers, Andrew

Dear Daniel,

I just found this post and these are all really interesting studies. And there is one question I would like to ask your favor. Initially, I would like to achieve exactly the same effect like you shown in this video. (like the image below)

The circles are fit to the boundary. I am wondering if it is possible for you to share some kind of the algorithms or codes that I can use as reference? By using the codes you shared before, only mesh itself can be fit to the boundary.

It will be really helpful if you could give me some hints. Thank you so much.

Ming

Hi Ming, did you ever manage to build something like this with Kangaroo and/or Plankton?

Daniel,

First off, want to say I really appreciate your work and am excited about the potential for re-meshing programs like yours. 

I have been working with these scripts for a couple weeks now, trying to create an image based packer. I was able to get this working in 2D, but having some trouble making it work smoothly in the 3rd dimension.

My goal is to circle pack on a dual-curvature surfaces, by re-mapping UV values from the surface to the domain of the image, and have the pixel values inform the L value in the re-meshing script. 

The problem I am having is that the mesh is deviating from the surface and vertices are overlapping each other, creating a nasty mesh.

Tweaking some of the parameters gives me varied results, none being close to optimal. I would really like to get it running with a fluidity similar to that of your mesh machine script, except with UV re-mapped, image sampled length values.

I have been doing my best to debug, but slowly learning to navigate C#. I would be in your debt for a couple pointers on how to make this thing work right.

Truly yours,

Perry

  

  

Attachments:

Hey Daniel! 
I find this script really interesting and I am trying to figure out the logic behind it. Could you maybe explain in steps what the algorithm created in remesh_planton_circles.gh does? In addition to that, is it a true delaunay mesh that is generated or is it another type of triangulation? Also, currently the edge length is used as a basis for either adding or substracting points for the circle packing algorithm (I think), is it possible to use the diameter of the generated circles instead of the edge length? I am asking this last question because the circle diameter is a closer approximation of the size of the Voronoi cell that can be generated (dualmesh) than the edge length of the triangulation. 

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service