Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bonsairobo/feldspar
Procedural voxel worlds for Bevy Engine.
https://github.com/bonsairobo/feldspar
Last synced: 3 months ago
JSON representation
Procedural voxel worlds for Bevy Engine.
- Host: GitHub
- URL: https://github.com/bonsairobo/feldspar
- Owner: bonsairobo
- License: mit
- Created: 2021-06-21T08:11:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-13T02:10:16.000Z (almost 2 years ago)
- Last Synced: 2024-01-21T02:08:37.743Z (5 months ago)
- Language: Rust
- Homepage:
- Size: 503 KB
- Stars: 69
- Watchers: 6
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Lists
- awesome-opensource-voxel - feldspar
README
# feldspar
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
[![Discord](https://img.shields.io/discord/770726405557321778.svg?logo=discord&colorB=7289DA)](https://discord.gg/CnTNjwb)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](https://en.wikipedia.org/wiki/Signed_distance_function)-based terrain for:
- [CSG (constructive solid geometry)](https://en.wikipedia.org/wiki/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](https://github.com/bonsairobo/feldspar/blob/main/CONTRIBUTING.md).
### Crates
![crates](assets/crates.png)
- `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](assets/dependencies.png)
- [ilattice](https://github.com/bonsairobo/ilattice-rs)
- [ndshape](https://github.com/bonsairobo/ndshape-rs)
- [ndcopy](https://github.com/bonsairobo/ndcopy-rs)
- [fast-surface-nets](https://github.com/bonsairobo/fast-surface-nets-rs)
- [block-mesh](https://github.com/bonsairobo/block-mesh-rs)
- [height-mesh](https://github.com/bonsairobo/height-mesh-rs)
- [grid-tree](https://github.com/bonsairobo/grid-tree-rs)
- [grid-ray](https://github.com/bonsairobo/grid-ray-rs)