initial commit for standalone rust program

This commit is contained in:
grimsace
2026-04-21 14:01:33 -05:00
parent 2b42fe7ea7
commit 4295bb6b0f
7 changed files with 5246 additions and 180 deletions
+15 -15
View File
@@ -1,30 +1,30 @@
# advanced_erosion_terrain_heightmap_generation
A krita plugin designed to implement Runevision's (Skovbo Johansen) fast erosion filter on top of noise for realistic looking terrain.
A standalone Rust terrain generator using `egui`, inspired by Runevision's fast erosion filter and the reference material in `plan/`.
See here:
https://www.shadertoy.com/view/wXcfWn
https://www.shadertoy.com/view/sf23W1
https://blog.runevision.com/2026/03/fast-and-gorgeous-erosion-filter.html
## Plugin layout
## Project layout
The production Krita plugin lives under `pykrita/advanced_erosion_generator/`.
The `tests/` directory remains prototype-only reference code and is not imported by the plugin.
- `src/` contains the standalone Rust app and generator implementation.
- `tests/erosion_prototype.py` is the Python reference prototype used to guide the Rust port.
- `plan/` contains the inspiration and reference documents for the terrain look.
## Installing in Krita
## Running
Copy `pykrita/advanced_erosion_generator.desktop` and the `pykrita/advanced_erosion_generator/` folder into Krita's `pykrita` directory.
The current plugin implementation is pure Python and does not depend on `numpy` or the test virtual environment.
```bash
cargo run
```
## Current UI
The plugin adds `Tools > Scripts > Generate Advanced Erosion Terrain` and uses the active document resolution as the terrain output size.
The app uses an `egui` desktop interface with:
Controls:
- Generation Scale
- Erosion Scale
- Random Seed with a randomize button
- Advanced dropdown with Strength, Gully Weight, Detail, and Octaves
- A left control panel with `Generation` and `Advanced` tabs
- Generation controls for image width, image height, generation scale, erosion scale, and random seed
- Advanced controls for strength, gully weight, detail, and octaves
- A right preview area showing both the normalized heightmap and the shaded bumpmap