World Machine Development News

Friday update

Happy friday everyone! Here’s a bit about what’s in progress here at WM.

I’m going to talk first about some updates to Alpine Lakes that are coming down the pipe.

Thank you for everyone who wrote in with any issues they ran into with build 3025! I think most of the license-related hiccups are out of the way now, and build 3026 is intended to both fix some issues discovered in 3025 and also bring some improvements along for the ride. We’ve also continued to slowly flesh out the documentation on the new devices; we still need to write an overall “guide to water” however.

A few hints and tips for water

Here’s a few tips from the upcoming guide to water:

Always re-structure before creating water

If you ever run into issues with tiny pocket lakes appearing when you create water, 99.9% of the time the problem is you haven’t restructured the terrain for flow.

Flow Restructure is useful in many different situations which is why it is a separate device, but you will almost always want to use a Flow Restructure device directly before Create Water!

Always flow before water!

Modifying your terrain after a flow restructure device will, with few exceptions, break up the carefully created height differences that allow the terrain to drain properly.

Don’t hesitate to use Flow Restructure multiple times in your network! It’s very useful early to help set the overall elevations of your world. But remember to re-apply it right before creating water, unless you have a good reason not to! (*reasons include: creating intentional lakes)

Next let’s talk about some of the upcoming improvements. Build 3026 isn’t available yet, but hopefully in the next few weeks. It contains a number of bugfixes, but also some larger new features.

Here’s some of the bigger items:

Water Mesh Output

You can now simply wire the water datatype into the mesh output to export your geometry. Easy peasy. The Water Output macro is still useful when you want the flowmaps as well.

Water and Erosion

River networks have a unique property in real life. Rivers are prescribed by terrain, but also profoundly shape it. This kind of emergent, positive-feedback effect can be tricky to control. And there’s no single solution – sometimes we want to guide things exactly, and other times to let nature take its course.

One solution is to capture some of that feedback by applying erosion to the terrain, adding rivers, then continue eroding into the new river system. One geology text refers to rivers as “endless conveyor belts” that carry away sediment from your hillslopes, which I think is a really illuminating concept! Imagine heaps of sediment carried into your river channels and being swept out to sea…

So given that, we definitely want to support erosion post-water. However, in 3025 that doesn’t always work. First of all, it’s a bit annoying to setup the network needed – you have to extract the river mask, invert it, feed it into the erosion device.

Then even when masking, if you really crank up the erosion you run into major problems where the terrain is eroded right out from beneath your rivers and streams. Witness this sequence.

We start out with a basic eroded terrain that has water applied:

Erode-Create Water works fine

And everything is fine. But let’s say we want to erode the terrain more into our rivers. Then we run into problems:

Dangling cliff-side stream: Where did my terrain go? guys??

Given the unique way that rivers and erosion complement each other, this should be a “golden path” where it just works. Now it does. Just feed the water data into any erosion device:

and no more floating streams:

The cliffs around the stream is preserved

Even with quite extreme erosion we now can be confident that the terrain won’t be ripped out from underneath/around the river network.

Eventually it would be useful to have an option to allow erosion to co-evolve the terrain and water systems in tandem… but that’s for another day 🙂

Click and Flow Rivers

Create Water has been carefully constructed to be scale-invariant; all other things being equal, the river networks should appear in stable locations no matter what resolution you build at.

However, all other things are not equal. As reader Pratyaksh wrote in the other day, sometimes this doesn’t seem to be true. What’s happening? Two problems:

  • Sometimes the underlying terrain itself is changing! This happens when other devices are not scale invariant. This is often the case with erosion, etc, where the result when building at higher res can be quite different.
  • The scale-invariance only holds for convergent terrain. Convergent terrain simply means that water tends to combine rather than thin out as it runs downhill. This is usually true; but when water spreads out running down a cone-like surface, for example, it is not.

What’s the solution? 3026 will let you pin the headwaters of the rivers in place according to the current terrain. The rivers will still flow naturally when built, but they will only spawn where indicated.

This functionality is only one step removed from “semi-automatic” click-and-flow rivers, so I went ahead and implemented that too 🙂 Now you can simply use the Layout View and click to spawn a river; you can move around or delete the headwaters to control your river network. The UI is not great for this right now, but that’s the subject of a whole other post…

This is the final piece of the continuum of control over rivers. You can now:

  • Create fully manual rivers that impose themselves into the terrain around them using the river device
  • Create semi-automatic rivers that are placed by you but flow naturally
  • Create fully automatic rivers that are placed and flow according to nature

Long term, the goal is to make these options integrate more tightly; automatic rivers should have GCS channel character for example, and I’d like to be able to promote/demote between manual and semi-automatic; so you can easily customize as much or as little of a river as you’d like. But that’s for another release…

… and that’s all for now. Until next friday!

By Stephen

Founder of World Machine

One reply on “Friday update”

Now that’s one hell of an info dump! Would need to read deeper into it when I’ve caught on some sleep, but from what I gleaned so far, excited about developments around water!

Comments are closed.