A versatile toolkit for converting FBX 3D models to GLB format for web applications.
π¦ Install from PyPI | π Report Issues | π Documentation
- Multiple Conversion Methods:
- Autodesk FBX SDK (if available)
- Facebook's fbx2gltf command line tool
- Blender (if installed)
- Batch Processing: Convert multiple files at once with parallel processing
- Component Generation: Generate React/Three.js components from 3D models
- FBX Upgrading: Upgrade older FBX files to newer versions for better compatibility
- Preserve Quality: Maintain animations, materials, textures, and skeletal data
- Cross-Platform: Support for macOS, Windows, and Linux
# Install the latest version from PyPI
pip install fbx2glb
# Or install with specific version
pip install fbx2glb==0.1.0
# Clone the repository
git clone https://github.com/vuer-ai/fbx2glb.git
cd fbx2glb
# Install in development mode
pip install -e '.[dev]'
# Convert a single FBX file to GLB
fbx2glb input.fbx output.glb
# Convert with axis fixing and FBX upgrading
fbx2glb input.fbx output.glb --fix-axis --upgrade-fbx
# Check available conversion methods
fbx2glb --check-dependencies
# Generate a React/Three.js component
fbx2glb-component input.fbx src/components/MyModel.tsx
# Batch convert multiple files
fbx2glb-batch source_directory output_directory --recursive
# Install the latest version
pip install fbx2glb
# Install with specific version
pip install fbx2glb==0.1.0
# Install with development dependencies
pip install fbx2glb[dev]
git clone https://github.com/vuer-ai/fbx2glb.git
cd fbx2glb
pip install -e '.[dev]'
- PyPI: https://pypi.org/project/fbx2glb/
- Source: https://github.com/vuer-ai/fbx2glb
- Documentation: https://github.com/vuer-ai/fbx2glb#readme
- Issues: https://github.com/vuer-ai/fbx2glb/issues
For the best results and FBX file upgrading capabilities, install the Autodesk FBX SDK:
# Using the included Makefile
make install-fbx-sdk
- Download the FBX SDK from Autodesk
- Install the SDK for your platform
- The package will automatically detect the SDK installation
fbx2glb/
βββ fbx2glb/ # Main Python package
β βββ __init__.py # Package initialization
β βββ cli.py # Command-line interface
β βββ converter.py # Core conversion logic
β βββ batch.py # Batch processing
β βββ component.py # React component generation
β βββ utils.py # Utility functions
β βββ params.py # Parameter structures
β βββ fbx_upgrader.py # FBX file upgrading
βββ tools/ # Build tools and utilities
β βββ upgrade_fbx.cpp # C++ source for FBX upgrade tool
β βββ upgrade_fbx # Compiled binary
β βββ README.md # Tools documentation
βββ examples/ # Example files and models
βββ tests/ # Test suite
βββ local/ # SDK installers (macOS)
βββ sdk/ # SDK packages
βββ Makefile # Unified build system
βββ FBX2glTF/ # Facebook's FBX2glTF (git submodule)
# Convert a single file
fbx2glb input.fbx [output.glb] [options]
# Batch conversion
fbx2glb-batch source_directory [output_directory] [options]
# Generate React/Three.js component
fbx2glb-component input.fbx [output_component.tsx] [options]
# Specify conversion method
--method fbx-sdk|fbx2gltf|blender
# Force overwrite existing files
--force
# Enable verbose output
--verbose
# Upgrade FBX file before conversion
--upgrade-fbx
# Check dependencies
--check-dependencies
from fbx2glb import convert_file, batch_convert, generate_component
# Convert a single file
success = convert_file("input.fbx", "output.glb", method="fbx-sdk")
# Batch convert with parallel processing
successes, failures = batch_convert(
"source_dir",
"output_dir",
recursive=True,
parallel=4
)
# Generate React component
success = generate_component(
"input.fbx",
"MyModel.tsx",
component_name="MyModel"
)
The project includes a comprehensive Makefile for common tasks:
# Show all available commands
make help
# Install FBX SDK (macOS)
make install-fbx-sdk
# Build the FBX upgrade tool
make build-upgrade-tool
# Convert XBot example with FBX upgrading
make upgrade-xbot
# Convert XBot example (basic)
make convert-xbot
# Troubleshoot conversion issues
make troubleshoot
# Clean build artifacts
make clean
# Build Python package
make build-package
Create a .fbx2glb.json
file in your project root to customize conversion behavior:
{
"defaultMethod": "fbx-sdk",
"fallbackMethods": ["fbx2gltf", "blender"],
"blenderPath": "/Applications/Blender.app/Contents/MacOS/Blender",
"outputFormat": "glb",
"preserveAnimations": true,
"optimizeMeshes": true
}
- Pros: Best quality, supports FBX upgrading, handles all FBX versions
- Cons: Requires SDK installation, larger file sizes
- Use when: You need the highest quality conversion or have old FBX files
- Pros: Fast, good compression, open source
- Cons: Limited FBX version support
- Use when: You need fast conversion of modern FBX files
- Pros: Free, handles many formats, good for complex scenes
- Cons: Slower, requires Blender installation
- Use when: You need to process many different 3D formats
# Convert a single file
fbx2glb model.fbx model.glb
# Convert with specific method
fbx2glb model.fbx model.glb --method fbx2gltf
# Convert with FBX upgrading
fbx2glb old_model.fbx new_model.glb --upgrade-fbx
# Convert with axis fixing (fix orientation issues)
fbx2glb model.fbx model.glb --fix-axis
# Convert all FBX files in a directory
fbx2glb-batch models/ output/ --recursive
# Convert with parallel processing
fbx2glb-batch models/ output/ --parallel 4 --force
# Generate a React component
fbx2glb-component character.fbx CharacterModel.tsx
# Generate with custom name
fbx2glb-component character.fbx CharacterModel.tsx --name CharacterModel
-
FBX version too old:
# Use FBX upgrading fbx2glb old_model.fbx new_model.glb --upgrade-fbx
-
No conversion methods available:
# Check what's available fbx2glb --check-dependencies # Install FBX SDK make install-fbx-sdk
-
Blender not found:
# Specify Blender path fbx2glb model.fbx model.glb --blender-path /path/to/blender
# Run the troubleshooting command
make troubleshoot
# Check system information
fbx2glb --check-dependencies
# Show help
fbx2glb --help
# Run all tests
pytest
# Run specific test file
pytest tests/test_utils.py
# Run with coverage
pytest --cov=fbx2glb
# Build distribution
make build-package
# Publish to PyPI (requires credentials)
make publish-package
This project is available as a Python package on PyPI:
π¦ fbx2glb on PyPI
# Install the latest version
pip install fbx2glb
# Install specific version
pip install fbx2glb==0.1.0
# Install with development dependencies
pip install fbx2glb[dev]
- β Ready to use: Install and run immediately
- β
Command line tools:
fbx2glb
,fbx2glb-batch
,fbx2glb-component
- β Multiple conversion methods: FBX SDK, fbx2gltf, Blender
- β FBX upgrading: Upgrade old FBX files automatically
- β Axis fixing: Fix orientation issues in converted models
- β Batch processing: Convert multiple files efficiently
- β Component generation: Generate React/Three.js components
# Install
pip install fbx2glb
# Convert your first model
fbx2glb model.fbx model.glb --fix-axis
# Check what's available
fbx2glb --check-dependencies
MIT License - see LICENSE file for details.
Contributions are welcome! Please check the contributing guidelines for more information.
- Fork the repository
- Create a feature branch
- Install in development mode:
pip install -e '.[dev]'
- Make your changes
- Add tests for new functionality
- Run the test suite:
pytest
- Submit a pull request
- Facebook's FBX2glTF for the reference implementation
- Autodesk FBX SDK for the official FBX processing library
- Blender for the open-source 3D software integration