Plugin: terrain merger (Graphcut seam finder + Poisson seam remover)

Hi guys,
Sorry that I missed deadline twice. Hopefully, this update will make up for it.
You can download the new device from
This update includes both the seam finder, seam remover, and an example project file to show you how to use these to seamlessly merge two height fields. To be able to use the plug-in, you will also have to download some additional dll files which is also listed on the webpage.
Meanwhile, I will start writing a detailed tutorial page about this device in a couple of days. Please let me know if you encounter any problem. Thank you.


Update 2007-08-17:

The device help page is now up.

Hi Howard,

Awesome. I think the seam finder/remover will be quite useful for a great number of possible purposes.

Just a few minor implementation details I noticed:

  1. You might want to override isPresetCapable() and return false – if your device has no parameters, there’s no sense in allowing presets for it

  2. Progress reporting is missing… This is definitely handy feedback to have for devices that take a little while to operate.

When a mask input is not connected to the Seam Finder, what criteria does it use to merge the terrains?

Awesome work Howard. I’ll be checking this out immediately. Looking forward to documentation and the next update.

Great progress! I was looking at your tmd yesterday- wow- one imagines the possibilities.:slight_smile: I was running the default 512, so I’ve yet to check this out at higher res.


First, thank you all so much for your encouraging comments.

I’ve update the .dll files and removed the support for presets. As for the progress report, I have been thinking about it since the first PPA device. However, I still haven’t come up with a good way of calculating the time needed without hard-coding it into the device. For instance, the Seam Remover solves a linear system equation at once, and currently, I cannot think of a good way to report the progress. Do you have any suggestion?

Regarding to your last question, I’ve added one example to the help page. Basically, when a mask is not provided, the Seam Finder automatically generates a mask which sets two sides of the rectangle to be the source, and two others to be the input.

Yes, I will try to finish the next part sometime in the future. However, I still do not have a good idea on how to connect the next part to World Machine yet, the best bet is the layout generator kind of approach, but I will need to do some homework on that before I can really start. Once I have a solid idea, I will setup a release date on the webpage.

It probably will take much longer to run these devices at a higher resolution. In the original implementation, I used small patches and made up a large terrain piece by piece. Now instead, the procedures are run on the entire heightfield at once. The next part of my work is to figure out how to work the piece-wise approach into the World Machine framework. Any suggestions?

By the way, I would really like to see some cool examples using the devices (although it would be a pain to generate high resolution ones right now).


Here’s a first test:


Here’s a wip of the AnduinVale terrain in WM 2.0 Beta. I’ve used Howard’s PPA device to find and highlight the rivers and tributaries (in blue and white) on the terrain. The complexity of the extracted network can be easily fine tuned from the device settings. The PPA output can also be altered/ controlled via WM the 2.0 Layout Mode or a paint package.
This is just one of MANY of its uses I think.

This is also replicated on the TS


Hi all,
I’ve just updated the terrain merger plugin to World Machine 2. The dlls and example files can be found at Please let me know if you have any problem getting it to work. Good luck!

Notice: The current plug-in only works with WM2 Basic. I am trying to make it work with WM2 Pro. I will keep you updated. Sorry about the inconvenience.


oh WOW!!! so glad to hear this news Howard :smiley:

I’ll give it a whirl.


stumbled across this just now…so its it works for wm2 pro yet…sorry it jsut looks like such a handy thing to use sometimes

well, as far as i can judge, much work has been done on this! no wonder the results are stunning) amazing how these changes can be arranged to affect the texture, the illumination, and the color of objects lying in the region, or to make tileable a rectangular selection.

I’ve not heard anything from Howard about this for ages. The latest build didn’t work with 2 Pro, and there are no more updates.
That’s a shame because I found the ppa extremely useful. I think the effects of rest of the plugin could be achieved in other ways in WM- possibly, though perhaps not as powerfully? The ppa could be substituted by the convexity selection device, but the control of the selection in Howard’s plugin was very versatile.


Howard has been focused on finishing his PHD in the last while. I’ve been in communication with him off and on over the last year, and both of us hope to have his plugins be re-introduced for WM.

One of the current development tasks is some internal changes that will make plugins more resilient against program updates; this should ease the burden of keeping a 3rd party plugin up to date against WM.

That’s great news! :slight_smile: I’ve got something I want to try regards real world dems. I think his plugins would be a big help.

Looking forward to the next update, software, blog or otherwise :wink:


Howard’s plugins awesome - i will be jumping for joy when they get updated for the contemporary version of world-machine.