Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

🚧 This project is in active beta development. This means the API is unstable, features may be added or removed, and breaking changes are likely to occur frequently and without notice as the design is refined.

pipeline coverage release pypi docs license

TerrainGen

A high-performance scientific terrain generation tool for interplanetary bodies.

TerrainGen can:

  • Generate synthetic terrain from scratch, or add fine detail to existing elevation models.
  • Populate craters and boulders from cumulative size-frequency distributions.
  • Model each crater's profile, age, degradation, irregularity.
  • Bake small boulders into the heightmap, and generate procedural 3D boulder models for the large ones.
  • Produce synthetic albedo maps with crater ejecta and rays that fade with crater age.
  • Model complex geologic features such as complex and secondary craters, boulder ejecta fields, dunes and wind ripples, layered strata terraced into benches and cliffs, fractured bedrock pavement, wind-carved ventifacts, and sand pooled in lows or trailing behind boulders.
  • Be extended through base classes in C++ or Python with custom size-frequency distributions, crater ages, profiles and degradation, albedo, sources, and layers.
  • GPU-accelerated operations for generating noise, craters, boulders, albedo, and more.
  • Generate deterministic results for the same seed on any grid, tile or thread count.
  • Integrate into simulations and other external workflows.

We also provide:

  • A modular C++ library with Python bindings and minimal dependencies.
  • Smart and tested defaults for various surface features.
  • A command-line interface that generates terrain from JSON configuration files.
  • A GUI for editing configurations and viewing the results in 3D.
  • Examples in C++, Python and JSON.
  • A standalone demo that streams TerrainGen detail into a planetary-scale renderer on the GPU while navigating around the Moon.
  • Example integrations with third-party tools such as Project Chrono, IsaacLab, and Newton.

For more information on the concepts behind TerrainGen and the API, see our latest documentation.

Getting Started

We recommended getting started by installing terraingenpy from PyPi and running the GUI.

pip install terraingenpy
terraingen --gui

Python

C++

Examples

Installation

Contributing

Documentation

Code Coverage

Citation

If you use TerrainGen for published research, please cite:

@software{maietta_terraingen,
  author  = {Maietta, Alex},
  title   = {{TerrainGen}: An open-source scientific terrain generation suite for planetary surfaces},
  url     = {https://github.com/alexmaietta/terraingen},
  version = {0.1.0},
  license = {BSD-3-Clause},
  year    = {2026}
}

License

TerrainGen is licensed under the BSD 3-Clause License.

Third-party code and assets keep their own licenses, listed in third_party/README.md.

Acknowledgements

TerrainGen draws inspiration from existing lunar terrain generation tools:

Name Organization Availability Capabilities Limitations
synthterrain NASA Ames Open source (Apache-2.0) Crater and boulder populations from size-frequency distributions, crater profiles and DEMs on flat terrain Doesn't generate surface detail or upscale existing DEMs, not actively contributed to.
lunasynth NASA JPL Open source (Apache-2.0) Adds craters and boulders to a lunar base DEM, down to 1 cm pixels, and renders images under varying camera and sun positions Project is not actively-maintained
DLES Terrain Crafting NASA JSC Not publicly released (paper) Enhances LOLA and NAC-derived DEMs of the lunar south pole to 20 cm with synthetic craters and boulders, including hand-placed craters from imagery Not publicly released,
PANGU University of Dundee / STAR-Dundee Commercial Multi-resolution planet and asteroid surfaces from real or fractal DEMs with statistical craters and boulders; GPU camera, LiDAR and thermal sensor simulation Commercial software

Metadata

Release files for terraingenpy 0.1.0.dev279

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for terraingenpy 0.1.0.dev279
File Size Uploaded
terraingenpy-0.1.0.dev279.tar.gz 1.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for terraingenpy 0.1.0.dev279
File
terraingenpy-0.1.0.dev279-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_x86_64.whl CPython 3.12 abi3 Linux glibc 2.34+ x86-64 Details
terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_aarch64.whl CPython 3.12 abi3 Linux glibc 2.34+ ARM64 Details
terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_x86_64.whl CPython 3.12 abi3 macOS 11.0+ x86-64 Details
terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
terraingenpy-0.1.0.dev279-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details
terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
terraingenpy-0.1.0.dev279-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64 Details
terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 49.2 MB

Release files / terraingenpy-0.1.0.dev279.tar.gz

Download URL terraingenpy-0.1.0.dev279.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
9181d09f8080f8a6488a74483275fe84c4c7a4ded2218a5ba23111ba06b86efd
BLAKE2b-256 checksum
How to use checksums
a11644670b7b5591a7ccbe2c8a4c934705d12a985bef53e79adad2e7842cf323
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp312-abi3-win_amd64.whl

Download URL terraingenpy-0.1.0.dev279-cp312-abi3-win_amd64.whl
Size 2.8 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
82319f7dc42a9aed0a0482d4896a5824558d6dacaf100094dd2dedb80ccc2262
BLAKE2b-256 checksum
How to use checksums
ea748b2291951ffacd34c79a25f09a571195128bb2935ab5266276cb2d309c94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_x86_64.whl
Size 3.8 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
ad180e4124520fa328c9e1e7effc6def743bbbf97cfef83c9b3f7283b204ba7e
BLAKE2b-256 checksum
How to use checksums
58b0799825787dad083e114a78e745138b40a80e9ce482f6e13b8203b37fad2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_aarch64.whl

Download URL terraingenpy-0.1.0.dev279-cp312-abi3-manylinux_2_34_aarch64.whl
Size 3.4 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64 abi3
SHA-256 checksum
How to use checksums
1a0db5342b5171cdddec60d0c2fbba9dcb4e029e3f48762e5acb38692b26201f
BLAKE2b-256 checksum
How to use checksums
cd748a4dbfe4b8d8c689be147a7005b3da4af801670632834ec9f5c8bb507aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_x86_64.whl
Size 3.0 MB
Tags CPython 3.12 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
b21744a1eac5fef3dc6cffa26606531672f5134c9ffa28a5e1a3c7ccb07a31a7
BLAKE2b-256 checksum
How to use checksums
e7e8faed10029283c487d627cba6325c3f94059a17297e569a208af233da3f3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_arm64.whl

Download URL terraingenpy-0.1.0.dev279-cp312-abi3-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e443c813ee298f36824f4162fc0ff42245eb27ad04cdb5db68eb33edc78d239
BLAKE2b-256 checksum
How to use checksums
d8541f832537959e50d824f2162fc771cc05e58264bd8f5b183815d1c36ab70e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp311-cp311-win_amd64.whl

Download URL terraingenpy-0.1.0.dev279-cp311-cp311-win_amd64.whl
Size 2.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cb805cd7f566df819592709d4175e2d818c795722e045954828679697e850c5b
BLAKE2b-256 checksum
How to use checksums
9cbca15cd8633fd66ba48f333ecd8f30299247d4d33e36eba285c97f13ef745a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
6653651180362cd0a821edce11d9ac6fdea71240b30015a23cae43ec35d94ba6
BLAKE2b-256 checksum
How to use checksums
6c856e7563b599dccda16730a563cfbc793811b624d00c9c81ba48530485aeea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL terraingenpy-0.1.0.dev279-cp311-cp311-manylinux_2_34_aarch64.whl
Size 3.4 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
519b0247bcd28f72a387c3a78f6486a7663a3d6cc6a0141686ee403619e069d4
BLAKE2b-256 checksum
How to use checksums
f64e3736b26f1eb247585608c48c3690ed867ddcae15e5f22007881a62eb7125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
cf43ec9c913b06ab276c6d9b171715b051ea533905efbacd33b972d80545dda1
BLAKE2b-256 checksum
How to use checksums
bf3b600d7fed3e5c2a4760526f2a3c723be56874b0bd3a78911e002fa23452e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_arm64.whl

Download URL terraingenpy-0.1.0.dev279-cp311-cp311-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec6063386d919c37d723a551798d892941d83a6230fc5e4aecef07bb41eb7be0
BLAKE2b-256 checksum
How to use checksums
d0bef8a7b903d79d97c2d8ae4a26c5b2f255072bd10fc4ea1903df4fbb954144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp310-cp310-win_amd64.whl

Download URL terraingenpy-0.1.0.dev279-cp310-cp310-win_amd64.whl
Size 2.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1124bff172d952bec0300b52d21d3c584a8c73d4aba3571dc069cb8fdca086d8
BLAKE2b-256 checksum
How to use checksums
d63fd239c746d7fe2ba0129b2145ec64ed3153671f6f1df38a7d622c1a702fb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_x86_64.whl
Size 3.8 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
4ea71bb3bb56827e4e9d3a63c61e385cc21907130c80f4569e3221dd64d85806
BLAKE2b-256 checksum
How to use checksums
0df0cd2ee5a8e8d0a56e42b19f1a1c1497b6fdc887fa58d90aebd12fd07aa655
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_aarch64.whl

Download URL terraingenpy-0.1.0.dev279-cp310-cp310-manylinux_2_34_aarch64.whl
Size 3.4 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
ca3379992f98016e1a70a5d5d803556a3879ce9fcd6d5eeaee80ee3f68a5a6ff
BLAKE2b-256 checksum
How to use checksums
98dea71abc145c2d5ac709bba539316c32ddb78c444cdaa2985623362f2b3c36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_x86_64.whl

Download URL terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_x86_64.whl
Size 3.0 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5a1eb77a99139fd6c69f36995191dd4653d51e96a9f0d68c96510b58d8c61156
BLAKE2b-256 checksum
How to use checksums
64f7a1c5341caf6ce893fdb79923b8c74625a19b7b254281af48c9bfe978239a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_arm64.whl

Download URL terraingenpy-0.1.0.dev279-cp310-cp310-macosx_11_0_arm64.whl
Size 2.9 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7ab85242300a8807f39b5f8de88bf836fbd24e34699195e9049703292953ef2
BLAKE2b-256 checksum
How to use checksums
4dcaf0fc440639f9c3e68dc8518911f7212e7928a0a1550d86a5e8574ad69582
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page