Category Archives: World Machine Development News

Development News concerning World Machine

Alpine Lakes Update

Build 3028 has been released; you can read about it on the Help Center.

Most importantly, 3028 is also the first Alpine Lakes release to the Release Channel! This brings all of the river-y goodness to folks who aren’t running Dev builds, as well as Basic Edition users.

For dev build users, it’s mostly bugfixes, but also a nice improvement to the SVG importer to allow almost all SVG files to import successfully.

Docs & Help

As promised, I’ve also been spending an hour or two a day lately filling out the documentation on the Help Center; the first pass through the alpine lakes docs is almost done.

I want the help center to not just have reference material, but also tutorials, guides, best practices, etc. It’s going to take some time to get there, but we’re on our way. If you have any interest in helping out, give me a shout at [email protected]!

Lastly, I wanted to mention something; with the Help Center up and running, it now takes on the role of “formal” announcements of new builds.

This lets the dev blog be what it was originally intended to be – a window into the behind the scenes creation of World Machine. I’m looking forward to the return of that.

What’s Next

And so our focus can now mostly turn to the next “codename” build.

And what will that build be about?

With no exaggeration, the most profound changes ever made to World Machine. ….And they’ve been in progress on a side-branch for the last year.

There’s still a long way to go, but the time will come soon to start taking the wraps off things. This deserves its own post 🙂

Stay tuned.

3026 Erosion Improvements

The Erosion device has been upgraded in build 3026. As World Machine’s most popular device, all changes to erosion have to be a bit cautious; but I think you’ll enjoy what’s to come 🙂

Eroding into river channels

The ability to erode into river channels has been around for a while, but it really hasn’t worked the way you want, especially when “Geologic time enhancement” is enabled. This became increasingly obvious with the new automatic rivers in 3025; doing any kind of strong erosion would either sink the river deep underground or leave it hanging out over the terrain like in the first image below.

It took much longer than I expected to hit upon a good solution to this problem. But the default behavior is now way better:

No more hanging rivers 🙂

Light years better! The river now feels fully integrated into the terrain, without the odd “buried or hanging” effect in first first image.

However, in some cases.. when we do massive erosion after placing rivers… it’s still not enough. This made me think more about what we’re actually trying to achieve when eroding a world that already has rivers placed.

Achieving Equilibrium

For example, here’s an example world based that has had extreme erosion performed after placing rivers. At first glance it looks fine. But look closer…

A great amount of rock has been worn away. 3026 ensures that the terrain around the river is roughly preserved, and it is.. but that means that the river ends up running down the ridges of the terrain!This would be.. unusual in real life 🙂

One usually doesn’t see rivers running down a ridgeline (left side)…

Let’s back up. What’s causing this problem?

Our desire to fix the river paths to their existing location is what causes us this trouble. In reality of course, the water channels are the primary agent of terrain change, and down-wear in concert with the rest of the terrain. What we’re trying here with a fixed river location is not physically plausible.

The solution is : uplift.


The terrain around the river has slowly uplifted during erosion, maintaining the river’s location at the bottom of local valleys

You now have the option of slowly having the earth raise beneath the terrain undergoing erosion. This provides the forcing function we need to keep the rivers in their proper place at the valley floor.

I think you’ll find this to be quite useful!

Preserve Edges

Build 3026 also makes sure the “Preserve Edges” option is A) no longer broken 😉 and B) interacts well with uplift.

When enabled, map edges are effectively sediment sinks (just like if you specified a river/sink mask), and play well with uplift. This lets you carve into the terrain automatically as uplift happens:

Uplifted erosion without and with “Preserve Edges” set

What’s happening in the comparison above is that the edges are being forced to their initial values in the bottom image. This creates the elevation differences that erosion needs to continue working; in the top image, erosion has essentially reached an end-state, where all large structures have been worn away.

Mask Structure

Finally, a new useful control has been added to Erosion: Mask Structure. The wear/sediment/flow masks are incredibly useful for texturing, but getting a good look from them has been counter-intuitive in the past. This has been fixed, and you can now simply set the structure slider lets you control how detailed/smooth you want the mask information to be.

Sliding the Mask Structure from 0..1

Better Geological-time Enhancement

As a final short aside, this control has been made much more fluid/controllable/predictable in terms of results. Without going into all the details…. I think you’ll like it.

About that compatibility…

With all these changes, it’s worth talking about compatibility. Erosion is now versioned, which lets us both preserve old behavior and also simplify things a bit.

You’ve probably noticed that Erosion pre-3026 has a bunch of odd compatibility check-boxes. This is due to making small improvements over the years without the benefit of the device versioning system. In order to preserve the old behavior, there needed to be a checkbox. And then, sometimes there wasn’t one, leading to changes when you didn’t want them…

Now that versioning is in place, we can remove some of them:

Simplified Erosion dialog

The compatibility options have been distilled down to some of the essential ones. If you load an older world, you’ll see more of the old options appear.

That’s it for now! 3026 should be coming out very shortly for you to play with the changes; after a short bugfix interval it will then drop to release channel as well.

Build 3026

Build 3026 is making progress and should be released in the next week or two; it will likely also be the ‘Alpine Lakes’ release channel version.

Erosion now plays nicely with river systems, bugs have been squashed, and the ability to pin/edit the headwaters of your rivers introduced. But along the way, I encountered a problem.

A difficult choice

I ran into a quandary while implementing the “pinned channel heads” option for the Create Water device.

In order for you to “drop a pin” where you want a river to start, you use the Layout View to place/move the pins. But Create Water works quite poorly in Layout View! It’s very confusing/hard to see where your river will actually run.

Retiring the Layout View (eventually)

This is yet another example of the problems that Layout View have caused over the years. As time goes on, I’ve become increasingly certain that the Layout View functionality should become a “mode” of the 3D View instead of being its own very unique display.

There are a variety of reasons for this:

  • It would be very useful to be able to use the 3D View and its pan/zoom/track ability when creating masks, shapes, etc.
  • The great strength of the Layout View is that it supports viewing infinite terrain extents. In practice though, wanting infinite pan/zoom ability is rare; you’re mostly working on the area defined by your render extents.
  • The technique needed to render a realtime infinite viewing area means that devices like Erosion, etc sometimes look nothing like what they will in the actual world you’ve created!
  • Going forward, our focus will continue to double down on simulating nature; more and more new devices will be introduced that are problematic with Layout View.

However, this is a big change that we want to do properly, in concert with some other features later this year or next. But in the interim, we need something to hold us over until that changes. What to do?

Solution: “Focus Extents” mode

The Layout View now has a “Focus Extents” toggle. When enabled, the Layout View switches from the infinite-extents display to showing only what the current preview does.

This lets you see the true output of your world with no artifacts. Not only does this make devices like Create Water much easier to manipulate, but it also is much faster and more pleasing to work in.

Here’s a video showing it in action:

That’s all for now. Next time 3026 should be out and I’ll go over the full set of changes, as well as finally get a chance to talk about what comes after that!