#gltf #bevy #fix

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

new 0.1.0 May 3, 2025

#2009 in Game dev

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

~22–34MB
~598K SLoC