{"id":470,"date":"2015-03-17T19:35:42","date_gmt":"2015-03-17T19:35:42","guid":{"rendered":"http:\/\/www.world-machine.com\/blog\/?p=470"},"modified":"2015-03-17T19:35:42","modified_gmt":"2015-03-17T19:35:42","slug":"rivers-2","status":"publish","type":"post","link":"https:\/\/www.world-machine.com\/blog\/2015\/03\/rivers-2\/","title":{"rendered":"Rivers"},"content":{"rendered":"<p>So, it&#8217;s definitely time to talk about the River device in the next dev version of WM.<\/p>\n<p>The river device is a major expansion of World Machine&#8217;s path tool, providing a huge amount of new flexibility in terms of creating &#8220;hero&#8221; rivers; that is, major rivers that should be under artist control, as opposed to those created by an automatic simulation-type process.<\/p>\n<p>The best way to describe the new river tool is &#8220;semi-automatic&#8221;. That is, you will draw in the essential path you want the river to take, much like you might currently do with the Layout Generator&#8217;s path tool&#8230;<\/p>\n<p>From there however, things become different.<\/p>\n<p>You&#8217;ll set some additional\u00a0\u00a0basic parameters associated with the river, for example the typical river channel width. The real power is in the river variation model; The river device accepts a\u00a0new datatype called a \u00a0&#8220;Geomorphic Covariance Structure&#8221;, or GCS, which is a description of how the river is shaped in different scenarios. These can be as simple or as complicated as you like; they are created by new devices and\/or macros that you or others create to describe river behavior.<\/p>\n<p>The hope is to ship WM with a collection of macros that allow you to plug-and-play GCSes, for archetypal rivers. For example, a lowland valley river vs a fast moving mountain stream.<\/p>\n<h2>Some River Geology<\/h2>\n<p>&nbsp;<\/p>\n<p>To describe what parameters are under the control of the GCS, we&#8217;ll have to cover the basic geologic features of a river valley. This includes things like:<\/p>\n<p><em>(All geology pictures below are wikimedia creative commons sourced)<\/em><\/p>\n<p><strong>Meanders<\/strong><\/p>\n<p>Meanders are an emergent behavior of the fluid dynamics of a river, causing the river&#8217;s path to oscillate back and forth across the general downstream direction.<\/p>\n<figure style=\"width: 640px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/5\/51\/Meander_in_River_Don_-_geograph.org.uk_-_1363451.jpg\" alt=\"\" width=\"640\" height=\"480\" \/><figcaption class=\"wp-caption-text\">A meandering stream<\/figcaption><\/figure>\n<p>From your\u00a0specified river path, meanders are added. These can be specified in all manner of realistic (and non-) ways. Although the model is deterministic rather than simulating hydrodynamics, it does an admirable job of recreating river meanders.<\/p>\n<p><strong>Thalweg Behavior<\/strong><\/p>\n<p>The thalweg of a river is the deepest part of the channel. Our river model captures the repetitive pool and rapids\u00a0behavior of a river as well as the lateral movement of the thalweg back and forth across the channel due to meander bends of the river.<\/p>\n<figure style=\"width: 601px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"http:\/\/courses.missouristate.edu\/emantei\/creative\/WeathStrem\/meander.jpg\" alt=\"\" width=\"601\" height=\"292\" \/><figcaption class=\"wp-caption-text\">Cutbanks and point bars<\/figcaption><\/figure>\n<p>This includes cut-banks (eroded areas on the outer sweep of a meander), slip-off slopes (shallow areas of deposition at the inside of the river bend), and point bars.<\/p>\n<p><strong>River Width<\/strong><\/p>\n<p>Although you specify the average river width as part of the creation process, the GCS will vary the width of the river in a pattern relative to the meanders and thalweg.<\/p>\n<p>This is very important, as wide\/narrow points of the river are often strongly correlated with deep or shallow areas of the river.<\/p>\n<p><strong>Floodplain\/Valley Shape<\/strong><\/p>\n<p>Finally, the GCS can also describe oscillations of the valley walls relative to the meanders\/etc. Although the shape of the valley is more\u00a0influenced by factors not specifically\u00a0related to the river itself (such as hillslope erosion), including this in the GCS lets you correlate things like narrow points in the valley to the behavior of the river channel itself.<\/p>\n<p>&nbsp;<\/p>\n<p>So, that&#8217;s the geology primer, now let&#8217;s look at the actual implementation in World Machine!<\/p>\n<h2>The River Model<\/h2>\n<p>Here&#8217;s a quick walkthrough in pictures of the River Model in action:<\/p>\n<figure id=\"attachment_473\" aria-describedby=\"caption-attachment-473\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-473 size-full\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot.jpg\" alt=\"River-Snapshot\" width=\"800\" height=\"559\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot.jpg 800w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot-300x210.jpg 300w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><figcaption id=\"caption-attachment-473\" class=\"wp-caption-text\">A basic river and floodplain<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Above, you can see a basic straight channel with a simple but powerful River GCS applied; the river moderately meanders back and forth across the gently rising floodplain, with all of the other parameters (depth, width, riverbank cut, etc) all varying in concert to model a basic river.<\/p>\n<p>&nbsp;<\/p>\n<p>Here&#8217;s a slightly more complicated river that also includes a surrounding valley:<\/p>\n<figure id=\"attachment_472\" aria-describedby=\"caption-attachment-472\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-472 size-full\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot-3.jpg\" alt=\"River-Snapshot-3\" width=\"1024\" height=\"636\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot-3.jpg 1024w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/02\/River-Snapshot-3-300x186.jpg 300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-472\" class=\"wp-caption-text\">River, Floodplain, Valley walls<\/figcaption><\/figure>\n<p>The valley walls are included in this GCS; also, note that a distinct meander belt is present at the base of the floodplain (the shelf present near the river channel itself that, in reality, represents the area that the river continuously migrates within).<\/p>\n<p>&nbsp;<\/p>\n<p>Finally, unlike the last few images that feature the river by itself, here&#8217;s a more complete example that shows the river embedded within an actual terrain:<\/p>\n<p><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/03\/River-Textured.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-480\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/03\/River-Textured.jpg\" alt=\"Textured River Generator Example\" width=\"1024\" height=\"585\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/03\/River-Textured.jpg 1024w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2015\/03\/River-Textured-300x171.jpg 300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>This example uses a number of additional river model mask outputs useful for\u00a0texturing, including masks indicates where the channel, floodplains, and valley exist, as well as a depthmap that can be used to identify deep pools or shallow riffles. This example also includes\u00a0using the new sedimentation mask input of the erosion device to erode the terrain while preserving the river channel area itself.<\/p>\n<p>The last thing I&#8217;ll mention about this upcoming release is that\u00a0it represents a starting point; Hero rivers were the logical place to start this process, but I can certainly envision extensions to allow a &#8220;click to spawn a river from here&#8221; method within the Layout View, and perhaps even an eventual fully-automatic river mode that can turn the basic &#8220;river networks&#8221; created by flowmaps into fully detailed individual rivers. But that&#8217;s a post for another day.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, it&#8217;s definitely time to talk about the River device in the next dev version of WM. The river device is a major expansion of World Machine&#8217;s path tool, providing a huge amount of new flexibility in terms of creating &#8220;hero&#8221; rivers; that is, major rivers that should be under artist control, as opposed to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-470","post","type-post","status-publish","format-standard","hentry","category-world-machine-development-news"],"_links":{"self":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/comments?post=470"}],"version-history":[{"count":4,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/470\/revisions"}],"predecessor-version":[{"id":481,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/470\/revisions\/481"}],"wp:attachment":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/media?parent=470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/categories?post=470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/tags?post=470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}