Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
U

ufbx

> 编程语言
Open source

Single source file FBX loader

1.4K stars0 likes0 views
WebsiteGitHub

About

Single source file FBX loader

ufbx

Single source file FBX file loader.

…

Documentation

Online documentation

Setup

Copy ufbx.h and ufbx.c to your project, ufbx.c needs to be compiled as C99/C++11 or more recent. You can also add misc/ufbx.natvis to get debug formatting for the types.

Features

The goal is to be at feature parity with the official FBX SDK.

  • Supports binary and ASCII FBX files starting from version 3000
  • Safe
    • Invalid files and out-of-memory conditions are handled gracefully
    • Loaded scenes are sanitized by default, no out-of-bounds indices or non-UTF-8 strings
    • Extensively tested
  • Various object types
    • Meshes, skinning, blend shapes
    • Lights and cameras
    • Embedded textures
    • NURBS curves and surfaces
    • Geometry caches
    • LOD groups
    • Display/selection sets
    • Rigging constraints
  • Unified PBR material from known vendor-specific materials
  • Various utilities for evaluating the scene (can be compiled out if not needed)
    • Polygon triangulation
    • Index generation
    • Animation curve evaluation / layer blending
    • CPU skinning evaluation
    • Subdivision surface evaluation
    • NURBS curve/surface tessellation
  • Progress reporting and cancellation
  • Support for Wavefront .obj files as well

Platforms

The library is written in portable C (also compiles as C++) and should work on almost any platform without modification. If compiled as pre-C11/C++11 on an unknown compiler (not MSVC/Clang/GCC/TCC), some functions will not be thread-safe as C99 does not have support for atomics.

The following platforms are tested on CI and produce bit-exact results:

  • Windows: MSVC x64/x86, Clang x64/x86, GCC MinGW x64
  • macOS: Clang x64, GCC x64
  • Linux: Clang x64/x86/ARM64/ARM32/PowerPC, GCC x64/x86/ARM64/ARM32, TCC x64/x86
  • WASI: Clang WASM

Testing

  • Internal tests run on all platforms listed above
    • 592 test cases / 604 FBX files
  • Fuzzed in multiple layers
    • Parsers (fbx binary/fbx ascii/deflate/xml/mcx/obj/mtl) fuzzed using AFL
    • Structured FBX binary/ascii fuzzing using AFL
    • Built-in fuzzing for byte modifications/truncation/out-of-memory
    • Semantic fuzzing for binary FBX and OBJ files
  • Public dataset: 4.7GB / 323 files
    • Loaded, validated, and compared against reference .obj files
  • Private dataset: 33.6GB / 12618 files
    • Loaded and validated
  • Static analysis for maximum stack depth on Linux GCC/Clang
  • In total 95% branch line coverage (99% partial line coverage)

Versioning

The latest commit in the master branch contains the latest stable version of the library.

Older versions are tagged as vX.Y.Z, patch updates (Z) are ABI compatible and work with older versions of the header from the same minor version (Y). Minor versions within a major verision (X) are expected to be source compatible after 1.0.0 but the 0.Y.Z releases can break for every minor release.

License

…

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •Supports binary and ASCII FBX files starting from version 3000
  • •Invalid files and out-of-memory conditions are handled gracefully
  • •Loaded scenes are sanitized by default, no out-of-bounds indices or non-UTF-8 strings
  • •Extensively tested
  • •Various object types
  • •Meshes, skinning, blend shapes
  • •Lights and cameras
  • •Embedded textures
  • •NURBS curves and surfaces
  • •Geometry caches

> Tags

Cccppfbxsingle-source

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言