personal · fx / tools
Procedural erosion system
2026 — houdini, vex, hdk

A fully procedural terrain erosion solver built in VEX, simulating sediment transport across arbitrary heightfields. The system models rainfall accumulation, flow direction, and material deposition entirely on the GPU-friendly heightfield pipeline, with a custom HDA wrapping the whole thing for art-directable control.

HEIGHTFIELD_EROSION_v04
fig 1 — eroded heightfield profile after 200 simulation steps

approach

Erosion is computed in a solver SOP, iterating flow accumulation and sediment capacity per cell. The core math runs in VEX over the heightfield's volume primitive, while the HDA exposes rainfall rate, hardness, and deposition thresholds as simple sliders.

// simplified flow accumulation step float h = volumeindex(0, "height", ix, iy, 0); float flow = 0; for (int dx = -1; dx <= 1; dx++) { for (int dy = -1; dy <= 1; dy++) { if (dx == 0 && dy == 0) continue; float nh = volumeindex(0, "height", ix+dx, iy+dy, 0); if (nh > h) flow += (nh - h); } }

result

The final HDA produces convincing valley and ridge formations from arbitrary noise input, usable both for hero terrain and background set dressing.

heightfield vex hda