""" blender_list_bones.py Usage: tooling/blender --background --python tooling/blender_list_bones.py -- Lists all bone names in a GLB/GLTF armature, sorted alphabetically. Used to verify bone naming after the January 2026 Quaternius naming update. """ import sys import bpy if __name__ == "__main__": argv = sys.argv if "--" not in argv: print("Usage: tooling/blender --background --python tooling/blender_list_bones.py -- ") sys.exit(1) args = argv[argv.index("--") + 1:] if len(args) < 1: print("ERROR: Provide a GLB/GLTF path.") sys.exit(1) input_path = args[0] bpy.ops.wm.read_factory_settings(use_empty=True) bpy.ops.import_scene.gltf(filepath=input_path) for obj in bpy.context.scene.objects: if obj.type == 'ARMATURE': print(f"ARMATURE: {obj.name} — {len(obj.data.bones)} bones") for b in sorted(obj.data.bones, key=lambda x: x.name): print("BONE: " + b.name) break else: print("ERROR: No armature found in the imported file.") sys.exit(1)