Wish list

Ok, here are some cool features that I think would add greatly to the already great World Machine…

  1. Erosion running on a GPU. Seems like it is a massively parallel computation. This could be offloaded to a GPU using brook or Sh and we would get significant speed increases.

  2. Tiles. Ability to work on a “smaller” 1k by 1k tile, but have some mechanism by which we can switch to a different tile (with some means by which it would also switch to different input files based on their names).

  3. Soft material pile-up. Another node where we could define a wind direction, and WM would “pile up” material on that side of the terrain. This would be useful for sand or snow or dirt to collect on the windward (or leeward) side of the terrain. This can be simulated right now, but is quite difficult to get to look right (or, the other possibility is that it is easy and my tiny brain is having trouble with it).

  4. Related to #3… A node that is similar to the “Select Angle” node, but also takes into account the “wind shadow” of taller peaks nearby. This way, angles that are in the shadow of a larger peak would not be selected.

  5. Rudimentary paint tool so that we could paint a quick mask for where a node should be active.

  6. Get rid of the splitter. Allow any output to plug into any number of inputs. See Apple’s Shake for a reference on how this would work.

  7. Hardness Maps. Be able to add a map that describes where a material is hard, and where it is soft.

Still really dig this app!

bvz

Oh yeah, one more…

Be able to cancel connecting a node with the esc key. So if you are dragging a noodle from one to another, you can just hit esc and it will stop the process.

Same with adding nodes. esc should get you out of the add node mode.

b

River Network Device - Starts at the highest elevation then winding itself downslope avoiding higher parts of the lowlands/foothills and spilling out as a delta to the lowest elevation points… Delta can be customized and winding curves can be strong or weak and growth length across overall terrain can be adjusted.

Multi-Aged Erosion/Multi-Scale Erosion

Terrains larger then 240 KMs but i would think higher resolution heightfields would be needed for the extra world details.

Blending Layers as a Device like what Photoshop has with mask input.

Land Shift Device - kind of like displacement but acts as a hard angular shift like what happens to terrains after an earthquake.

Sethren

Some good ideas in this thread!

I’m always on the look out for things that can be added to WM that fit within the existing paradigm. Obviously not every idea does, or is practical to create, but there are certainly some good ones here – some of which have already been slated for inclusion for a while now!

Bvz:

getting rid of the splitter – I agree with this… this will happen but I’m not quite sure when.

unfortunately erosion as I have implemented it isn’t very well suited to a GPU. It’s quite “branchy” which tends to require a general purpose CPU. Non-branchy erosion algorithms would probably go quite well on the GPU but are orders of magnitude slower than WM’s existing implementation, so its really a tradeoff…

#3 & #4 are quite related, and I agree, it would be useful to have. Select Angle gets you about 80% of the way there but the remaining 20% can be difficult for some terrains.

Sethren:

what do you mean by multiaged/scale erosion?

I like the “Layer Blend” device idea alot.

Well in other terms erosion that is aged differently incertain areas of the terrain… some parts may be strong while other parts may be weaker and flow effectiveness tends to vari based on variations in terrain elevation at different angles… this can probably be done using masks but it’s not that easy… certain fractals can have different layers of erosion yet blend nicely… i don’t know maybie i am not describing it right… i can see erosion being a mix of both small and big erosion along the same terrain… take a mountain range for example - you have large elements of rigid erosion shaping the overall look of the mountain then zooming in on it you can see smaller more fine detailed elements of newer erosion from recent rain activity…

Hope this makes sense… :? :? :?

i would love to see the blending layers…

Sethren

poll: What about having a mac and not wanting to buy wm?

Blending Layers is possible with the combiner, isn’t it?

Land Shift Device - kind of like displacement but acts as a hard angular shift like what happens to terrains after an earthquake.
This is already possible.

Yes i could use the Combiner to blend terrains but i was thinking blend modes like the following…

Dissolve
Behind
Clear
Darken
Linear Burn
Lighten
Screen
Linear Dodge
Overlay
Soft Light
Hard Light
Vivid Light
Linear Light
Pin Light
Difference
Exclusion
Luminosity

Hard angular displacements… well i can’t use the displace device because it just’s uses a soft twisting… so i really do not know how it can be done…

Sethren

Dissolve - use a mask, made by Propability
Behind - use a mask
Darken = Min
Lighten = Max
Difference - see macro included

I believe that you can achieve every of this methods with the included devices.
Nevertheless a good idea.

Hard angular displacements… well i can’t use the displace device because it just’s uses a soft twisting… so i really do not know how it can be done…
Use a sharp mask for displacement, not a perlin heightfield. That schould create the hard crack.

Sethren[/quote]

ah hah… a sharp mask… excellent… thanks…

Sethren

one thing I miss in WM is the ability to pause the current creation. Cancel is too harsh. I just want to pause a complicated creation for a moment to do something else that needs resources from the computer. After that i want to continue my WM-creation. Is that possible too include this in the future?

With kindest regards

Peter Kind

In the preferences window, you’ll find the option “Use low-priority building thread”.
Activating it decreases the priority of world machine, which allows you to do other things while building.
// If you start an application that needs performance that is currently used by wm, Windows won’t allow wm to work on, but will free cpu resources to run the program you started.

Here are some more suggestions. I really really like WM, so don’t take these suggestions as complaints. They are simply suggestions.

How about being able to “write output to disk” from a context menu (on output nodes only, naturally) so that I don’t have to open the properties panel to do it.

While we are at it, how about being able to edit paths directly (know where it says Filename: and Set?) That way if I am just changing a version number I can get in there and switch it without having to use the gui (which on Windows always seems to dump me in the wrong directory).

And while we are on that subject, the File Output nodes are good in that they remember the path to where they were pointing when you click “Set”. File Input nodes, however, don’t. They just revert back to whichever directory was last accessed.

It would be nice if the File Output and File Input properties panels were resizable (or at least the Filename fields were longer). Right now all I can see is the path, but not the actual filename. I have to click in the field and then scroll to read the file name.

Even better would be if the properties-panel-as-a-modal-dialog were to go away. Instead, we could have a properties panel that was docked on the right in the same way there are controls on the left. Optionally, this docked panel could be shown as a separate window, but still always be active. In this way, whenever I click on a node, it’s properties would load into this area on the right. And simply clicking on a node will let me see the properties instantly, but without interrupting my flow. Similar to the Properties panel in Maya or Shake.

Change the nodes in a manner similar to how Apple’s Shake works. In Shake I can view one node, and change the settings in another. Now, I know I can do this in WM as well, but the interface in Shake is much smoother. If I double click a node I will look at the output of that node as well as see the properties of that node. If I click on a little box on the left of a node, that is the node I am looking at. If I click on a little box on the right of a node, that is the node I am editing. This makes it very easy to modify settings in one node while seeing the output of another. Low priority since we can already do this, just think it might be a smoother way to go.

Have an option to allow the lines connecting the nodes not be bold, as well as allowing the text under a node to not be bold.

Here’s a big one. I suspect that WM evaluates all nodes when I say “Write output to disk”, and not just those that are connected in the network that has the file output node in it. I am currently working in tiles, and have 16 separate trees going on, each with their own input and output nodes. When I try to write one of the output nodes, I can see that each and every node in the entire file is built. Since this is taking an awful long time, I am going to separate the trees into individual files. But that seems a pain. It would be nice if the app automatically culled any nodes that were not linked to the current tree while it was building.

That’s it for this time. Keep up the good work :slight_smile:

Ben

For this last thing:
Mark what you don’t need - press [D] - the devices will be disabled.

nikita,

Aha. Yes of course… that makes perfect sense. I should have thought of that. Thanks.

Ben

no problem :wink:

Ah, a couple more suggestions (I can’t stop!)

It would be nice (for me anyway) to be able to specify an output resolution per file output node. Normally, this would be set to “Use Global Setting”, but could be set to 256 x 256 for example. That way, when I build a tree with multiple outputs, I can have multiple resolutions created along the way. That said, I understand that this might be difficult because WM seems to work at one resolution throughout the tree. Perhaps it would default to the highest res of any of the output nodes (that are set to automatically write each time), and scale down the resulting outputs of the other nodes.

It would also be nice (once again, for me at least) if I could export an OBJ directly from WM. Currently I am writing out lores heightfields (ergo the suggestion above), and importing them into TG and then using For Export Only to write out the files. This works, but I am a lazy person and would like it to be just one more output from WM.

Ben

Great suggestions Ben! I agree with most of them. I have discussed the “persistent property panel” with Stephen in the past and I do think it should be an option. I still think the default should be the current behavior, but having that as an advanced option for power users like you would be ideal.

Your multi-resolution output concept is interesting and it makes me wonder if that could be extended even further to make the whole network possibly multi-resolution. Example: let’s say you are going to build a basic mountain shape, then use the Expander to sharpen your ridges, then erode it. If you are using fairly heavy erosion it won’t really matter if the previous 2 operations were done in a lower resolution, and doing so could save a lot of time. So for example you generate a Perlin at 256x256 in 1/4th the time, do your Expander on the same resolution heightfield, then upsample (a quick operation from what I’ve seen in WM) to 512x512 for the erosion step. This would allow you to quickly rough out pieces of terrain and make them generate quickly in the network while still getting fine details where you really wanted them. But there’s probably some really good reasons why this is a bad idea and I’m just not thinking of them. :smiley:

  • Oshyan

Allowing different resolutions in the network has been something that I’ve thought about before, and there are some huge plusses that go along with that, but its not without complications. There are a LOT of cool ideas I want to implement for WM – the biggest problem is simply the time to implement them all while not driving myself mad from overwork. :slight_smile:

Oshyan, I think you are on to something with the whole multi-resolution concept. I also understand where it would be a pain to implement sort of after-the-fact without a huge rewrite of the basic WM engine.

Stephan, please do not drive yourself mad. My guilt at being a party to that would be overwhelming. Just thinking of myself here :slight_smile:

Ben

That multi-resolution idea is familiar to me as well :slight_smile: The workarround I currently use is to save to a temporary file, and open it again in a new resolution world. This has it’s disadvantges…