#bevy-plugin #gltf #fix #coordinate-system #bevy

bevy_fix_gltf_coordinate_system

A tiny plugin to fix the fact that Bevy does not respect the GLTF coordinate system

1 unstable release

Uses new Rust 2024

0.1.0 May 3, 2025

#1952 in Game dev

Download history 158/week @ 2025-04-28 122/week @ 2025-05-05 297/week @ 2025-05-12 138/week @ 2025-05-19 255/week @ 2025-05-26 595/week @ 2025-06-02 106/week @ 2025-06-09 148/week @ 2025-06-16 165/week @ 2025-06-23 103/week @ 2025-06-30

587 downloads per month
Used in 2 crates

MIT/Apache

6.5MB

Fix glTF coordinate system

crates.io docs.rs

A tiny plugin to fix the fact that Bevy does not respect the GLTF coordinate system.

Usage

Just add the plugin, that's it:

use bevy::prelude::*;
use bevy_fix_gltf_coordinate_system::prelude::*;

App::new()
  .add_plugins(DefaultPlugins)
  .add_plugins(FixGltfCoordinateSystemPlugin);

Now, all SceneRoots you spawn are now correctly oriented. If you want to exclude a specific scene, add a DoNotFixGltfCoordinateSystem to it.

Background

glTF uses +Z as forward, while Bevy uses -Z. However, the glTF importer ignores this fact and pretends that glTF and Bevy use the same coordinate system. The result is that all glTFs imported into Bevy are rotated by 180 degrees. This plugin fixes that.

Dependencies

~23–35MB
~634K SLoC