[PROJECT][10 JAN 2026]

CARTOGRAPHY ENGINE

A procedural world-map generator written in Rust with WebAssembly bindings. Renders Voronoi-based continents with erosion simulation.

RUSTWEBASSEMBLYTYPESCRIPTCANVAS API
RUSTWASMGENERATIVE

Overview

Cartography Engine is a procedural terrain generation system that produces realistic-looking continental maps. It combines Voronoi tessellation with hydraulic erosion simulation to create natural-looking coastlines, mountain ranges, and river systems.

The core algorithm runs in Rust, compiled to WebAssembly for browser-based rendering. A TypeScript wrapper handles the Canvas API rendering pipeline.

Technical Architecture

Generation Pipeline

The map generation follows a multi-stage pipeline:

  1. Seed Generation — Poisson disk sampling for Voronoi cell centers
  2. Plate Tectonics — Simulated tectonic plates with drift vectors
  3. Elevation Mapping — Perlin noise + plate boundary elevation
  4. Hydraulic Erosion — Water flow simulation over 10,000 iterations
  5. Biome Assignment — Temperature/moisture-based Whittaker classification
  6. River Tracing — Downhill flow accumulation algorithm

Core Algorithm

rust
pub fn generate_terrain(config: &TerrainConfig) -> TerrainMap {
    let voronoi = VoronoiDiagram::from_poisson_disk(
        config.width,
        config.height,
        config.cell_density,
    );

    let plates = TectonicPlates::generate(
        &voronoi,
        config.num_plates,
    );

    let mut elevation = ElevationMap::from_plates(&plates, &voronoi);
    elevation.apply_perlin_noise(config.noise_octaves);

    let erosion = HydraulicErosion::new(config.erosion_iterations);
    erosion.apply(&mut elevation);

    TerrainMap::new(voronoi, elevation)
}

开发动机

地图生成一直是程序化内容生成中最迷人的领域之一。从 Dwarf Fortress 到 Minecraft,程序化地形塑造了无数玩家的探索体验。

这个项目的目标是创建一个足够灵活的引擎,能够生成从小岛到大陆尺度的地形,同时保持视觉上的自然感。

Performance

Metric Value
1024x1024 map generation ~2.3s
Erosion (10k iterations) ~1.8s
WASM bundle size 142 KB (gzipped)
Browser rendering (Canvas) 60fps

Future Plans

  • GPU-accelerated erosion via WebGPU compute shaders
  • Real-time parameter adjustment with live preview
  • Export to heightmap formats (PNG, RAW)
  • Climate simulation for seasonal biome variation