{"id":409,"date":"2014-04-10T23:08:45","date_gmt":"2014-04-10T23:08:45","guid":{"rendered":"http:\/\/www.world-machine.com\/blog\/?p=409"},"modified":"2014-04-11T00:22:36","modified_gmt":"2014-04-11T00:22:36","slug":"the-mimic-device","status":"publish","type":"post","link":"https:\/\/www.world-machine.com\/blog\/2014\/04\/the-mimic-device\/","title":{"rendered":"The Mimic Device"},"content":{"rendered":"<p>Time for a sneak peek at another new WM 2.9 device: The Mimic Device.<\/p>\n<p>This has been in R&amp;D stasis for at least the last six months; I finally got a chance to finish it up this week, and I am confident in its polish level enough to slate it for inclusion in this upcoming dev channel release.<\/p>\n<h1>What is the Mimic Device?<\/h1>\n<p>The Mimic device allows you to <strong>reshape a terrain<\/strong> to <strong>mimic the elevation profile curve<\/strong>\u00a0of a model reference terrain.<\/p>\n<p>What does that mean? A few images might make it more clear. Let&#8217;s say we have a basic perlin noise terrain:<\/p>\n<figure id=\"attachment_428\" aria-describedby=\"caption-attachment-428\" style=\"width: 915px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic11.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-428\" alt=\"Basic Perlin terrain\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic11.jpg\" width=\"915\" height=\"594\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic11.jpg 915w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic11-300x194.jpg 300w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/a><figcaption id=\"caption-attachment-428\" class=\"wp-caption-text\">Basic Perlin terrain<\/figcaption><\/figure>\n<p>And we have another terrain as a model. (<strong>Edit: I&#8217;ve updated this example to be more obvious!)<\/strong><\/p>\n<figure id=\"attachment_429\" aria-describedby=\"caption-attachment-429\" style=\"width: 907px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-429\" alt=\"Highly modified Perlin Noise that we want to match\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic21.jpg\" width=\"907\" height=\"608\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic21.jpg 907w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic21-300x201.jpg 300w\" sizes=\"auto, (max-width: 907px) 100vw, 907px\" \/><\/a><figcaption id=\"caption-attachment-429\" class=\"wp-caption-text\">Highly modified Perlin Noise that we want to match<\/figcaption><\/figure>\n<p>Quite different from basic Perlin Noise! Nonetheless, the mimic device transforms the input terrain shown in the first image using the above as a reference&#8230; into this:<\/p>\n<figure id=\"attachment_430\" aria-describedby=\"caption-attachment-430\" style=\"width: 942px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-430\" alt=\"Mimic Output\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic31.jpg\" width=\"942\" height=\"606\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic31.jpg 942w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic31-300x192.jpg 300w\" sizes=\"auto, (max-width: 942px) 100vw, 942px\" \/><\/a><figcaption id=\"caption-attachment-430\" class=\"wp-caption-text\">Mimic Output<\/figcaption><\/figure>\n<p>You can see that it follows the same general shape as the original input, but it matches the elevation range, and more importantly, matches the elevation profile of the model input! Note that the Mimic device <em>cannot<\/em>\u00a0introduce detail that wasn&#8217;t there to start with &#8211;But it does make what is there look the same.<\/p>\n<p>Here&#8217;s another example. Let&#8217;s say our model terrain was terraced (in this case, by adding a Terrace device to a Voronoi:<\/p>\n<p><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-415\" alt=\"mimic6\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic6.jpg\" width=\"541\" height=\"320\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic6.jpg 541w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic6-300x177.jpg 300w\" sizes=\"auto, (max-width: 541px) 100vw, 541px\" \/><\/a><\/p>\n<p><span style=\"line-height: 1.5;\">The terraced voronoi looks like this:<\/span><\/p>\n<p><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-413\" alt=\"mimic4\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic4.jpg\" width=\"1051\" height=\"594\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic4.jpg 1051w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic4-300x169.jpg 300w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic4-1024x578.jpg 1024w\" sizes=\"auto, (max-width: 1051px) 100vw, 1051px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>While the input terrain looks like this:<\/p>\n<p><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-412\" alt=\"mimic1\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic1.jpg\" width=\"820\" height=\"577\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic1.jpg 820w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic1-300x211.jpg 300w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/p>\n<p>And sure enough, the terraces are replicated on the mimic!<\/p>\n<p><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-414\" alt=\"mimic5\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic5.jpg\" width=\"1029\" height=\"543\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic5.jpg 1029w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic5-300x158.jpg 300w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic5-1024x540.jpg 1024w\" sizes=\"auto, (max-width: 1029px) 100vw, 1029px\" \/><\/a><\/p>\n<p>Hopefully you can start to see how how powerful this ability could be&#8230;<\/p>\n<p>The immediate use cases that I developed the device for include:<\/p>\n<ul>\n<li><strong>Matching disparate terrain types together<\/strong> so that they \u00a0&#8220;fit&#8221; and transition to each other better.<\/li>\n<li><strong>Shaping terrain by exemplar<\/strong> (For example, provide a reference terrain from a DEM that has the kind of elevation profile character you want).<\/li>\n<li>Making changes and modifications to an existing terrain that have to <strong>fit its characteristic shape<\/strong>.<\/li>\n<\/ul>\n<p>An interesting side effect of the Mimic is that it can actually be used to &#8220;erase&#8221; changes made to a source terrain, as long as those changes don&#8217;t reverse the profile curve of the terrain. For example: In the above example world, if we moved the terrace device from the Voronoi chain to the Perlin Noise chain, \u00a0we could take that resulting terraced perlin noise input and actually remove the terraces from it by using the smooth-sided terrain as a mimic reference!<\/p>\n<figure id=\"attachment_418\" aria-describedby=\"caption-attachment-418\" style=\"width: 531px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-418\" alt=\"Removing Terraces Example\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic9.jpg\" width=\"531\" height=\"331\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic9.jpg 531w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic9-300x187.jpg 300w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/a><figcaption id=\"caption-attachment-418\" class=\"wp-caption-text\">Removing Terraces Example<\/figcaption><\/figure>\n<figure id=\"attachment_417\" aria-describedby=\"caption-attachment-417\" style=\"width: 1053px\" class=\"wp-caption aligncenter\"><a style=\"color: #41a62a; outline: #000000;\" href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-417\" alt=\"mimic7\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic7.jpg\" width=\"1053\" height=\"614\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic7.jpg 1053w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic7-300x174.jpg 300w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic7-1024x597.jpg 1024w\" sizes=\"auto, (max-width: 1053px) 100vw, 1053px\" \/><\/a><figcaption id=\"caption-attachment-417\" class=\"wp-caption-text\">The input terrain to the Mimic<\/figcaption><\/figure>\n<figure id=\"attachment_416\" aria-describedby=\"caption-attachment-416\" style=\"width: 1062px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-416\" alt=\"mimic8\" src=\"http:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic8.jpg\" width=\"1062\" height=\"570\" srcset=\"https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic8.jpg 1062w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic8-300x161.jpg 300w, https:\/\/www.world-machine.com\/blog\/wp-content\/uploads\/2014\/04\/mimic8-1024x549.jpg 1024w\" sizes=\"auto, (max-width: 1062px) 100vw, 1062px\" \/><\/a><figcaption id=\"caption-attachment-416\" class=\"wp-caption-text\">The output of the mimic: We&#8217;ve erased the terraces!<\/figcaption><\/figure>\n<p>This surprising power works because the Terrace device doesn&#8217;t create completely flat ledges, and so can be reversed. If that was not the case (for example, if you were trying to reverse the terraces from an 8bit input file) then the Mimic would not be effective as-is &#8212; you would have to blur the input terrain first.<\/p>\n<p><span style=\"line-height: 1.5;\">Of course, nothing is perfect. What can&#8217;t the Mimic do?<\/span><\/p>\n<ul>\n<li>The mimic device cannot replace or insert surface detail. For example, providing an eroded model reference will not introduce erosion gullies to the target terrain.<\/li>\n<li>The mimic device doesn&#8217;t play especially well with Tiled Builds. It will be flagged as such in the UI (with a !). With high blending percentages it should be acceptable however.<\/li>\n<\/ul>\n<p>Balanced against those relatively few caveats, however, is a lot of utility.<\/p>\n<p>Excited?<\/p>\n<p>I am.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Time for a sneak peek at another new WM 2.9 device: The Mimic Device. This has been in R&amp;D stasis for at least the last six months; I finally got a chance to finish it up this week, and I am confident in its polish level enough to slate it for inclusion in this upcoming [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":414,"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-409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-world-machine-development-news"],"_links":{"self":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/409","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=409"}],"version-history":[{"count":10,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":431,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions\/431"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/media\/414"}],"wp:attachment":[{"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.world-machine.com\/blog\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}