DLA

Summary

DLA (Diffusion-Limited Aggregation) is a GPU-accelerated simulation that creates organic branching structures by simulating particles randomly walking through space until they attach to an existing structure. Generates coral-like, lightning, or crystalline growth patterns through a simple attachment rule: particles stick when they come within a specified distance of the growing structure.

The simulation progresses by spawning particles at random positions within simulation bounds and allowing them to diffuse until they encounter the structure. You control the density and character of the branching through parameters like search distance (how far particles look for attachment points) and attach distance (how close they must be to stick). The simulation can be initialized, played continuously, or stepped frame-by-frame for precise control over growth progression.

DLA outputs the point cloud structure and optionally generates polygonal meshes through marching cubes or volumetric representations for rendering. The Outputs page provides extensive control over voxel grid resolution, blur filtering, and volume density for different visualization styles. This makes DLA suitable for creating natural growth patterns, procedural coral structures, electrical discharge effects, or abstract organic forms.

Parameters

Page: DLA

Simulation Bounds Simbounds Size of the cubic space where particles spawn and diffuse.
Simulation Bounds Simboundsx
Simulation Bounds Simboundsy
Simulation Bounds Simboundsz
Time Step Timestep Controls simulation speed per frame (higher values = faster growth).
Max Number of Points Maxpoints Maximum number of diffusing particles in the simulation.
Max Search Distance Maxsearchdist Maximum distance particles search for attachment points (affects branch density).
Attach Distance Attachdist Distance threshold for particles to stick to the structure (smaller = finer detail).
Seed Seed Random seed for particle spawn positions and diffusion paths.
Initialize Initializepulse Pulse to reset simulation and create initial seed point.
Start Startpulse Pulse to begin simulation from initialized state.
Play Play Toggle continuous simulation playback.
Step Steppulse Pulse to advance simulation by one frame while paused.

Page: Outputs

Mesh Mesh Header for mesh output settings.
Polygonize Polygonize Converts point cloud to polygonal mesh using marching cubes algorithm.
Voxel Grid Resolution Gridres Voxel grid resolution for mesh generation (higher = more detail, slower).
Enable Blur Enableblur Applies smoothing filter to mesh before polygonization.
Type Type Blur filter type.
Catmull-Rom catmull
Gaussian gaussian
Box box
Bartlette bartlette
Sinc sinc
Hanning hanning
Blackman blackman
Pre-Shrink Preshrink Downsamples volume before blur for performance (1 = no downsample).
Filter Size Size Blur kernel size (larger = smoother, more computation).
Threshold Threshold Isosurface threshold for mesh extraction (lower = thicker mesh).
Extend Extend How to handle volume edges.
Zero zero
Hold hold
Repeat repeat
Mirror mirror
Shared Points Sharedpoints Welds duplicate vertices for cleaner topology.
Alt Alt Alternative point sharing algorithm.
Volume Volumeh Header for volumetric output settings.
Volume Volume Generates volumetric TOP output for rendering with volume materials.
Max Axis Resolution Maxaxisres Maximum resolution along the longest axis of the volume texture.
Color Color Base color for volume rendering.
Color Colorr
Color Colorg
Color Colorb
Density Scale Densityscale Multiplier for volume opacity (higher = more opaque).
Enable Blur Enablevolblur Applies smoothing filter to volume texture.
Type Volblurtype Blur filter type for volume.
Catmull-Rom catmull
Gaussian gaussian
Box box
Bartlette bartlette
Sinc sinc
Hanning hanning
Blackman blackman
Extend Volblurextend Edge handling mode for volume blur.
Hold hold
Repeat repeat
Mirror mirror
Pre-Shrink Volblurpreshrink Resolution reduction before applying blur for performance optimization.
Filter Size Volblursize Size of the blur filter kernel.

Page: Common

Free Extra GPU Memory Freeextragpumem Free memory that has accumulated when output memory has grown and shrunk.

Inputs

Input 0 POP Seed

Outputs

Output 0 POP Points
Output 1 POP Mesh
Output 2 TOP Volume