*(Using Blender 3.6.5)*

#### Objective ####
To model the water surface of a stream flowing downhill.
[![Results][1]][1]

#### Approach ####

Extrude a Bezier curve following the bottom of the stream, after a slight vertical shift, to generate a surface larger than the valley. 

#### Procedure ####

##### Step 1: Visualise the slope #####
[![Shading][2]][2]
<b>1. </b>In the <i>Shader Editor</i>:<br>
<b>1.1. </b>The vertical coordinate Z of the landscape is recovered by combining <i>Texture Coordinate</i> and <i>Separate XYZ</i> nodes.<br>
<b>1.2. </b>Z is input in a <i>Wave Texture</i> node which <i>Scale</i> parameter is adjusted to sample the valley of interest.<br>
<b>1.3. </b>The result is iso-elevation contour lines.<br>

##### Step 2: Draw the curve following the valley #####
[![Bezier curve first edition][3]][3]
<b>2.</b> In <i>Edit Mode/Top view</i>:<br>
<b>2.1.</b> Add a <i>Curve/Bezier</i> object above the landscape.<br>
<b>2.2.</b> Add more control points above the landscape also. Move these in (X,Y) directions and adjust tangents to follow the valley floor, using the contours as guideline.<br>
<b>2.3.</b> To put these control points on the landscape mesh, add a <i>Shrinkwrap</i> modifier. Set <i>Wrap Method</i> to <i>Project</i> along <i>Negative Z Axis</i>. Select the landscape as <i>Target</i>. <b>Check the <i>Apply on Spline</i> icon to project the control points rather than the curve</b>.<br>
<b>2.4.</b> Duplicate this Bezier curve (to keep a copy before destructive actions) and <i>Apply</i> the modifier to the copy. 

##### Step 3: Extrude the duplicated curve to model water surface #####
[![Edit copy][4]][4]
<b>3.</b> In <i>Edit Mode</i>:<br>
*(to be continued)*

#### Resources ####
[<img src="https://blend-exchange.com/embedImage.png?bid=4RrEDQMd" />](https://blend-exchange.com/b/4RrEDQMd/)

  [1]: https://i.sstatic.net/qwWz7.jpg
  [2]: https://i.sstatic.net/MP6J9.jpg
  [3]: https://i.sstatic.net/SNnBg.jpg
  [4]: https://i.sstatic.net/NXJui.jpg