terrain-forge 0.7.0

A modular procedural generation engine for terrain, dungeons, and maps
Documentation

TerrainForge

Rust License: MIT Crates.io Documentation Build Status

TerrainForge Showcase

A comprehensive Rust library for procedural terrain and dungeon generation with semantic analysis capabilities.

Crates.io: https://crates.io/crates/terrain-forge

Migration: v0.7.0 guide ยท v0.6.0 guide

Features

  • 15 Generation Algorithms: BSP, Cellular Automata, WFC, Delaunay Triangulation, Glass Seam Bridging, Noise Fill, and more
  • Thread-safe: Algorithm trait is Send + Sync โ€” generate on any thread
  • Serializable configs: All algorithm configs implement Serialize/Deserialize
  • Spatial Analysis: Distance transforms, pathfinding, morphological operations
  • Semantic Layers: Game-agnostic metadata for entity spawning and region analysis
  • Advanced Prefab System: JSON support with transformations
  • Requirements System: Generate maps meeting specific constraints
  • Connectivity Utilities: Shortest-path extraction, path carving, marker connections
  • Grid utilities: Flood fill, region labeling, neighbor queries, line drawing built into Grid

Quick Start

[dependencies]
terrain-forge = "0.7"
use terrain_forge::{Grid, ops};

fn main() {
    let mut grid = Grid::new(80, 60);
    ops::generate("bsp", &mut grid, Some(12345), None).unwrap();
    println!("Generated {} floor tiles", grid.count(|t| t.is_floor()));
}

Novel Algorithm: Glass Seam Bridging

The Glass Seam Bridging Algorithm is a novel connectivity algorithm designed specifically for TerrainForge. It ensures map connectivity by finding the optimal set of tunnels to connect disconnected floor regions while minimizing total tunnel length.

๐Ÿ“„ Read the full algorithm specification
๐Ÿ“„ Download the research paper (PDF)

Key features:

  • Perimeter Gradient Descent (PGD) optimization for optimal tunnel endpoints
  • Edge pruning pipeline with Delaunay triangulation, angular sector, and occlusion filters
  • Multi-terminal support for connecting spawn points, exits, and POIs
  • Configurable optimization profiles from real-time to quality-focused generation

Connectivity Demonstration

Before GSB After GSB
Before GSB After GSB
97 disconnected regions (highly fragmented) 23 connected regions (76% reduction)
0.21 connectivity โ€ข 29.1% floors 0.78 connectivity โ€ข 31.2% floors

Color-coded semantic analysis showing dramatic connectivity improvement (+0.57 connectivity, +2.1% floors) on cellular automata caves (160ร—120 grid)

Algorithms

Algorithm Description Semantic Support
bsp Binary Space Partitioning - structured rooms โœ… for_rooms()
cellular Cellular Automata - organic caves โœ… for_caves()
dla Diffusion Limited Aggregation โœ… default()
drunkard Drunkard Walk - winding passages โœ… default()
maze Perfect maze generation โœ… for_mazes()
rooms Simple room placement โœ… for_rooms()
voronoi Voronoi diagram regions โœ… default()
wfc Wave Function Collapse โœ… default()
percolation Physics-based generation โœ… default()
diamond_square Fractal heightmaps โœ… default()
fractal Fractal terrain โœ… default()
noise_fill Noise-driven threshold fill โœ… default()
agent Multi-agent carving โœ… default()
glass_seam Region connector โœ… default()
room_accretion Brogue-style organic dungeons โœ… for_rooms()

Documentation

Version History

  • v0.7.0 - Code quality, thread safety, serialization, bug fixes, performance
  • v0.6.0 - Unified ops facade, pipeline model, NoiseFill expansion
  • v0.4.0 - Spatial Analysis & Quality of Life improvements
  • v0.3.0 - Semantic Layers and Requirements System
  • v0.2.0 - Advanced Algorithms (WFC, Percolation, Fractal)
  • v0.1.0 - Foundation with core algorithms and grid system

Demo Framework

# Generate basic terrain
cargo run --bin demo -- gen bsp -s 12345 -o output.png

# Semantic generation with visualization
cargo run --bin demo -- gen room_accretion --semantic --text -o semantic.txt

# Compare algorithms
cargo run --bin demo -- compare bsp cellular maze -s 12345

License

Licensed under the MIT License. See LICENSE for details.