Skip to main content

Terrain River Tool (Houdini + Unreal Engine)

Tools: Houdini, Houdini Engine, Unreal Engine

I built a Houdini Digital Asset for carving river systems into landscapes, running inside Unreal Engine via Houdini Engine.

I wanted artists to be able to make believable rivers quickly, with meshes, shaders, and dressing included, and to keep every edit non-destructive.

Note: I built this for an unannounced product. Everything shown here is test content and development material from building the tool, not the final production version or its real art.

Challenges

  • Rivers always had to flow downhill, whatever shape the artist drew. Natural Flow - River Path Following Terrain
  • Terrain deformation and mesh generation had to stay fast, with as little data passing between Houdini and Unreal as possible.
  • Artists needed to trust that edits stayed local and reversible and wouldn’t damage existing terrain work.
  • The river mesh needed flowmaps for shaders, accurate collision, and room to scatter assets like rocks.
  • Long rivers across large landscapes couldn’t mean long cook times.
  • Rivers had to branch and intersect so they could split, merge, or change course.

Features

Artist-drawn splines

Artists drew splines to set the river’s course. The tool kept the water flowing downhill by deforming the terrain and building a guide mesh that follows the landscape’s grade.

Artist-Controlled Splines in Unreal Engine

One HDA interface

Artists tuned the bank profile, depth falloff, whitewater regions, and scatter toggles per spline, all from one HDA interface.

River mesh, flowmaps, and skirt

The tool generated river meshes with flowmaps for the water shaders, plus a skirt mesh around the river to blend its edges back into the original terrain. There were no visible gaps, even on kilometer-long rivers.

River Mesh with Flowmaps and Skirt Integration

Terrain integration

Deformation was non-destructive, so artists could refine rivers without losing terrain work. Heightfields exported in tiles and unused attributes were pruned, which kept Houdini ↔ Unreal transfers small and performance predictable on large worlds.

Non-Destructive Terrain Integration

Dressing

Procedural scatter placed rocks in the riverbed and along the banks, using the same caching and tiled cooking as the Terrain Scatter System.

Procedural Environmental Dressing - Rocks and Bank Details

Waterfalls and intersections

The tool added waterfalls automatically on steep drops, and intersection logic let rivers split or merge and blend naturally.

Advanced Features - Waterfalls and River Intersections

Results

One artist could carve, dress, and refine kilometers of river in hours, and the result looked right and was ready for gameplay. Flowmaps, collision meshes, skirt blending, and scatter all came from one tool, with no visible seams between the river geometry and the terrain. Level design could ask for layout changes mid-milestone without holding up the art team.

Final River System with Road Integration