About Terrain, Grading & Drainage·Terrain from contours, a survey or the map: read slope and drainage, test storms, grade with live cut/fill.

What Terrain, Grading & Drainage does

Bring terrain from an upload, any location on Earth, the Rhino document or the demo site. Flow mode reads where water runs and where it collects; Rainfall mode puts a design storm on the site and balances runoff against what ponds and what leaves; Grading mode lets you sculpt the ground and re-runs everything live, with cut and fill volumes as you go.

Input:
.asc / .xyz / .obj / .3dm / location / Rhino selection
Modes:
Flow · Rainfall · Grading
Output:
Flow lines, ponding sites, cut/fill, DXF / SVG / .3dm, PDF report (Pro)

How it works

Standard raster terrain hydrology, the same chain GIS packages use, with a water balance on top. Depressions are filled first with a tiny gradient so every cell has a way out, then flow is routed cell to cell and the filled-minus-original difference tells you where water can actually sit.

  • Priority-Flood depression filling with an ε gradient (Barnes et al. 2014), so every cell drains to the edge; NaN / NODATA cells are treated as boundaries.
  • D8 flow direction: each cell drains to the steepest of its eight neighbours. Flow accumulation and contributing area (m²) follow from that.
  • Depression inventory from filled − original: each ponding site gets a spill level, a storage volume and an area.
  • Rainfall mode is a water balance: SCS Curve Number runoff depth (USDA TR-55) per surface preset, routed by D8, then filled and spilled through the depressions in downstream order. The mass balance is shown: runoff = ponded + outflow.
  • Grading re-runs the whole chain on the edited terrain; cut / fill = Σ|Δz| · cell².
  • Contours are drawn from the original grid; slopes come from the filled grid — drawings show the ground you have, routing shows the ground water sees.

How to use it

  1. Bring terrain. Drop a .asc, .xyz, .obj or .3dm; load a location from real elevation tiles; pick the Rhino selection; or start with the demo.
  2. Pick a mode. Flow reads the land; Rainfall tests a storm; Grading regrades and re-runs.
  3. Read the legend. Amber = ridges, cyan = valleys. Toggle contours, accumulation and ponding sites on top.
  4. Test a storm. Set storm depth and surface type; read runoff, ponded and outflow against each other.
  5. Grade and re-check. Sculpt the ground; cut/fill volumes and flow update live.
  6. Export or bake. Export a DXF plan, SVG drawing, GeoJSON or Shapefile layers for GIS, CSV data or .3dm, or bake into the Rhino document. The PDF report is part of Pro.

Best used for

  • Finding where water wants to go across a site before fixing levels.
  • Locating the low points where a storm will actually pond, and how much they hold.
  • Testing whether a proposed regrade moves a ponding problem or solves it.
  • Putting a number on earthworks while you are still sketching levels.
  • Reading a site catchment structure — ridges, valleys, basins — from a DEM you already have.

Not a substitute for

  • Drainage design, pipe or culvert sizing.
  • Flood-risk assessment or any regulatory submission.
  • Anything that needs a hydraulic model — roughness, time-stepping, infiltration dynamics.

Known limits

  • D8 forces all flow from a cell into one of eight directions, so it exaggerates channelisation on gentle, broad slopes.
  • The result is only as good as the DEM: resolution, vertical accuracy and vintage all propagate straight through, whether uploaded or fetched from elevation tiles.
  • No time-stepping: the storm is one runoff depth, not a hydrograph. Infiltration is only the Curve Number abstraction, not soil dynamics.
  • Pipes, culverts, drains and anything buried are invisible; the terrain is treated as the only path.
  • Filling adds an ε gradient so water always leaves; a ponding site is where the filled grid rose above the original, not a surveyed pond.
  • A design-stage reading, not a hydraulic model or a regulatory flood study.

Read the full Terrain, Grading & Drainage guide →