Grasshopper

algorithmic modeling for Rhino

# reaction diffusion on triangular mesh

This is a vase modeled via Rhinoceros, meshed with quad with Rhino, re-meshed using Kangaroo in order to have triangular mesh. The mesh is re-meshed in the script in order to have enough triangles (400k). A classic reaction diffusion is applied on the mesh. The script is provided but beware it is quite long (10 min) because of Sandbox which is used  to get all neighbor vertex of each vertex.

Views: 33197

### Replies to This Discussion

Size of pattern

As Laplacian is not dependent of the size of the mesh, the size of the patterns is dependent on the size of the mesh and on the diffusion. Here is a rabbit with a diffusion of B from 0.4 to 0.1.

Yikes! .....my little super computer took: 17 min to see gh script in gh window, + 3 min to see geometry in Rhino, + 20 min to actually use  reaction_diffusion_vase.gh. = Total 40 min.

FYI: I scaled up the gyroid to vase size, and used the vase gh settings. see before and after pic
The new diffusion_gyroid.gh tool only 5 min.  Obviously geometry vertices matter.

Ouch, 14 minutes for Sandbox plugin Mesh Topo Vertex:

The C# script is mercifully short:

I don't understand yet:

(1) How it works to make a pattern, based on a mesh.

(2) How it's being thickened.

(1) Mainly reaction diffusion is calculated on square grid, in order to do this you just need to know concentration of A and B on the point but you also need to calculate Laplacian using derivative. On a grid it is easy to have neighbor of point(i,j). "he Laplacian is performed with a 3x3 convolution with center weight -1, adjacent neighbors .2, and diagonals .05.". On a mesh I use adjacent vertexes, with a weight of 1/(number of adjacent) and -1 for the center.

I think Ii is possible to put some direction on the pattern with a good modification of the weights.

Here a change in pattern with change along z of feed (dot "mitosis" on base, coral on top)

(2) Here it is not thickened, the mesh is closed.  I didn't test on opened mesh.

And you are right Sandbox is long, I didn't try to code it for the only purpose of calculating adjacent vertexes.

Is your original internalized Vase a mesh containing a single surface or does it have thickness applied to it ?

The parameters you show on the Bunny have a very small range of success, I will try other geometry, to see if I get better resolution, closer to your vase.

It is a single surface
I am not on my PC but I think the bunny has also a lot of vertexes. The size of pattern is dependant on chat
A single open surface or a single closed one with sculptural thickness?

Single closed surface, here a cut of the original and the Reaction-diffusion one (mesh colored).

Updated version without Sandbox, a little C# to do the job, faster !!! 6s instead of 14 min for the topology. 130 s in total.

KangaMark of my laptop = 118

Attachments:
Nice customer service around here!

I want to continue to play on that, it is interesting.  The long calculation time was also a problem for me! For Kim it was Hell.

(David Rutten single stroke font, cocoon applied and reaction-diffusion)

I was tempted not to try this again :) ......But I'm pleasantly surprised, as if you reached into my computer and removed all the slow bits.

Question: I've been trying to increase the range of Z which restricts the diffusion of the vase without success, since its dependent upon the initial scale of the imported mesh. I'm not an expert in GH, but could that range not be controlled by 2 max/min sliders, so it could cover the entire Z range of the geometry?

• View All