Rule‑based object scattering for games and tools with clear rules, multiple distribution styles, and reproducible results. Use it to populate worlds with trees, rocks, props, resources, and decals.
This repository is a Rust workspace with:
- Core library:
map_scatter- fast, composable engine for rules, sampling, and layering. - Bevy plugin:
bevy_map_scatter- Bevy integration (Assets, ECS, async). - Examples:
map_scatter_examplesandbevy_map_scatter_examples.
- Building your own engine/tools? Start with the core crate:
crates/map_scatter. - Using Bevy? Start with the plugin:
crates/bevy_map_scatter.
The crate READMEs include:
- Practical use cases
- A short "how it works" (fields => sampling => layering)
- Quick Start and links to runnable examples
For architecture details, see crates/map_scatter/ARCHITECTURE.md.
- Data‑driven placement instead of bespoke loops
- Mix distribution styles (blue‑noise, grids, clustered, low‑discrepancy)
- Deterministic, chunked evaluation for performance and reproducibility
This project is dual-licensed under either:
