All posts by Stephen

Founder of World Machine

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!

After the Storm

GDC was a whirlwind! It was great to meet a lot of longtime World Machine users and put some faces to names, as well as connect with new folks. I got a lot of great feedback about what people are hoping to get out of their terrain software.

This week has been a slow return to normal. I’m making small tweaks and fixes to ‘Alpine Lakes’, including tracking down some issues that have affected a couple folks activating with the new license manager.

Have you gotten a chance to play with 3025 yet?

Encounter any issues, or have anything not work the way you want/expect? I’d love to continue polishing the new features before they drop to Release. Email me with your thoughts, or post to the comments here.

For example, a few small improvements that are in-progress include:

  • We forgot to package the Water Output macro with the initial release. Oops! You can get it here for now if you’re missing it.
  • Allow the Erosion and Thermal Erosion devices to accept water in their sediment removal inputs
  • Improve erosion’s ability to treat areas masked by water as permanent (stay at the input height)
  • Have Mesh Output accept the water datatype and just Do the Right Thing for export.

There’s going to be a lot of continued iteration in the future on the new features exposed in Alpine Lakes. Expect a followup build 3026 once some of the above issues are ironed out and more feedback is incorporated.

Simultaneously, the Help Center should continue a slow march towards full documentation of all the new devices and features. It takes a lot of work to write good docs, but I’ll do my best.

Until next time!


Build 3025 ‘Alpine Lakes’

Hey folks! Just this morning, the first development build of the ‘Alpine Lakes’ branch of World Machine is now up! โ€˜Alpine Lakesโ€™ is all about water and the effect it has on your terrain.

You can now add automatic lakes and rivers, drive beautiful
new texturing based on soil wetness, and even have World Machine recraft your terrain by breaking through ridges and creating new drainage basins according to hydrodynamic principles.

Read about it in depth in the new help center:

Build 3025 ‘Alpine Lakes’ Release Notes

Which is also live. ๐Ÿ™‚ The Help Center is pretty sparse as all of the device docs are still being written, but it will be the new home of all WM documentation and release notes in the future.

Go check it out above. We’re literally loading up the truck right now and road-tripping down to San Francisco for GDC 2019! We’ll be demoing the new Alpine Lakes features there, so if you’re coming to GDC stop by our booth and say hello.

Naturally since 3025 is a dev build, there’s sure to be some issues remaining. We’ll try to get to anything showstopping, but the next big focus is GDC. This is the first time we’ve had a booth there, and I’m very excited to talk to everyone. See you there!