Terrain River Tool (Houdini + 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.
- 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.
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.
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.
Environmental Dressing
Procedural scatter logic placed rocks in the riverbed and along banks, sharing caching and tiled-cooking optimizations with the Terrain Scatter System.
Advanced Features
Waterfall Stepping automatically created waterfalls on steep height changes, while intersection logic supported splitting or merging rivers with natural blending.
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.