{"id":16114733,"url":"https://github.com/solarliner/terrainlib","last_synced_at":"2026-01-11T05:51:19.868Z","repository":{"id":47225672,"uuid":"140204578","full_name":"SolarLiner/TerrainLib","owner":"SolarLiner","description":"A fast, user and developper-friendly landscape generation library. Mirror of https://gitlab.com/SolarLiner/TerrainLib","archived":false,"fork":false,"pushed_at":"2022-12-08T02:19:21.000Z","size":271,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-02-08T01:19:18.872Z","etag":null,"topics":["generation","landscape","library","procedural","python"],"latest_commit_sha":null,"homepage":"https://solarliner.gitlab.io/terrainlib","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolarLiner.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-08T21:40:18.000Z","updated_at":"2018-07-09T16:18:52.000Z","dependencies_parsed_at":"2023-01-25T03:30:55.110Z","dependency_job_id":null,"html_url":"https://github.com/SolarLiner/TerrainLib","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2FTerrainLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2FTerrainLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2FTerrainLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2FTerrainLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolarLiner","download_url":"https://codeload.github.com/SolarLiner/TerrainLib/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246794181,"owners_count":20834937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generation","landscape","library","procedural","python"],"created_at":"2024-10-09T20:15:36.524Z","updated_at":"2026-01-11T05:51:19.843Z","avatar_url":"https://github.com/SolarLiner.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![TerrainLib](docs_src/_static/Type.png)\n\nA fast, modular library to generate landscapes.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) to lean about the novelties of each version.\n\n## Use\n\nLearning how the library is structured goes a long way in understanding how to \noperate the classes in this library. As such, you should read the section \n[Extend the algorithms](#extend-the-algorithms) to learn more.\n\nEvery object is first initialized, then called upon. This allows a preparation \nstep if needed, for the algorithms to bootstrap themselves.\nGenerators and filters output a Terrain object, and Filters and Readers take in\na Terrain object, so you can chain filters to achieve the desired effect.\n\nThe full documentation is available at https://solarliner.gitlab.io/terrainlib.\n\n## Development install\n\nThis project uses Pipenv to manage dev and production dependencies. Therefore, \nvirtual environment creation and dependency installation is all done with a \nsingle command:\n```bash\npipenv install --dev\n```\n\n### Extend the algorithms\n\nThere are 3 types of classes, typically; **generators**, **filters** and \n**readers**. The names should be straightforward enough, but here are\ndescriptions about them:\n\n- **Generators** generate terrain out of input parameters. This allows terrain \nto be created without any prior material.\n- **Filters** act on the terrain by applying transformations. They take a \nterrain (and some inputs) and output another terrain, transformed.\n- **Readers** Read the terrain and output another type of object entirely. Use \nreaders to save an image of your terrain, a 3D mesh, etc.\n\nEach kind has its own base class, that is nothing more than an abstract \n`__call__` function.\n\nAny of these follow a two-step process:\n\n1. The generator is initialized with input parameters. This allows setting up \ninternal parameters, bootstrap routines, etc. but **does not generate the \nterrain**. This is done from the `__init__` function.\n2. The generator is then called through `__call__` in order to actually process \ndata in and/or out. The `__call__` function should return a Terrain object, or, \nin the case of a reader, the resulting object.\n\nAll predefined algorithms in this library follow this convention, so see those \nfor examples of implementation.\n\n## License\n\nThis project is licensed under a GNU LGPLv3 license. Non open-source, commercial\nprojects are welcomed, but should ask for explicit licensing agreement.  \nSee the [license file](LICENSE) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fterrainlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolarliner%2Fterrainlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fterrainlib/lists"}