Directional Reaction-Diffusion on a Cactus

Directional Reaction-Diffusion on a cactus. The cactus shape is done using Cocoon from http://www.bespokegeometry.com/2015/07/22/cocoon/ 3 curves are used. A directional reaction diffusion is applied to the mesh. The script is based on http://www.grasshopper3d.com/forum/topics/reaction-diffusion-on-triangular-mesh

Load Previous Comments
  • ng5 Alex

    very nice! this could recreate the back of some mushrooms!

  • Daniel González Abalde

    Very good result, what method did you use to address so strong?

  • Laurent DELRIEU

    @Alex : surely it could be mushrooms. It also could be patterns on sand. 

    @Daniel : I wanted to recreate something like "reaction" from nervous. What I read said that diffusion was modified. So I modified Laplacian calculation depending on a direction. For each vertex of the mesh I calculate the difference between the value of concentration of this vertex from each of its neighbor. I do a multiplication on this difference depending on the angle between the edge and a vector placed on the vertex. If teta is the angle I do multiply :

    Math.Sqrt(Math.Sin(teta) * Math.Sin(teta) + _factor * _factor * Math.Cos(teta) * Math.Cos(teta)); 

    There is no change for teta = 90° and 270° and a multiplication of _factor for 0° and 180°. (if factor is 1 there is no change instead it is an ellipse).

    I then apply this modification (coeffs) uniquely on B species.

     dxB = dxB + coeffs[i_point, i_vv] * (B[_VV.Branch(i_point).ElementAt(i_vv)] - B[i_point]) / _VV.Branch(i_point).Count;

    So it is. Here I multiply by 5 and and put a diffusion B = 0.1. But if multiplied by 10, diffusion B = 0.05 ...

    I will post example on the forum.