Skip to content

vuer-ai/fbx2glb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FBX2GLB

A versatile toolkit for converting FBX 3D models to GLB format for web applications.

PyPI version PyPI downloads License: MIT

πŸ“¦ Install from PyPI | πŸ› Report Issues | πŸ“– Documentation

Features

  • 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

Quick Start

Installation

From PyPI (Recommended)

# Install the latest version from PyPI
pip install fbx2glb

# Or install with specific version
pip install fbx2glb==0.1.0

From Source (Development)

# Clone the repository
git clone https://github.com/vuer-ai/fbx2glb.git
cd fbx2glb

# Install in development mode
pip install -e '.[dev]'

Basic Usage

# 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

Installation

From PyPI (Recommended)

# 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]

From Source (Development)

git clone https://github.com/vuer-ai/fbx2glb.git
cd fbx2glb
pip install -e '.[dev]'

Package Information

FBX SDK Installation (Recommended)

For the best results and FBX file upgrading capabilities, install the Autodesk FBX SDK:

macOS

# Using the included Makefile
make install-fbx-sdk

Manual Installation

  1. Download the FBX SDK from Autodesk
  2. Install the SDK for your platform
  3. The package will automatically detect the SDK installation

Project Structure

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)

Usage

Command Line Interface

# 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]

Common 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

Python API

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"
)

Using the Makefile

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

Configuration

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
}

Conversion Methods

1. Autodesk FBX SDK (Recommended)

  • 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

2. Facebook's fbx2gltf

  • Pros: Fast, good compression, open source
  • Cons: Limited FBX version support
  • Use when: You need fast conversion of modern FBX files

3. Blender

  • Pros: Free, handles many formats, good for complex scenes
  • Cons: Slower, requires Blender installation
  • Use when: You need to process many different 3D formats

Examples

Basic Conversion

# 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

Batch Processing

# Convert all FBX files in a directory
fbx2glb-batch models/ output/ --recursive

# Convert with parallel processing
fbx2glb-batch models/ output/ --parallel 4 --force

Component Generation

# Generate a React component
fbx2glb-component character.fbx CharacterModel.tsx

# Generate with custom name
fbx2glb-component character.fbx CharacterModel.tsx --name CharacterModel

Troubleshooting

Common Issues

  1. FBX version too old:

    # Use FBX upgrading
    fbx2glb old_model.fbx new_model.glb --upgrade-fbx
  2. No conversion methods available:

    # Check what's available
    fbx2glb --check-dependencies
    
    # Install FBX SDK
    make install-fbx-sdk
  3. Blender not found:

    # Specify Blender path
    fbx2glb model.fbx model.glb --blender-path /path/to/blender

Getting Help

# Run the troubleshooting command
make troubleshoot

# Check system information
fbx2glb --check-dependencies

# Show help
fbx2glb --help

Development

Running Tests

# Run all tests
pytest

# Run specific test file
pytest tests/test_utils.py

# Run with coverage
pytest --cov=fbx2glb

Building the Package

# Build distribution
make build-package

# Publish to PyPI (requires credentials)
make publish-package

PyPI Package

This project is available as a Python package 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]

Package Features

  • βœ… 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

Quick Start with PyPI

# Install
pip install fbx2glb

# Convert your first model
fbx2glb model.fbx model.glb --fix-axis

# Check what's available
fbx2glb --check-dependencies

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please check the contributing guidelines for more information.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Install in development mode: pip install -e '.[dev]'
  4. Make your changes
  5. Add tests for new functionality
  6. Run the test suite: pytest
  7. Submit a pull request

Acknowledgments

About

Convert FBX 3D models to GLB format for web applications. Available on PyPI: pip install fbx2glb

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published