A fast, user and developper-friendly landscape generation library. Mirror of https://gitlab.com/SolarLiner/TerrainLib
LGPL-3.0 License
A fast, modular library to generate landscapes.
See CHANGELOG.md to lean about the novelties of each version.
Learning how the library is structured goes a long way in understanding how to operate the classes in this library. As such, you should read the section Extend the algorithms to learn more.
Every object is first initialized, then called upon. This allows a preparation step if needed, for the algorithms to bootstrap themselves. Generators and filters output a Terrain object, and Filters and Readers take in a Terrain object, so you can chain filters to achieve the desired effect.
The full documentation is available at https://solarliner.gitlab.io/terrainlib.
This project uses Pipenv to manage dev and production dependencies. Therefore, virtual environment creation and dependency installation is all done with a single command:
pipenv install --dev
There are 3 types of classes, typically; generators, filters and readers. The names should be straightforward enough, but here are descriptions about them:
Each kind has its own base class, that is nothing more than an abstract
__call__
function.
Any of these follow a two-step process:
__init__
function.__call__
in order to actually process__call__
function should return a Terrain object, or,All predefined algorithms in this library follow this convention, so see those for examples of implementation.
This project is licensed under a GNU LGPLv3 license. Non open-source, commercial projects are welcomed, but should ask for explicit licensing agreement. See the license file for more information.