[4008 Bugs/Requests] WM4008 Bugs and Feature Requests

First, I would like to start off by saying I am using the Beta (4008) and I know that bugs are expected (No complaints there)!

[Bugs]

  • Crash: I am not sure what causes it to happen, but sometimes World Machine 4008 hangs (I can still interact with the UI sometimes, but none of the views update). Usually this results in needing to kill the program myself, or a crash.
  • Crash Recovery: After a crash, reopening the project (Previously saved version) will often fail to update any views other than the node graph. If I lock a node for viewing, it shows. If I unlock the node again, I lose all visibility on previews and such.
  • Miscellaneous: Not sure if this is related to any of the above, but in the console I get a lot of “libpng warning: bKGD: invalid” messages.

[Feature Requests]

  • Macros: Macros are great, but I wonder if I am just missing something, or if they are not as full featured as the base nodes. I would like to request that they become more in line with the base nodes.
    • Base nodes can have an offset in the top right corner, where Macros cannot.
    • Base nodes can change the upper bound of distance/elevation above the project maximum. I feel like these are pointless inputs for Macros since scalar works from 0.0 - 1.0 (And you can imagine them working between minimum and maximum range). If there would be a way for us to match the expected input (Advanced Noise, for instance, has a value that works from 0 km to 1024 km, even if the project is much less) so the macro UI can match the internal UI, that would be awesome. Currently we can’t have a set range for distance/elevation, which is odd for a program that generally works with units (km or m) instead of normalized input.
    • Base nodes can have a mask input on the bottom, macros cannot?
    • We are missing inputs that the base nodes have (Specifically, integer input without a slider).

I feel like macros should kind of mimic the included base node format so the community can possibly help expand “the arsenal” available, while leaving usability consistent.

Just some ideas, and if any of this is present already… I may have just missed it and I apologize!

2 Likes

Hanging: I also have times when WM LTE hangs and I can interact with the UI, usually the way to fix this for me is to either update extents, try building, or reloading the project.
Crash Recovery: I also use the above methods to try and fix this.

I don’t know what you mean by base offset, but I have feature requested a mask input at the bottom for macros, purely for aesthetics, where the macro maker would specify where the mask would go inside the macro.

As of now, I don’t know of any devices which can go above the terrain elevations, but it is possible to have a custom distance input in the macro parameters, which can be a custom range, but it is bugged as of now and iirc will be fixed for the next build.

1 Like

I agree a special port for the mask input would be great and also give for a more uniform device usage experience. Do keep in mind that the handling of that mask input should be done inside the macro, as @Delta_Research points out.

Regarding offsetting the origin of the macro, that is indeed a much needed feature, same for an option to hook up all the generators inside of the macro to a central Transform Input port, like all generators have.

1 Like

By “Base Offset” I mean like the Advanced Noise (For example) has in the top right (Allowing you to shift the noise along the X and Y planes by a set distance. This is useful for repositioning the noise for more granular positioning within a shape, for instance). Arguably, this is able to be achieved with a translation node, I think… I would lile to see more consistency between base nodes and what we can make in Macros.

In that respect, much of my requests are “Nice to haves”, I will admit. But having the consistency between base nodes and macros would make sharing them easier on the end user, for instance.

Also, the custom distance range bug might be what I am referring to (I tried both elevation and distance. Elevation should stay as it is, I would think, to remain clamped between the low and the high values. Distance should be more arbitrary… so what you are saying actually would solve that the right way! Thank you for the info!)

Editing to add new messages from the console right when a hang occurred (Just for future reference if it could be helpful):

[Performance] commitAction() timings: [Build 0ms] [Autosave 11ms] [Signals 10ms]
libpng warning: bKGD: invalid
[Performance] commitAction() timings: [Build 0ms] [Autosave 11ms] [Signals 6ms]
QObject::connect: No such signal DeviceResolutionPanel::accept()
QObject::connect: No such signal DeviceResolutionPanel::requestDialogResize()
libpng warning: bKGD: invalid
[Performance] commitAction() timings: [Build 0ms] [Autosave 11ms] [Signals 8ms]
libpng warning: bKGD: invalid
[Performance] commitAction() timings: [Build 0ms] [Autosave 11ms] [Signals 8ms]

Hi there,

thanks for the feedback and feature requests!

I agree, macros should definitely gain a mask and transform/location input (configurable). There’s no reason why this can’t happen soon.

As @Delta_Research mentioned, distance parameters have a bug that doesn’t let you set the distance range. This is fixed for the next release.

1 Like

Awesome, thank you for the response! I have a few more feature requests that came up as I was playing with World Machine earlier. Again, if these is there and I just overlooked it (Or misunderstood how it could be achieved), apologies!

  • Expand upon the Shape Node: The ability to have it repeat/tile (And respect translation/rotation).
    • Use for this could be more intricate (And harder to achieve with straight noise) features. Eg. Sand dunes. You can draw the peaks by hand with the path tool and tweak the results with noise. Then combine a few resized versions of this to make endless sand dunes (For filling another shape “region”. Eg. to specify the desert biome area).
  • Wind “Erosion” Node: This would be great for the formation of sand dunes (Sorry, it was my latest toy project!) when coupled with the above. It could, for instance, pull in one side (toward the wind) and fill up the opposite side (opposite of the wind). Maybe having curves to define the impact on both sides, and an angle to determine the wind direction. This is off the top of my head, and probably not the “right way”, but I hope it at least describes it well enough.

I am also curious if there is a way for us to make our own devices entirely (Not just macros built from the included nodes). Is this possible? I am a developer, myself, and procedural generation has been “my thing” for years. Noise (of all kinds) has been pretty important to me in that respect, so I’ve used it quite a bit. It could be interesting to see what I can come up with!

  1. This definitely works well - you can try using a shape node in localspace to achieve this. Localspace is basically just a “detached” network that exists outside of the world - you then place or scatter it into the world with the Instance Placer / Scatter devices. The scatter device can automatically create a fractal out of your shape.

See the example file “Localspace custom fractal” for an example of doing just this. I’m sure you can tweak to achieve an awesome dune :slight_smile:

  1. Wind erosion is definitely a commonly requested feature: I think the last thread discussing it was here: Feature Req: New erosion type + improvements to current erosion I’m definitely interested but don’t have any kind of ETA or plan at the moment for this.

  2. If you can write in C++, you can write your own plugin for build 3028 using the PDK available here: http://www.world-machine.com/resources.php?page=pdk

The download includes some example plugins, and I think you’ll find it reasonably simple to get things up and running.

Longer term, I haven’t decided how to handle plugins for LTE. The current plugin system is quite brittle, as it directly uses the internal class structures/etc of World Machine. This lets plugins be fully privileged and is quite powerful, but it means they essentially have to be recompiled for every new version which is quite a chore. I’ve been looking at a few possible solutions to this, but all of them involve a fair amount of work to get up and running.

1 Like

Awesome, I will now start playing with the local space feature! Sounds like just what I needed.

C++ is one of my favorite languages (And always will be! It was my first, haha). I will have to play around with the PDK some. Once the LTE version gets an implementation that works for it I will probably use that more heavily (I am really liking the LTE version and have been spending most of my time in that one).

Kepe up the great work. I really like where this software is headed (I have tried all the other world generation software, and World Machine remains my favorite).

Edit: So I played with local space and Instance Scatter for about 5 minutes… That’s exactly what I was after! Works amazingly well, thank you!