/feldspar

Procedural voxel worlds for Bevy Engine.

Primary LanguageRustMIT LicenseMIT

feldspar

Procedural voxel worlds for Bevy Engine.

Currently a work in progress!

Scope

This is not intended to be a highly generic voxel library. Namely it does not intend to support generic voxel data types. Rather it has an opinionated data model to achieve specific goals like:

  • SDF-based terrain for:
  • real-time responsive terraforming
  • LOD (level of detail) via chunk downsampling
  • biplanar texture mapping and material blending

Project Structure

Crates

crates

  • feldspar: the top-level crate that only contains executable targets like the map editor
  • feldspar-map: the map data model and operational Bevy plugin
    • streams map data from a database into the scene
    • performs voxel and octree queries
    • persists edits to a versioned database
  • feldspar-sim: a Bevy schedule that runs an RPG-like discrete time simulation in an isolated ECS world
  • feldspar-procgen: algorithms for procedurally generating maps
  • feldspar-renderer: a Bevy plugin that renders the currently loaded map
  • feldspar-gizmos: Bevy plugins that allow GUI interaction with the scene

Dependencies

This project has spawned several fundamental data structures and algorithms that are exposed as their own crates.

dependencies