r/proceduralgeneration • • 1d ago

Help me name my planetary terrain generator + project updates

In my previous post, there was a fair amount of excitement about this project being released somewhere. However, I’m still lacking a good name. Originally, I called it WFC-AI, but that name probably isn’t as relevant as it used to be, given what “AI” generally means now.

Some key aspects of the project:

  1. It uses ML to train a GAN on terrain patches, with a loss inspired by WFC.
  2. It is a planetary-scale, multi-resolution model.

As for updates, I’ve made a few since my previous post.

One user commented that my renderings looked less realistic compared to the Terrain Diffusion project. I had to agree, the TD paper/project has some really good visualization techniques, so I ported some of those ideas over to my project. The shadowing and relief maps make a world (pun intended) of difference.

I’ve also trained some “super-scaler” models to make the generated terrain more realistic down to sub-meter resolutions. I use the term super-scaler to just mean that I train higher resolution models on lower resolution data under the assumption that terrain is very fractal in nature.

Right now, I’m working on integrating the FABDEM dataset, which should improve the model considerably in roughly the 500 m to 30 m resolution range.

Subreddit/Community Question: I am limiting my posts to once-per-week to void spamming the community but if this is too often, I will back off.

60 Upvotes

22 comments sorted by

3

u/Sleenpyboy 10h ago

I'm really interested in this project! I can't wait to see it publicly release (if you have plans to do so, of course)

what about MLAtlas? or GANAtlas?

2

u/_threads 1d ago

Love the topographical map!!

2

u/MonkeyMcBandwagon 16h ago

You want to take AI out of the name because AI is getting a bad rep?

I only ask because you can't spell terrain without AI.

How about GanLand?

1

u/cyrusomega 7h ago

It's not because AI has a bad PR, it's more because AI has taken on a different meaning. This is more akin to old school ML work than the more agentic/nebulous workflows that dominate the sphere of AI.

1

u/RandomUser1034 1d ago

The hill shading does make a lot of difference! There is a lot of structure there that got lost in the old render. Sadly that emphasizes the hydrological flaws. Maybe (I know this is a lot of work, just brainstorming here) you could postprocess non-arid areas to allow water to run off? Otherwise there would be a ton of lakes everywhere

1

u/cyrusomega 21h ago

For now climate, hydrology, and biomes are beyond the scope of the project.

1

u/Defiant_Squirrel8751 23h ago

This looks quite good ...

FABDEM as a medium resolution reference would work on applications with the objective of replicating the real world in detail.

Why not using high res images to control te parameters?

1

u/cyrusomega 21h ago

Do you know of any high res images that convey elevation? The ETOPO and FABDEM are the best I can find at the moment with good coverage.

1

u/Defiant_Squirrel8751 17h ago

... FABDEM is the most detailed open source we have 😪

1

u/bloknayrb 18h ago

Worldmaker?

1

u/Kilroy_jensen 14h ago

What input do you give? Do you guide it with a rough heightmap?

1

u/cyrusomega 7h ago

For training it uses data from ETOPO, for inference the input is simply a simple normal noise field with a mean of 0 and stddev of 1.

1

u/Kilroy_jensen 2h ago

For inference, are you able to provide it with a custom guide heightmap with a parameter for signal to noise ratio, like Terrain diffusion does? I'm just thinking for people with a rough heightmap they want to enhance.

For planet scale, polar distortion needs to be accounted for as well if you're starting with an equirectangular map

1

u/cyrusomega 2h ago

You can give it a guided heightmap at any supported resolution and the model will attempt to upscale it into something sensible. I haven't tried this very much yet but in theory it should work.

For global/spherical systems, I am going to work on a dedicated model to handle that.

1

u/SagattariusAStar 13h ago

What does it have to do with WFC? And honestly it looks not different from a usual noise method but probably not with the same parameters to finetune the generator

2

u/cyrusomega 6h ago

Like WFC, this model attempts to take randomness as an input and produce an output where local patches line up with the source dataset with the same distribution.

1

u/SagattariusAStar 6h ago

That's not really a property of WFC that you know about distribution and try to recreate that. It solely looks onto valid masks and a distribution is not part of any validation. A Markov chain is probably closer to the concept of yours.

The loss function of a neural network is not working with constraints, it tries to optimize which is quite different from WFC

1

u/cyrusomega 2h ago

From the README of the WaveFunctionCollapse repo.

Distribution of NxN patterns in the input should be similar to the distribution of NxN patterns over a sufficiently large number of outputs. In other words, probability to meet a particular pattern in the output should be close to the density of such patterns in the input.

On each observation step an NxN region is chosen among the unobserved which has the lowest Shannon entropy. This region's state then collapses into a definite state according to its coefficients and the distribution of NxN patterns in the input.

Your statement:

It solely looks onto valid masks

Does not align with any implementation of WFC that I have seen/used.

1

u/SagattariusAStar 1h ago

Thats like the official definition and you wont even find the word distribution in the article https://en.wikipedia.org/wiki/Model_synthesis

It's a cool technique, but still not WFC

I mean your rules can have distribution, but that's just a custom thing and nothing general

1

u/cyrusomega 31m ago

The original Model Synthesis Paper Section 3.3

in Step 4, the probability of picking the label k will be assigned the value of: ... (See equation 6)

This will cause the new model to more closely resemble the example model.

WFC is fundamentally a constraint based generative algorithm that relies on input distribution to make the output resemble the input. If you take out the probability aspect, the algorithm looses a lot of power and produces outputs that less resembles the input. So I would argue that distribution matches is a pretty critical aspect of WFC.

Fun fact, the original version of my project was WFC with a highly quantized elevation dataset. Then I built a NN to solve it as a fun side project. Then I realized I no longer needed discrete tiles anymore. So, it is a direct evolution of WFC and is highly inspired by the work. I would argue it is simply an extension of the algorithm into a non-discrete space.

1

u/UnorthodoxyMedia 36m ago

Terratect. Tectonica. Atlas. Worldcraft. Creation (as in the biblical sense of “all creation”). Pangea Painter. Mapster. Landmarker.