A header-only C++11 library for loading and saving glTF 2.0 assets, featuring a new C-centric v3 API for low-overhead performance.
TinyGLTF is a header-only C++ library for loading and saving glTF 2.0 files, the standard format for 3D scenes and models. It solves the problem of integrating glTF support into C++ applications with minimal dependencies and overhead, providing both a traditional C++ API and a new low-level C API for maximum performance and control.
C++ developers working on game engines, graphics applications, or tools that need to import or export 3D assets in the glTF format, especially those targeting embedded systems, WebAssembly, or performance-critical environments.
Developers choose TinyGLTF for its simplicity, portability, and performance—it's a single-header library with no required external dependencies, supports a wide range of platforms, and offers a modern C API (v3) designed for zero-overhead parsing and easy language bindings.
Header only C++11 tiny glTF 2.0 library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a single-header library, TinyGLTF integrates easily into C++11 projects without complex build systems, as emphasized in the key features for minimal dependency management.
Features a custom JSON backend with optional SIMD acceleration (SSE2/AVX2/NEON) and a float32 fast-path, ensuring rapid parsing suitable for real-time applications like games.
Supports custom image loading, file streaming, and URI handling through user-defined callbacks, allowing tailored asset management, as shown in the extension and I/O sections.
Runs on Windows, Linux, macOS, iOS, Android, and WebAssembly with minimal dependencies, making it ideal for multi-platform development, as listed in the features.
The v3 API uses pure C POD structs and arena-based memory management for zero-overhead parsing and easy language binding, highlighted as a key rewrite in the v3 introduction.
Only supports Draco mesh decoding, not encoding, limiting its use for creating compressed glTF files, as admitted in the TODOs and feature list.
Built-in image loading is restricted to basic formats via stb_image; HDR or advanced formats like OpenEXR require custom implementation, noted in the TODOs as optional extensions.
v2 is in maintenance mode and will be sunset after mid-2026, forcing existing users to migrate to the new v3 API, which may require significant code changes due to different designs.
Focuses on parsing and serialization, lacking built-in support for animation, skinning, or rendering, which users must implement separately, as seen in the minimal example scope.