algorithmic modeling for Rhino

Differential growth in Grasshopper

The definition and code is in the comments bellow.

This is related to this thread:

Views: 1440


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by nardo chai on July 19, 2015 at 8:54pm

Hi Vicente,  Love the torus with  noise field scaling down. How did you achieved it? Great work!!

Comment by Pieter Segeren on July 18, 2015 at 2:38pm

Now I finally got around to play a bit with your definition I have to say: Awesome!!! Looks crazy cool too. Amazing work Vicente.

Comment by Daniel González Abalde on July 17, 2015 at 5:21am

De lo mejor que he visto en mucho tiempo por el foro, maravilloso !

Gracias por compartir, me voy a entretener mucho con el código ~:)

Comment by Vicente Soler on July 17, 2015 at 5:00am

With noise field scaling down over time. For now all the abominations I've grown have begged me to shoot them.

Comment by Vicente Soler on July 16, 2015 at 8:44am
Comment by Vicente Soler on July 16, 2015 at 8:39am

Nick: The color is a gradient that paints yellow the newest vertices and orange the oldest. This was to see which edges are splitting but it doesn't look very good.

Giulio: Thanks, ill try compiling it if I continue playing with this. I haven't really had time to test anything, as soon as it sort of worked I posted it.

Things that are easy to play with is changing the Grow() method. In this animation the rate of growth is related to the position of the edges in a simplex noise field. It looks disgusting but with some care I'm sure some rules can be found that look nice.

Comment by Nick Tyrer on July 16, 2015 at 7:08am

Vicente, great work! What the colour generation logic?

Comment by Giulio Piacentino on July 16, 2015 at 3:13am

This is really cool Vicente!

Regarding speed, I am wondering if you tried putting that code into a compiled component. Especially passing large structs should be relatively faster there. For example, the BoxSphereIntersection method that is fed a Box and a Point3d and several property accesses might be inlined by the compiler.

That is because with the compiler you can compile in Release mode. Maybe David will add that possibility in the future in GH, but for now in order to help debugging (mostly line numbers) we have make up without optimizations in Grasshopper.

Comment by Vicente Soler on July 15, 2015 at 4:48pm

After a few more iterations, even after sectioning it you can't tell it was a torus.

Comment by Vicente Soler on July 15, 2015 at 3:44pm

It should work with any triangulated manifold mesh. All faces should be triangles, the mesh must be closed, and all edges should share only two faces.

There are two inputs that are scale dependent, the 'radius' and 'growth factor'.

In this image I triangulated a doughnut using Daniel Piker's MeshMachine component so that all edges are roughly the same size, then I set the radius input as the largest edge length and the growth input as a small percentage of that.




© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service