Skip to main content

geotransport

Stochastic Geomorphological Transport for Terrain Erosion Simulation

Official Source Code Repository

A simulated terrain generated with this method.

A simulated terrain generated with this method.

Project Page

Nicholas McDonald Guillaume Cordonnier

Reading the Source Code

This repository contains a minimal reference implementation of our core algorithm - the generalized stochastic integration procedure - and includes example code for reproducing our error convergence plot and computing stochastic linear transport across a digital elevation model.

Note that this repository doesn't contain the full source code to perform the erosion simulation, but a version can be found in soillib. The reason for this separation is that this repository can remain archived with this reference implementation, while soillib can change continuously to adapt to needs.

This also helps keep the reference implementation simple and with minimal assumptions.

Using this Repository

The primary algorithm is implemented as a CUDA kernel operating on a silt::tensor (dependency: silt), exposed to python through nanobind. The easiest way to run the example scripts is to install the wheel file provided in the releases section of this repository using pip.

Repository Structure

  • /example: Example scripts and data
  • /ext: Submodule dependencies
  • /python: Python bindings generated w. nanobind
  • /source: C++/CUDA primary implementation

Building from Source

Note: Tested and working on Windows

After cloning, update the submodules:

git submodule update --init --recursive

Build from source and install from this repository using pip:

pip install .

Re-building for development:

pip install --no-build-isolation -ve .

Build directly using CMake:

cmake -S . -B build
cmake --build build

Build Wheel Distributable:

pip wheel .

Details

If you are building from source, please follow the instructions in silt to make sure you have all required dependencies.

Metadata

Release files for geotransport 1.0.0

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

Built distribution (wheel)

Table of built distributions (wheels) for geotransport 1.0.0
File Interpreter ABI Platform
geotransport-1.0.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details

Release files / geotransport-1.0.0-cp312-abi3-win_amd64.whl

Download URL geotransport-1.0.0-cp312-abi3-win_amd64.whl
Size 9.8 MB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
2f1705eda44a7274e1dcda5c167844ded24cc99986cdf1469d1e7a12479b74f6
BLAKE2b-256 checksum
How to use checksums
970557218c53cf26d738dc37889ce070ac2c59cd0ec5b3555d19ea72cdd0ae3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

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