Ideas on a specific workflow?

Hey everyone! Got a bit of an odd question related to workflow, and one that I haven’t been able to find an answer to elsewhere. I’ve been attempting to translate a hand drawn map of a fictional continent into a World Machine project. I have the land shape, and loose ideas of where I want mountains and the like, but I’m having issues getting that into World Machine, so I was wondering if anyone has any ideas for that? To help out, here’s a list of things that I’ve tried, and why they didn’t work:

  1. My first attempt was to just create a full b+w mask of the land area, with land being white and ocean being black, and apply that as a mask to an advanced perlin generator. This worked inland, but the coastal regions were steep cliffs that no amount of erosion or coastal erosion could fix, with the ocean being a flat 0m height. Another issue was getting mountains in the correct areas, and looking like they fit there, without half a dozen layout generator nodes (I’m using an almost 10 year old computer, and it really doesn’t like the layout generator).

  2. My second idea was to create a low steepness, billowy ocean floor advanced perlin node, then create a second noisier advanced perlin for the land areas, using a combiner set to Add, using the same image from the previous attempt as a mask. This had slightly better results as the ocean floor was no longer “flat” and at 0m, but it also had steep cliffs at the transitional area, and the height of the land areas began to warp in unexpected ways that made coastal erosion ineffective for creating realistic beach areas without putting half of the continent under water. It also suffered the same issues with the mountains that the previous attempt did.

  3. In an attempt to mitigate the sharp steep cliffs from the mask, I tried applying a gaussian blur to the mask before importing it into World Machine and attempting both of the previous methods again. While this helped, the difference in height between the land and sea areas of the mask still caused steeper slopes than I was comfortable with.

  4. Starting from very near to scratch, I made a full 30% grey image, and using an extremely low opacity brush in Photoshop, began to paint thin layers of white in the land area, with a smooth gradient to the 30% grey of the oceans, and thicker (brighter) white in the mountainous areas for a rough approximation of a heightmap. This yielded the best results so far, but even with a brush at 1% opacity, I was unable to achieve smooth enough transitions that the standard erosion didn’t behave…erratically. And while the mountainous areas were in the correct place, the transition to the lower elevation areas was still fairly stark and out of place, which further distorted erosion results. This method also suffered from the strange height transitions in the mainland area which made coastal erosion a nightmare to deal with.

  5. This attempt was a combination of all previous attempts, but it ended somewhat disastrously with a very nice looking scene that in no way resembled the continent I originally started with. It may become a future project, but it’s not right for this one.

It was after that last attempt that I realized I was pretty tapped for ideas on how to get this to work. Some other things that I tried, but didn’t make it far enough to consider them a real attempt was using the mask as a shape guide, and using the rough heightmap as a shape guide or persistence guide.

If anyone knows of a way to do this, or knows of any resources that could help, I am all ears! Thanks!

Starting with a new idea I had, I’m going to try just rendering out a bunch of different heightmaps from World Machine with features that I’m going for for the continent, them bringing them all into Photoshop and layering them, fading transitional areas with careful use of a low opacity, heavily feathered eraser. Will update with results when available.

Results were mixed. I could see the above being a valid option, but it would take more fine-tuning than my current lack of sleep allows for. I’ll be trying it again after some sleep, and also trying a variation on the method where I’ll get a single heightmap to approximately the shape I want, then export that, as well as a version of the same heightmap but with a bias/gain filter on it to accentuate the mountains, and try fading between the two. Again, will update with results when available.

Hi there,

Can you post some images of what result you’re getting / what you want?

There are a couple example worlds included with World Machine showing how to create continent/mountains/etc with layout generators. Take a look at Open Examples -> Techniques -> Larger Worlds -> Coastal Mountains for a simple but good example case.

Two layout generators are used, one to create the continent outlines and another to guide the placement of the mountain ranges.

It looks like this:


Is that any help?

That is definitely interesting and warrants a closer look once I get out of work, and should definitely help with getting the terrain to look right. The more pressing matter I’m facing, however, is trying to shape the actual outline of the continent without having overly harsh transitional zones. I apologize if this doesn’t quite upload correctly, I’m going to be attempting to upload some files from mobile using the Chrome desktop app, so I can’t promise it’ll work. I don’t have any of my previous attempts saved, so I just made a quick load input to show.

I’m attempting to use a mask like that to define where the coastline is, but cannot seem to get it to work in a workable manner. Ideally, I want the white area to be where the mainland is, with some predetermined mountains that I will probably use the layout generator trick for, though again, too many of those and my computer starts to slow down on me for some reason, and the black areas to be the seafloor, which I do want some form of noise added to, to have the possibility of sandbars and the like.

Let me know if I need to add more details/clarification, I’m writing this between orders, so it may be a bit disjointed.

Looking at the example files you suggested actually gave me an idea I’m excited to try! I’m going to convert my raster mask into a vector image, import that as a custom shape into a layout generator to gain access to both the fractal breakup and falloff settings, and go from there.

Editing this reply rather than flooding the thread with replies, importing a custom shape seems to work perfectly! Creating a mask from a selection creates a super high point density shape that really bogs down my system (almost a full minute to build the layout generator at 1024 resolution), so I’ll probably go in with a pen tool and manually create a much lower point density mask, while still retaining as much detail as I can.

Edit from several hours later: I’m having an odd issue where World Machine will see my svg as a path and not a filled shape sometimes. Not every time, and I can’t seem to nail down what I’m doing differently for the ones where it sees it as a shape and not a path. Any thoughts?

After working at this problem for several days, I seem to have possibly figured out the issue? I would definitely appreciate any thoughts on the matter, but am mostly updating with the solution I found because I know how frustrating it is to google a problem and find yourself on a forum post where the answer was never given.

I tried several different ways of tracing an outline for the landmass, and could not reliably recreate any issue. Sometimes the shape would show as a path, not a filled shape, other times the paths would import in crazy ways, it was quite frustrating. Reading through the documentation, there is a mention of “per vertex data” being lost. Not being super familiar with Illustrator, I wasn’t exactly sure what that was, so I created a base shape in World Machine and exported that to Illustrator to note any differences. It seems as if curve data is part of the mentioned per vertex data, and was thus being lost in the import? With this in mind, I made a basic shape in Illustrator using only linear paths, no curve handles even included, let alone used, and exported that. It seems to work perfectly, and also doesn’t suffer the same extended loading times as I was experiencing before. Since World Machine has a built-in smoothing feature for the paths, I’ve been sticking with linear paths and smoothing it in World Machine, and it appears to be a perfect solution for what I was trying to do!

Glad to hear you’re making progress!

If you have raster mask images that you can import, you can do things very similar to the fractal breakup and falloff with a device network. For example, I would probably blur the mask or use an Expander to get a falloff zone; you can then use a simple displacement device to breakup the straight-line falloff profile.

I did try that earlier on in the process, and while the results were good, they distorted my original coastline a little too much. I could probably go back in and use combiners or masks to refine it a bit, but the vector route, once I’d figured out a process, seemed to be the fastest way to get the results I was looking for.

To be completely fair, what I’m attempting is probably a super specific use-case scenario. The current project I’m working on is making an atlas/satellite imaging style map from a hand drawn map I made for a Dungeons and Dragons campaign I run. The original map is kinda Tolkein-esque, and that’s what I gave to my players, but for my own records (and just for fun), I wanted to use World Machine to make a “real world” map of the continent (and eventually the world). As such, I’m trying to avoid any processes that make major changes to the coastline/major land features to keep the realistic map and fantasy-style map as similar to each other as possible. Minor changes could be explained away in-game as cartographic errors, but major landscape incongruities would be harder to explain.

All that being said, while frustrating, this has been an incredibly fun project, and is leading to a much deeper understanding of World Machine than I previously had. I’m looking forward to utilizing some of the things I’ve learned (both for this specific workflow and all the happy accidental lessons I learned on the way) in future projects!