Reaction diffusion simulation on surface based on Gray Scott model not working

Hi. I’ve been trying to simulate a RD system based off the original script by @laurent_delrieu from a few years ago From here but it doesn’t seem to work correctly when I attempt to use a negative multiplier to produce the pattern on the mesh (mesh just produces glitches).
I’m doubtful that rewriting this in python will be much better for performance (too much overhead?) but if I can get this working enough to see the effects visually, I’ll rewrite the script this week.
I’ve also looked into going thr GPU accelerated route but that’s not very easy for me since my laptop doesn’t have a good GPU. Does anyone have any ideas or an updated version of the same script that I could try? Thank you!

Hello
You don’t give enough informations, for me it still works. Can you upload a script with the number that fails ?

Hello
Sorry about that. I’m on my PC now, so here are the details.
The script and 3dm file are attached (reaction_diffusion_vase_v2 copy.gh and .3dm). As you can see, the script does not generate a engraved mesh with these values

I also try the v3 script, but it didn’t seem to be able to restrict growth along z axis, hence using v2 for now). Am I doing something wrong? Do you have a alternative script version I should prefer? Thanks!

reaction_diffusion_vase_v2 copy.3dm (4.1 MB)
reaction_diffusion_vase_v2 copy.gh (25.6 KB)

Hello,
I will look at the files tonight. But in order to work there are some important things
You must have near equilateral mesh. You must remedy using MeshMachineStatic, remesh or instantMeshes tool. I didn’t implement weighted cotangent.
The size of the pattern depend on the size of the mesh. This is the reason I use subdivide component.

Hi, thank you for the reply. I also will attach my other version that I was trying out here. As you can see, when mesh displacement is positive, the results seem to work, but I am unable to get engraving:

I will look at remeshing it further now.
The files for this form are also attached here.
Thank you for your time.

v2.3dm (3.9 MB)
v2.gh (32.7 KB)

Hello
I think you need to learn some basis.
If you don’t see engraving it is because mesh from Grasshopper is under the Rhino Mesh, you must HIDE all geometry you don’t want to see. Hide in Rhino and hide in Grasshopper Right click on component then click on Preview.

Your mesh is also not nice because there is a seam. So I weld it, then unify the mesh to calculate normals then remesh it with Remesh from NGON plugin


This component seems to better work than the one from Kangaroo, very nice work @Petras1

here the script with internalized geometry
v2 LD.gh (44.7 KB)

4 Likes

Here what it can look like with one single mesh, remeshed here with Kangaroo (work better on closed mesh). With control of the engraving depending on Z and interior exterior



v3 LD.gh (3.8 MB)

3 Likes

Hi
Thank you a lot for the detailed reply. I have one question if is okay with you? I am unable to get the z axis growth restrict working. Am not sure if is my mistake, but it is not working. I must connect the result from the remapping function as the feed rate, correct?

Maybe I am not understand this correctly yet. Thank you again for your time

Surely a missing plugin

You could replace that with an equation if you want or an equation and graph mapper.
If(x<10,0,if(x>50,0,1))
put 0 under 10 and above 50. I let x as it is the name of the first variable of the equation component

1 Like

Yes! Thank you so much, it was the missing plugin causing all this issue. I actually did set a threshold equation earlier and pipe it into the mult but I think I cancelled because it was taking too long. Thank you very much ))

It’s very odd that rhino didn’t error or warn that there was a missing plugin …

It is not really a plugin as it add new curve in graph mapper. If no plugin the graph mapper must have no curve inside so it did nothing and generated an error.

Ah I see. Makes sense.
On another note, how were you able to achieve the deep flush engravings in your initial post (old grasshopper forum vase)? I can’t seem to get values correct to obtain similar outputs.

Surely it is more easy for me as I did 30 years ago 2 years of extensive mathematics, mandatory before engineer school! But all that is a matter of equations, look inside red ellipse


x is [0 1]
sin((x-0.5)*pi) is [-1 1]
(sin((x-0.5)*pi)+1)/2 is [0 1]
((sin((x-0.5)*pi)+1)/2)^2 is [0 1]This could be replaced by graph Mapper

1 Like

Merçi beaucoup Laurent … vous etes tres incroyable ))

1 Like