June 23rd, 2024

Diffusion Limited Aggregation (1991)

Diffusion Limited Aggregation (DLA) models random particle movement, creating intricate structures like coral growth. 2D to 3D extension allows complex models resembling natural phenomena. Software available for Mac OS-X enables high-quality rendering.

Read original articleLink Icon
Diffusion Limited Aggregation (1991)

Diffusion Limited Aggregation (DLA) is a model describing the random movement and aggregation of particles, such as zinc ions in electrolytic solutions. This process leads to the formation of intricate structures resembling natural phenomena like coral growth or lightning paths. Initially studied in 2D, DLA has been extended to 3D, allowing for the creation of complex models like root systems. The growth process involves particles randomly moving until they adhere to existing structures. Various attractor geometries, such as points, lines, and boxes, can be simulated by introducing new particles that stick to the structure. Parameters like stickiness and branch thickness influence the final structure's density and appearance. The software for simulating DLA structures in 3D is available for Mac OS-X, enabling users to apply constraint surfaces and save the structures for high-quality rendering. DLA's applications range from artistic renderings to scientific simulations, showcasing its versatility in generating intricate and realistic structures.

Link Icon 1 comments
By @bun_terminator - 5 months
DLAs were my "breakthrough" in college. Where I could first apply my self-learned c++ chops to code some fast DLA number crunching including a real-time OpenGL visualization. Professors were happy to pay me money for code from there on, which in hindsight kickstarted my career.

DLAs have some interesting properties but aren't really important in the grand scheme of things. They also can't be parallelized (or it's really hard). And the quality of the results highly depends on the quality of the RNG. It's also an interesting problem to quickly appreciate memory-boundness as a performance bottleneck. In general it's a good problem for a beginner to think about performance and how to approach optimization as the general logic is almost trivial.

Back then I also wrote a web-based 3D DLA simulation with a threejs visualization. But as so often is the fate of web-apps: This no longer runs today. Something about a used dependency (highcharts) being blocked.

Fun memories, together with the equally cherished Ising model. Seeing these patterns still puts a smile on my face. Btw they can be made to look nicer if you simulate a larger lattice and sample it down to a smaller resolution to emulate anti-aliasing.