Pages

Sunday, 28 June 2015

Diffusion Limited Aggregation over 3D Surfaces


Here is a preview of the results from a DLA system created primarily with the Solver SOP.

What you can see is every tenth frame of the systems growth, what you don't see is the systems simulation frames. I created a method to only save .pc files as the current point became part of the growth system, omitting the points during their random walk towards the growth system.
Also it's not immediately obvious but the point in the growth system are actually moving over the convex surface.

There are a bunch of useful point and detail attributes created for the system, eg. creation frame, life etc.



Also here is a clip showing the simulation process, to get a nice formation it can take a long time. I do envisage that once some efficiencies are made and the system is turned into an asset, it could be tweaked to run faster. Although I guess, that's also the nature of sims.



If you'd like to find out more about the math and logic involved, my system is loosely based on the of Robert Walker.

2 comments:

  1. Could you please tell me more about how to do this in Houdini? Thank you!

    ReplyDelete
    Replies
    1. Hi Unknown

      The core of the DLA residues within a Solver Sop. Inside is quite a complex network and much of the core is done in vex.

      But basically it's 2 streams/groups of points
      1) DLA Cluster
      2) Emitter - Random Walkers

      Random walkers are emitted using a scatter and the emitter is created using a sphere which encompasses the DLA cluster + random padding, Cookie Sop extracts the intersection between the sphere and the underlying surface you choose to use. As for the walkers it's a random walk setup with a bias toward the DLA cluster center as well there is some vex to lookup the current prim and using the prim normals, move the point over the surface and stay on the surface without over shooting.
      Walkers either become part of the DLA cluster or they're destroyed(based on time limit or dist limit). Also the emitter geometry is dependant on the DLA cluster.

      One trick was working out how to move the walker point into the cluster group and remove it from the walker group at the hit event, basically a switch node and a null was the key.

      hope that helps.
      Thanks for your interest.

      Delete