feldspar
feldspar copied to clipboard
Procedural voxel worlds for Bevy Engine.
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:
- CSG (constructive solid geometry)
- noise-based procedural generation
- real-time responsive terraforming
- LOD (level of detail) via chunk downsampling
- biplanar texture mapping and material blending
Project Structure
Contributing
Please see CONTRIBUTING.md.
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.