Jump to content

Diffusion-limited Aggregation


ihab

Recommended Posts

Hi

I'm trying to simulate Diffusion-Limited Aggregation inside houdini. There's a couple of weblinks discussing what DLA is but i'll explain it briefly. The system works like that:

there's a nucleus at the core of the system consisting of a single particle. This particle attracts stray particles moving around it. If a particle hits the nucleus it sticks to it and they both act as a new nucleus. the process continues and the structure starts to grow creating a fractal pattern.

I tried to simulate the effect in pops but i ran into a problem.

the nucleus (particle) should be a collision object to another particle system(the stray particles). Any particle that hits the nucleus should stick to it and they both should act as a collision object.

Now there seems to be a loop going around that i can't get my head around. How can i update the collision geometry while the simulation is running.

should i use dops instead? the problem is that this system should grow to include millions of particles.

thanks in advance.

http://local.wasp.uwa.edu.au/~pbourke/fractals/dla3d/

http://classes.yale.edu/fractals/Panorama/...cs/DLA/DLA.html

Link to comment
Share on other sites

I'm pretty sure you're not going to be able to do this in pops unless you write something in the HDK. DOPs could work but it will be slow... although I've never tried it, so I'm not sure how slow it would be. Seems like it would be doable though.

M

Link to comment
Share on other sites

I did that kinda thing in Maya, and I assume it would work similarly in Houdini.

1 - create particles with fields on each of them

2 - the fields have a limited size

3 - emit another set of particles

4 - rule: once a particle "touches" the field it stops moving,

5 - replace that 2nd particle type with the 1st type

-

This can be optimized by killing the still particles, or removing them from the coputation somehow. Maybe create a polygon between each particle when it stops and the closest poly point, that way you can have the field be based on the polygon's points.

It gets really slow after a while.

Key: do it with two or more sets of particles/points, don't try to di it all in one particle system.

Link to comment
Share on other sites

thanks guys,

kleer001; I think your method is doable in houdini, i'll give it a shot.

edward: I think i'll use a proximity pop alright but i don't need to kill particles that are too close, in fact i need to freez thier motion and add them to the nuclues group.

one simple question though, how do i stop the particles from moving. should i add a drag pop with a very high value that affects the particles in the nucleus group? or is there another way of doing this?

thanks again

Link to comment
Share on other sites

one simple question though, how do i stop the particles from moving. should i add a drag pop with a very high value that affects the particles in the nucleus group? or is there another way of doing this?

Don't slow them, kill them then swap them out in the same position with another completely different particle that's not moving, or swap them out with another piece of your collision/field.

:rolleyes:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...