#bevy #bevy-plugin #blender

bevy_skein

Process glTF extras when spawning Scenes to insert Components using Reflection, such as when using Blender as an editor

12 releases

Uses new Rust 2024

0.3.0 Oct 15, 2025
0.3.0-rc.1 Sep 12, 2025
0.2.1 May 4, 2025
0.2.0 Apr 26, 2025
0.1.2 Mar 17, 2025

#148 in Game dev

Download history 179/week @ 2025-07-13 113/week @ 2025-07-20 111/week @ 2025-07-27 66/week @ 2025-08-03 106/week @ 2025-08-10 119/week @ 2025-08-17 105/week @ 2025-08-24 135/week @ 2025-08-31 268/week @ 2025-09-07 150/week @ 2025-09-14 88/week @ 2025-09-21 122/week @ 2025-09-28 286/week @ 2025-10-05 365/week @ 2025-10-12 212/week @ 2025-10-19 71/week @ 2025-10-26

942 downloads per month
Used in happy_feet

MIT/Apache

225KB
373 lines

Skein

A Bevy Plugin and a Blender extension for improving the efficiency of Bevy/Blender workflows: Store reflected component data in glTF extras using software like Blender, and insert components based on those extras.

tldr:

  1. Reflect component data in Bevy
  2. Apply Bevy Components to objects, meshes, or materials in Blender
  3. Export to glTF
  4. Components are instantiated when spawning in Bevy

Quickstart

Add the plugin and reflect component data (reflect(Component) is important!)

use bevy::prelude::*;
use bevy_skein::SkeinPlugin;

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

#[derive(Component, Reflect, Debug)]
#[reflect(Component)]
struct Player {
    name: String,
    power: f32,
    test: i32,
}
  • Install the Blender Extension
    • Drag and drop the installation link from the website, as detailed in the installation docs.
  • Fetch the Bevy registry using the Blender Operator
  • Select and apply a component
  • Export to glTF
  • Spawn a Scene from the glTF file, which will have components instantiated
commands.spawn(SceneRoot(asset_server.load(
    GltfAssetLabel::Scene(0).from_asset("my_export.gltf"),
)));

Use Cases

  • Apply Bevy Components in Blender
  • Replace materials from Blender with materials defined in Bevy (example)
  • Use Blender Drivers to power Bevy Component values

Compatible Bevy versions

The Bevy plugin and the Blender addon have separate release cycles and versions. The contact points are the BRP Registry API format for ingesting Bevy data into Blender and the glTF format we store data in to get data back into Bevy. These clearly-defined API points mean the Bevy Plugin and the Blender addon can evolve independently.

All versions of bevy_skein are currently compatible with all versions of the skein Blender addon.

Bevy version bevy_skein version
0.17 0.3
0.16 0.2
0.15 0.1
Blender version skein addon version
>4.2 0.1+
>4.2 branch main

Why is it named Skein?

Its a tool that aims to improve the efficiency of Bevy (group of birds) and Blender workflows.

A flock of wild geese or swans in flight, typically in a V-shaped formation.

A V formation is a symmetric V- or chevron-shaped flight formation. In nature, it occurs among geese, swans, ducks, and other migratory birds, improving their energy efficiency

Its also thread/yarn related which is cool too.

Dependencies

~54–91MB
~1.5M SLoC