glTF Overview

glTF

Runtime 3D Asset Delivery

glTF™ (GL Transmission Format) is a royalty-free specification for the efficient transmission and loading of 3D scenes and models by applications. glTF minimizes both the size of 3D assets, and the runtime processing needed to unpack and use those assets. glTF defines an extensible, common publishing format for 3D content tools and services that streamlines authoring workflows and enables interoperable use of content across the industry.

Participate in the glTF Community

glTF is run as an open project by Khronos. The specification, supporting materials and source code is developed and made freely available on GitHub.

Everyone is welcome to contribute to the code and provide feedback about the specification; you do not have to be a Khronos member to participate in the glTF community. Visit the "Ways to contribute to glTF" page in main glTF project on GitHub.

glTF Demo

‘Project “Polly” was produced to introduce all new features from glTF 2.0: Skinning, morphing and Physically Based materials are used in the demo. ‘Poly’ was developed using Blender and is used to test its glTF 2.0 exporter. The original Blender file will be provided to the glTF community for free!’

glTF is the "JPEG of 3D"

glTF is the JPEG of 3D

 

glTF 2.0 Scene Description Structure

The glTF Structure

 

glTF 2.0 Scalable, Portable PBR

glTF Extensions

Metallic-Roughness Material model

  • baseColor — base color
  • metallic — metalness
  • roughness — roughness
  • Simple to implement - mandated in core

Specular-Glossiness Material model

  • diffuse — reflected diffuse color 
  • specular — specular color
  • glossiness — glossiness
  • Slightly more resources - optional extension

COLLADA and glTF 3D Asset Formats

COLLADA and glTF 3D Asset Formats Positioning Statement

Download PDF version

Industry Support for glTF

Publicly stated support for glTF

Join the chat at https://gitter.im/KhronosGroup/glTF

glTF™ (GL Transmission Format) is a royalty-free specification for the efficient transmission and loading of 3D scenes and models by applications. glTF minimizes both the size of 3D assets, and the runtime processing needed to unpack and use those assets. glTF defines an extensible, common publishing format for 3D content tools and services that streamlines authoring workflows and enables interoperable use of content across the industry.

Specification

Please provide spec feedback and community updates by submitting issues. For quick questions, use gitter.

Quickstart

Overview

For developers

For artists

Blender exporter for creating and converting models with glTF 2.0.

Preview tools: - Sketchfab - BabylonJS Sandbox - Drag-and-drop viewer

Contents

glTF Tools

Converters and Exporters

Tool Input Output Description
Khronos Group Blender Exporter status Official exporter for Blender
3DS Max Exporter status Export glTF files using BabylonJS plugin for 3DS Max 2015 or later
Unity Exporter (Sketchfab fork) status Unity editor wizard that exports to glTF Format
Unity COLLADA & glTF Exporter Unity 5 & Unity 2017 status Commercial unity asset store editor extension to export COLLADA and glTF via collada2gltf
Sketchup export and import status Separate extensions for export and import
obj2gltf OBJ status Command-line converter
blendergltf status glTF exporter for Blender aimed at streaming scenes to other applications
Assimp Multiple status General-purpose online conversion pipeline
PiXYZ Studio Multiple status Interactively prepare & optimize any CAD data
FBX2glTF FBX status Command-line converter
fbx2gltf FBX, COLLADA, OBJ status Python tool to convert models to glTF2.0 format, model is parsed by FBX SDK.
Simplygon Cloud Multiple status Cloud based asset optimization pipeline
COLLADA2GLTF COLLADA status Official command-line converter, with updates for glTF 2.0 in progress
Cesium drag-and-drop converter OBJ, COLLADA status Online drag and drop converter
batchgltf COLLADA status Batch converter with GUI
FBX-glTF FBX status Plug-in and command-line converter
jgltf-obj OBJ status Java programmatic and command-line converters
Docker collada2gltf COLLADA status Docker container for Python web service, built on COLLADA2GLTF
collada2gltf-web-service COLLADA status Node.js web service, built on COLLADA2GLTF
Node.js collada2gltf COLLADA status Node.js programmatic wrapper for COLLADA2GLTF
osm2cesium OSM status Extracts buildings in OpenStreetMap and converts them to glTF

Optimizers

Tool Status Description
gltf-import-export status NPM package to convert between glb and gltf files
makeglb status Drag and drop browser tool to convert gltf to self contained binary glb
gltf-toolkit status Collection of tools and libraries to modify and optimize glTF assets for Windows Mixed Reality home
glTF Pipeline status Official Node.js command-line tool for optimizing glTF assets
gltf2glb status Python tool to convert glTF to Binary glTF
binary-gltf-utils status Node.js tool to convert glTF to Binary glTF

Validators

Tool Status Description
glTF Validator status Official command-line and drag-and-top tool to validate glTF assets against the specification

Editors and Modeling Tools

Tool Status Description
glTF VSCode Extension status Cross-platform JSON schema validation and previews for glTF 2.0 and 1.0
Blender Importer status Blender importer for glTF 2.0 (alpha)

Viewers and Debugging

Tool Status Description
BabylonJS Sandbox status Drag-and-drop online viewer for model preview and debugging, using BabylonJS
glTF Animation Visualizer status Frame-by-frame debugging for glTF animations.
glTF Viewer status Drag-and-drop viewer (web and desktop) for model preview and debugging, using three.js
QTEK Model Viewer status Drag-and-drop glTF2.0 viewer with high quality rendering and PBR material editing.

Applications

Application Status Description
Paint 3D by Microsoft status 3D creation tool
Remix 3D by Microsoft status Share and print 3D creations
Sketchfab status Platform to publish, share & discover 3D online and in VR
Wordpress (plugin) status Inline glTF renderer for WordPress
Archilogic status Web-based 3D platform for architecture and interiors
Aspose.3D status File Format APIs for creating, editing, and converting over 100 file formats

Loaders and Viewers

WebGL Engines

To compare WebGL-based glTF loaders, see gltf-test.

Engine Status Scope Related
three.js (loader) status All <gltf-model/> component
BabylonJS (loader) status All
Cesium (loader) status All Drag-and-drop viewer, tutorial
OSG.JS (loader) status All
Grimoire.js (loader) status Geometry and materials, partial animation
Hilo3d (loader) status All Doc
A-Frame (loader) status All Doc
PEX (loader) status Geometry and materials
GLBoost (loader) status ? Examples
xml3d.js (loader) status Geometry and materials
X3DOM (loader) status Geometry and materials
xeogl (loader) status Geometry and materials Tutorial

WebGL Sample Code

Sample Status Description
Sample glTF loader with WebGL PBR shader status Engine-agnostic reference implementation for PBR shading with WebGL in glTF 2.0 (source code)

Game Engines

Tool Status Description
Unity Loader status Unity3D library for exporting, loading, parsing, and rendering glTF assets
Godot Game Engine status Godot 3.0 fully supports glTF import

Languages

JavaScript / Node.js

Tool Status Description
gltf-viewer status Web component to display glTF models on a website
minimal-gltf-loader status A minimal, engine-agnostic JavaScript glTF Loader, with a raw WebGL 2 renderer example
gltf-walker status Convenience library for processing glTF
RedCube.js status glTF viewer without dependencies

C++

Tool Status Description
Tiny glTF loader status Header only C++ glTF parsing library, with Alembic→glTF and CyHair->glTF converters
yocto-gltf status Single file, header only, C++ glTF loading/writing automatically generated from the spec
glTF2-loader status C++14 glTF (2.0 only) parsing library, by Lugdunum3D
gltfpp status glTF 2.0 loader for C++14
TGen status Simple C++ Tangent Generator
Microsoft.glTF.CPP status A C++ library for serializing and deserializing gltf/glb files.
Cinder status Work-in-progress glTF importer
nvpro-pipeline status Research rendering pipeline by NVIDIA for minimizing CPU cost
AssetKit ? 3D asset importer/exporter/util library

C++ and Vulkan

Tool Status Description
Laugh Engine status Vulkan PBR and IBL renderer
Lugdunum3D status A modern cross-platform 3D rendering engine built with Vulkan and modern C++14
UX3D Engine status Cross-platform multi-threaded Vulkan 3D Engine with glTF 2.0 import and export

C#

Tool Status Description
C# glTF loader status C# reference loader for glTF
Aspose.3D for .NET status Import, export, and convert glTF

Go

Tool Status Description
gltf status go library for marshaling and unmarshaling glTF

Rust

Tool Status Description
Loader status A crate for loading glTF 2.0
Viewer status glTF 2.0 Viewer written in Rust

Haxe

Tool Status Description
haxe-gltf status A Haxe library for reading glTF

Java

Ada

Tool Status Description
Orka status The OpenGL 4.5 Rendering Kernel in Ada

TypeScript

Tool Status Description
gltf-typescript-generator status CLI to generate a TypeScript interface for glTF

Swift

Tool Status Description
GLTFSceneKit status glTF loader for SceneKit

Utilities

  • gltf-utilities - JavaScript utility library to help load glTF
  • wetzel - Generate Markdown documentation from JSON Schema

Stack Overflow

Presentations and Articles

Intros

Tutorials

All Presentations and Articles


We believe the true usefulness of glTF goes beyond the spec itself; it is an ecosystem of tools, documentation, and extensions contributed by the community. You are encouraged to get involved!