https://github.com/manankarnik/bevy_generative
Real-time procedural generation of maps, textures, terrain, planets and more!
https://github.com/manankarnik/bevy_generative
bevy-engine bevy-plugin graphics map-generation nix-flake noise planet-generation procedural-generation rendering rust terrain-generation texture-generation
Last synced: about 1 year ago
JSON representation
Real-time procedural generation of maps, textures, terrain, planets and more!
- Host: GitHub
- URL: https://github.com/manankarnik/bevy_generative
- Owner: manankarnik
- License: apache-2.0
- Created: 2023-04-28T05:14:16.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-19T07:48:24.000Z (over 1 year ago)
- Last Synced: 2025-03-28T10:02:29.121Z (over 1 year ago)
- Topics: bevy-engine, bevy-plugin, graphics, map-generation, nix-flake, noise, planet-generation, procedural-generation, rendering, rust, terrain-generation, texture-generation
- Language: Rust
- Homepage:
- Size: 123 KB
- Stars: 95
- Watchers: 2
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# bevy_generative

[](https://github.com/manankarnik/bevy_generative#license)

[](https://bevyengine.org/learn/book/plugin-development/#main-branch-tracking)
[](https://crates.io/crates/bevy_generative)
[](https://docs.rs/bevy_generative)
`bevy_generative` is a plugin written for the [bevy engine](https://bevyengine.org/) that allows real-time procedural generation of maps, textures, terrain, planets and more!
## Features
- Allows procedural generation of assets which can be directly integrated in your bevy game
- Handles real-time updating of image and mesh data as configuration for the asset changes
- Builds on native as well as wasm targets
- Allows saving generated assets (uses `rfd` for native, javascript blob for wasm)
- Serializes and deserializes components using `serde`
## Showcase
Check out [Procedra](https://procedra.netlify.app) [[Source](https://github.com/manankarnik/procedra)], a procedural generation web application that allows you to experiment with all the parameters and generate assets in real-time!
## Installation
Add `bevy_generative` to your rust project
```sh
cargo add bevy_generative
```
## Examples
Examples are provided in the [examples](./examples) directory. To run an example, clone this repository and invoke cargo like this:
```sh
cargo run --example map
```
## Bevy Compatibility
| bevy | bevy_generative |
| ---- | --------------- |
| 0.14 | 0.3, main |
| 0.13 | 0.2 |
| 0.12 | 0.1 |
## Contributing
Contributions are welcome! Issues, pull requests, feature requests and bug reports are appreciated. If you'd like to contribute to this project, please follow these steps:
1. Fork the repository.
2. Create a new branch with a descriptive name.
3. Make your changes or additions.
4. Test your changes.
5. Submit a pull request with a clear description of your work.
Please ensure your code passes all CI checks and includes relevant tests if applicable. Thank you for helping improve `bevy_generative`!
Your contribution will be dual-licensed as mentioned in the License section below.
## License
All code in this repository is dual-licensed under either:
- MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE)
or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))
at your option.
This means you can select the license you prefer!
This dual-licensing approach is the de-facto standard in the Rust ecosystem and there
are [very good reasons](https://github.com/bevyengine/bevy/issues/2373) to include both.