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.

The goal was to let artists quickly create believable rivers, complete with meshes, shaders, and environmental dressing, while keeping every edit flexible and non-destructive.

Note: This project was developed for an un-announced product. The assets, images, and implementation details shown here are test files and development materials used during tool creation, not the final production version with real art assets.

Key Challenges

  • Natural Flow → Rivers needed to always flow downhill, regardless of the input spline shape. Natural Flow - River Path Following Terrain
  • Iteration Speed → Terrain deformation and mesh generation had to remain performant, with minimal data exchange between Houdini and Unreal.
  • Predictability & Non-Destructive Edits → Artists had to trust that edits would remain localized and reversible without damaging existing terrain work.
  • Integration with Gameplay & Art → The river mesh needed flowmaps for shaders, collision-accurate geometry, and space for scattering assets like rocks.
  • Scalability → The tool had to support long rivers across large landscapes without long cook times.
  • Flexibility → Required to support branching and intersections so rivers could split, merge, or change course.

Main Features

Artist-Controlled Splines

User-drawn splines defined river courses, while the tool automatically enforced downhill flow by deforming terrain and creating a guiding mesh that respected the landscape’s grade.

Artist-Controlled Splines in Unreal Engine

Houdini HDA Driven

Artists tuned bank profile, depth falloff, whitewater regions, and scatter toggles per spline inside a single HDA interface.

River Mesh, Flowmaps & Skirt Integration

Generated new river meshes with automatic flowmap generation for water shaders, and created a custom skirt mesh around river geometry to blend edges back into the original terrain. No visible gaps even across kilometer-long rivers.

River Mesh with Flowmaps and Skirt Integration

Terrain Integration

Non-destructive deformation ensured artists could refine rivers without losing terrain work. Heightfields exported in tiles and attribute pruning minimized Houdini ↔ Unreal data transfer, keeping performance predictable on large worlds.

Non-Destructive Terrain Integration

Environmental Dressing

Procedural scatter logic placed rocks in the riverbed and along banks, sharing caching and tiled-cooking optimizations with the Terrain Scatter System.

Procedural Environmental Dressing - Rocks and Bank Details

Advanced Features

Waterfall Stepping automatically created waterfalls on steep height changes, while intersection logic supported splitting or merging rivers with natural blending.

Advanced Features - Waterfalls and River Intersections

Results

A single artist could carve, populate, and refine kilometers of river systems in hours. The output was both visually convincing and gameplay-ready. Flowmaps, collision meshes, skirt blending, and scatter dressing all came from one tool. No visible seams between authored geometry and terrain. Level design could request layout changes mid-milestone without blocking the art team.

Final River System with Road Integration