A downloadable tool

Parallelised Worlds is a python based terrain generation tool to create consistent and detailed worlds. 

Generates heightfields for terrain maps. Heightfields are continuous and fully procedural.  Source code available at github.com/EddieMcT/Map_Generator

Parallelised Worlds are, as the name would suggest, entirely made in parallel. This means that every step in the calculations is fully deterministic, using basic arithmetic and a lot of fractal noise, with no simulations or random processes involved after setting initial parameters. Each point is calculated entirely independently of the others, and any number of maps can be made of a world at different zoom levels, locations, and resolutions without discontinuities.

This calculation starts with an approximation of tectonic plates as voronoi cells, samples using jittered coordinates to create fractal coastlines, then blends between these to create boundaries and mountain range, before using a new implementation of Dendry noise (Gaillard et al. 2019) to add rivers.

Currently the script (main.py) operates by reading parameters from world_parameters.txt and imaging_parameters.txt before sampling a grid of coordinates. Future plans include adding a GUI, and allowing for different sampling methods (ie spirals or other uneven patterns with baked-in LOD), further testing of the gpu implementation with cupy, and assorted design improvements. Heightfield outputs are automatically normalised and saved as uint16 pngs, in order to make optimal use of bit depth in game engines such as Unreal Engine. For now, values to undo normalisation are stored with image names in order to allow automated corrections.

This has been a passion project since 2020 and has slowly grown out of a love for DnD maps and other generators made for my home games. It has, in that time, also served as a continuous source of inspiration to learn more about programming and about the natural world. For the 2025 DirtJam I've included Dendry noise, made the project (hopefully) more user friendly, and overall improved the workflow. Dendry is the newest addition and subject to a lot of change in the future, particularly with regards to the way that the multiple length scales are blended together and the way in which world details inform river layouts. For performance reasons, all animations are made without dendry, and visualisations are created in Blender.

Generative AI and other disclosures.
Generative AI (chatGPT and Copilot via VSCode) assisted with code creation only.  Dendry noise is based on a paper by Mathieu Gaillard et al. and is my own interpretation of this method.

Updated 2 days ago
Published 6 days ago
StatusIn development
CategoryTool
AuthorEdward_McT

Download

Download
Zoom test display 9.9 MB
Download
zoom sample render.mp4 7 MB
Download
dendry test.png 1.9 MB
Download
Map_Generator-main.zip 5.3 MB
Download
Map_Generator-main (current version).zip 5.3 MB

Install instructions

Download includes a .zip of all source files. Requirements for python environment are included in requirements.txt but should be compatible with any recent python version as long as numpy and opencv are installed (and optionally cupy if running the code on gpu). Requirements for a gpu compatible installation are provided and have been tested in WSL but are not yet considered stable but are considerably faster if vram allows.

When running main.py, information will be read from world_parameters.txt and imaging_parameters.txt before generating the image. Optionally, custom arrays of coordinates to sample can be provided in a csv (untested) in order to use non-square-grid sampling strategies eg for LOD.

For performance reasons it is advised to initially set Dendry noise to 0 at it is computationally intensive. This should be replaced by Mountain noise values close to 1 unless consistent rivers are specifically needed.

Development log

Leave a comment

Log in with itch.io to leave a comment.