2D/3D Diffusion Limited Aggregation
Class | Instructor | Date | Language | Ta'ed | Code |
---|---|---|---|---|---|
CS 7492 Simulation of Biological Systems | Greg Turk | Spring 2015 | GLSL/Java/Processing | No | Github Repo |
DLA uses random walks to simulate shattering/lightning-type trajectories. I sped my DLA algorithm up substantially by not limiting myself to a single random walker at a time but rather having a herd of random walkers, and throwing out all but 1 that are within a square of landing on the underlying substrate. By rendering this in 3D I could build a cool voxel-based snowflake shape reminiscient (to me at least) of the "crystaline entity" from the first episode of Star Trek TNG. I tried rendering this using Marching Cubes too, and it ended up looking sort alike termite tunnels.
Part of the assignment was to implement a second method (DBM) that was intended to be faster than the base DLA method, but this was predicated on a single random walker at a time, which was ultimately shown to be unnecessarily restrictive of the DLA Algorithm. The standard DLA algorithm with multiple pruned walkers proved to be much faster than the DBM method.
Below are some videos of the system in action (with links if the videos don't play automatically) :
DLA algorithm with multiple walkers. |
DLA algorithm with multiple walkers (shown). |
DLA algorithm with multiple walkers (shown) 2. |
3D Multi-threaded DLA algorithm with multiple voxel walkers. |