MCPcopy Index your code
hub / github.com/doceazedo/sprinkles

github.com/doceazedo/sprinkles @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
1,570 symbols 3,344 edges 97 files 71 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🍩 Sprinkles

Sprinkles is a GPU-accelerated particle system for the Bevy game engine with a built-in dedicated visual editor.

⛹️ Check out all the examples here!

Usage

Add bevy_sprinkles to your project:

[dependencies]
bevy_sprinkles = "0.2"

Add the plugin to your Bevy app:

use bevy::prelude::*;
use bevy_sprinkles::prelude::*;

fn main() {
    App::new()
        .add_plugins((DefaultPlugins, SprinklesPlugin))
        .run();
}

Spawn a particle system from a RON asset file:

fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.spawn(Particles3d {
        handle: asset_server.load("my_effect.ron"),
    });
}

Editor

Sprinkles comes with a visual editor for designing particle systems. To run it from the repository:

cargo editor

Or install the editor globally:

cargo install bevy_sprinkles_editor

Then run it from anywhere with the sprinkles command.

Documentation

Documentation is available at docs.rs.

Bevy version table

Bevy Sprinkles
0.19 main
0.18 0.1 - 0.2

Features

  • GPU particle simulation & sorting
  • Fully fledged built-in visual editor
  • 3D support (2D is planned)
  • PBR material support (custom shaders is planned)
  • Automatic GPU instancing across emitters & systems
  • Particle collision
  • Curl noise turbulence
  • Billboard & velocity-aligned transform modes
  • Sub-emitters

Acknowledgements

Godot's particle system is a huge source of inspiration for Sprinkles, and we aim to reach feature parity at some point. Thank you for all it's contributors.

Brackeys' video on making VFX with Godot was what inspired me to work on a similar system for Bevy and adapt some of those VFXs to it.

All bundled textures are provided by the very talented and generous Kenney.

License

Licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Project examples and bundled textures are licensed under CC0.

The editor includes two icon sets:

The donut icon is an edited version of the Noto Emoji, licensed under Apache 2.0.

Extension points exported contracts — how you extend this code

CurveControl (Interface)
(no doc) [3 implementers]
crates/bevy_sprinkles_editor/src/ui/widgets/curve_edit/mod.rs
PickerControl (Interface)
(no doc) [3 implementers]
crates/bevy_sprinkles_editor/src/ui/widgets/color_picker/mod.rs

Core symbols most depended-on inside this repo

get
called by 320
crates/bevy_sprinkles_editor/src/ui/widgets/vector_edit.rs
clone
called by 209
crates/bevy_sprinkles_editor/src/ui/widgets/variant_edit.rs
is_empty
called by 88
crates/bevy_sprinkles/src/asset/mod.rs
get
called by 45
crates/bevy_sprinkles/src/textures/baked.rs
with_alpha
called by 42
crates/bevy_sprinkles_editor/src/ui/widgets/button.rs
hash
called by 36
crates/bevy_sprinkles/src/asset/mod.rs
load
called by 35
crates/bevy_sprinkles/src/textures/preset.rs
as_str
called by 28
crates/bevy_sprinkles_editor/src/ui/components/binding/mod.rs

Shape

Function 726
Class 445
Method 342
Enum 55
Interface 2

Languages

Rust100%

Modules by API surface

crates/bevy_sprinkles_editor/src/ui/widgets/curve_edit/mod.rs83 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/color_picker/mod.rs66 symbols
crates/bevy_sprinkles/src/asset/mod.rs66 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/gradient_edit/mod.rs65 symbols
crates/bevy_sprinkles_editor/src/ui/components/binding/mod.rs62 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/dialog.rs52 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/text_edit.rs48 symbols
crates/bevy_sprinkles/src/runtime.rs41 symbols
crates/bevy_sprinkles_editor/src/ui/components/data_panel.rs39 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/variant_edit.rs37 symbols
crates/bevy_sprinkles_editor/src/ui/components/project_selector.rs37 symbols
crates/bevy_sprinkles_editor/src/ui/widgets/button.rs35 symbols

For agents

$ claude mcp add sprinkles \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact