About this project
Bevy Hanabi is a modern, GPU-driven particle system plugin for the Bevy game engine. It offloads most simulation and rendering work to the GPU via compute shaders, enabling real-time visual effects (VFX) at scale. The design is inspired by particle systems in industry-leading game engines.
**Key Features:**
- **Spawn:** Constant rate, one-time burst, repeated burst, resetting, activation/deactivation, and randomized parameters.
- **Initialize:** Position over shapes (circle, sphere, cone/truncated cone), random offsets, velocity over shapes, per-particle color/size/age/lifetime.
- **Update:** Euler motion integration, forces (gravity, radial, tangent, force fields, linear drag), lifetime, size/color changes over time, simulation conditions (always or only when visible).
- **Render:** Textured quads, generic 3D meshes, deformation (stretch, trails/ribbons), camera support (2D/3D, dual cameras, multiple viewports, HDR/bloom), billboarding, orientation modes, and screen-space sizing.
- **Expressions API:** Customize particle attributes (position, color, etc.) via a graph-based expression system.
**Usage:**
1. Add `bevy_hanabi = "0.19"` to `Cargo.toml`.
2. Register `HanabiPlugin` in your Bevy app.
3. Create an `EffectAsset` with spawn settings, initializers, updaters, and render modifiers.
4. Spawn a `ParticleEffect` component with a handle to the asset.
**Compatibility:**
- Compatible with Bevy versions >= 0.6; the `main` branch tracks the latest Bevy release.
- WebAssembly support (via WebGPU) is available since v0.13.
**Cargo Features:**
- `2d` (default): Enable 2D camera rendering.
- `3d` (default): Enable 3D camera rendering.
- Users can disable default features to optimize for a single camera type.
**Status:** Under heavy development; suitable for moderate-size effects. Feedback and contributions welcome.
**License:** Dual-licensed under MIT or Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.