Category Archives: World Machine Development News

Development News concerning World Machine

What’s New in World Machine land

Hi folks,

Thank you for your bug reports over the last month or so – I’m preparing a build soon that should fix a number of issues discovered since Mt Daniel. I’m targeting the end of next week for the release, fixing a half dozen or so important bugs. If you’ve been having problems with setting filenames, crashes in layout view, or several other baddies, the fix will soon be at hand.

Beyond  one or more bugfix releases,  the next named release should bring a lot of new abilities to the table. 🙂 There’s a lot of new features in flight right now in R&D that are about 80% finished. I can’t promise any kind of release date, but as we get closer to the dev channel debut I’ll start posting about each new feature.

Finally, as always I want to hear about what YOU would like to see from WM. While I have plenty of ideas and goals for WM, some of the compelling new additions over the last year have been directly from your feedback. That’s awesome! And I’d love to keep that up.

Drop me an email at stephen@world-machine.com to let me know what you’d like to see!

Build 3022 ‘Mt Daniel’

Build 3022 became available a few days ago on the Development Channel!

The full changelist is available at the Update Center.

Taken together with all of the pretty major improvements from Build 3021, within a few weeks they will together drop to the Release Channel and be known as the ‘Mt Daniel’ release.

Mt Daniel is one of the highest mountains in the Central Cascades.  Heavily laden with snow until well into the summer, it is a popular mountain climb here in the Pacific Northwest.

There are two main focus points in Build 3022:

Snow Device

For a release named after a snowy mountain, it’s perhaps unsurprising that ‘Mt Daniel’ introduces a completely new version of the Snow device. You can now model snowy scenes in all conditions… be that be a mid-winter snowscape, or lingering snowfields dwindling away in the hot summer months.

One of the included example worlds

There are several new example worlds featuring the Snow device (including the above one) as well as the Snowmelt macro and a helpful blueprint that lets you quickly and easily add snow to any scene.

All the full details about the new Snow device are in the last blog post, check it out there! The new device is dramatically faster, more controllable, and produces better results.

Build Improvements

The second major focus of 3022 was improving build ergonomics in World Machine, especially ultra-high resolution (>16k x 16k in size).

Here’s what new with Building:

Improved Reporting

  • You now have a build log that mentions any warnings or errors that occur during a build. This includes things like : a device failing to build, out of memory errors, or performance warnings when WM has to page memory contents to disk. This should help you track down issues where a build is failing to complete / not performing as expected.
  • The build status dialog also now has an extra digit of progress precision to help give you some reassurance on those really long builds.
  • All of the slow-to-build devices have had their progress reporting reviewed and modified so that you get more consistent progress reporting… no more sitting at “0%” for 20 minutes, only to jump immediately to 100%.

Fully Cancellable

Many devices in World Machine didn’t internally cancel previously — you’d have to wait for the device to finish before the build would cancel. This was a huge problem with large and slow builds. With 3022, all devices will cancel more or less immediately.

In addition, cancelling no longer locks up the UI thread, so it won’t appear that WM has crashed while it waits for the device to cancel.

Fewer Errors, Better Handled

With very large resolution builds that pushed the resources of the machine to the max, some people would run into a fairly critical error: Device failure due to running out of memory would be silently ignored by the build process. This is bad!

The last thing you want to have happen is wait forever for that 64k x 64k  build to complete, only to find out it didn’t produce a result.

Exacerbating this, the previous Layout Generator would build shapes in parallel, which was a fine choice 5 years ago with only a few cores and moderate resolutions, but a disaster with hundreds of cores and high resolutions — with each shape generating into its own heightfield, the amount of memory required spirals out of control, often leading to the failures listed above.

This is now fixed, along with a few other issues that crop up with very-large-sized builds. For some of your ultra high res builds, this change alone will conserve dozens of gigabytes of memory!

It’s worth noting one last thing: Many of the available export file formats don’t actually allow file sizes larger than 2GB. There’s unfortunately nothing that can be done about this, except having WM warn that it cannot export to certain formats in that case. This does not happen right now — but it will in the future.

That’s it for the major changes. There are also some smaller features (like additional macro creator options, speeded-up erosion masking, etc) and of course some bugfixes listed in the full changelist below.

Happy World Machining!

 


Full Changelist:

Major improvements:
————-

* Reworked Snow Device
The new version of the Snow device offers an improved Snow model that is more intuitive, dramatically faster, consistent across different resolution builds, and produces higher quality results. It works in tandem with the new “Snowmelt” macro to easily accumulate and melt snow. See the associated blog post for more details, as well as the new example worlds and blueprint.

* Improved Build Diagnosis and Stability
– The Build report now logs any warning conditions such as out of memory, paging, etc. This will allow you to diagnose any build failures much easier.
– Build errors now stop the build instead of allowing it to proceed with incorrect results.
– Canceling a build is now MUCH more responsive. Erosion, Thermal Erosion, Snow, Blur, Lightmap, Layout Generator, and Macros all now can cancel immediately.

Minor improvements:
——————-

* The Layout generator could previously consume large amounts of memory under some circumstances. The memory requires has been reduced dramatically and additionally progress is now reported much more usefully.
* Macro creators can now specify ranges and also optional exp scaling for scalar, distance, and elevation parameters.
* Erosion now has an early-out mechanism to speed up processing when large amounts of the terrain are masked out.
* Masked mesh output is now smoother, producing additional corner triangles

Bugfixes:
———

* Fixed crash bug on loading certain worlds/macros
* Fixed crash bug that could occur with large sized builds >2GB in size
* Fixed bug in Layout view when dealing with data that is of a different sized from the world
* Fixed bug where WM would claim diskspace failure when plenty was available for builds >2GB in size.
* Fixed bug where Undo disconnected macro connections
* Fixed minor issue where panning in Device workview sometimes didn’t track properly

 

The New Snow Device

Living in the Pacific Northwest of the US is one of the biggest reasons World Machine exists. From deserts to high alpine to rain forests, we have it all – and hiking and traveling those areas provides a lot of inspiration for new devices and functionality within World Machine.

A few weeks ago I took a quick weekend backpack to Colchuck Lake, a beautiful alpine lake nestled in the central cascades. At around 6000ft of elevation, Colchuck gets buried each year under many dozens of feet of snow, and then slowly melts out well into summer.

This is what it looks like at Colchuck Lake in Real Life

Spending time camping on the snowy shore and soaking in the stunning surroundings gave me a lot of interesting ideas, but most importantly made me determined to improve the Snow device in WM.

The snow device has always been tricky to use right. Not only are the exposed parameters fiddly, but the results were often inconsistent between low and high res builds, necessitating even more tweaking and frustration. Most damning, the solution method scaled poorly, making the snow device impossibly slow in high res builds. All of these factors conspired to make it less useful than I had always hoped.

Meet the New Snow Device

The trip to Colchuck was the inspiration needed to overhaul the Snow Device.

Let’s start from the top. It’s simpler to use:

Only a few non-tweaky parameters are needed

 

But can simulate snow accumulation pretty stunningly:

Heavy snowfall in the alpine

 

Unlike the old snow device, it’s also very consistent across resolution of build:

 

Finally, and very importantly, it uses a more efficient solution to the PDEs governing the snow behavior to get some massive performance improvements:

Timing Comparison for a 2k terrain.  33x Faster!

The new Snow device is faster on small worlds and massively (hundreds-to-thousands) faster for very large worlds, where the old Snow device would simply blow up in terms of processing time required.

 

Melt your Heart Out

 

One of the major bits of inspiration I drew from the Colchuck trip was realizing that the melt-out process produces a fundamentally different looking landscape than the same amount of snow freshly fallen. Let’s look at that photo again:

Colchuck Melting (Real Life)

 

During the accumulation process, snow accumulates and softens the terrain, creating a relatively uniform and even snow surface.

During snow melt, the snow surface melts out quasi-evenly (given factors of sun exposure, temperature, etc). But since snow has accumulated to different depths on the terrain, the result is the photo above: The deep gullies and accumulation zones retain snow, while the steep, exposed, or highest areas of the terrain clear of snow early.

How WM does it

You can still specify masks governing accumulation and melt areas during the accumulation simulation – these allow you to have things like snowy peaks with temperate lowlands.

But to account for this “Winter” vs “Melt-Out” dichotomy, the melt process has been split out of the snow device itself. This is also handy because it allows you to tweak the melt levels without having to re-run the accumulation simulation.

Here’s a handy animated GIF of the melt out process, simply moving the “Melt” slider to the right:

Animation of the Melt Process

You can see how, much like the photo from Colchuck above, during meltout snow is retained in the gullies and deep snowfields while melting away from the ridges and exposed surfaces. This fast and convenient method of melting the snow lets you dial in exactly the kind of snowpack you want for your scene.

 

I’m pretty excited by the new Snow device, and the possibilities it opens up. It is not available yet on the Dev Channel, but it will certainly be in the next Dev release. That should happen in June.

Until then, enjoy this sneak peek at a revamped part of WM!