GlTF#glTF 2.0
{{Short description|3D scene and model file format}}
{{Lowercase title}}
{{Infobox file format
| name = glTF
| icon = 150px
| iconcaption =
| icon_size = 150px
| screenshot =
| screenshot_size =
| caption =
| _noextcode =
| extension = .gltf
,.glb
| _nomimecode =
| mime = model/gltf+json, model/gltf-binary
| type_code =
| uniform_type =
| conforms_to =
| magic =
| developer = Khronos Group
| released = {{Start date and age|2015|10|19|df=yes}}{{cite web|url=https://www.khronos.org/news/press/khronos-finalizes-gltf-1.0-specification|title=Khronos Finalizes glTF 1.0 Specification - Khronos Group Press Release|date=19 October 2015 |publisher=}}
| latest_release_version = 2.0.1
| latest_release_date = {{Start date and age|2021|10|11|df=yes}}{{cite web|url=https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html |title=GLTF™ 2.0 Specification }}
| genre = 3D computer graphics
| container_for =
| contained_by =
| extended_from = JSON
| extended_to =
| standard =
| free =
| url = {{url|https://khronos.org/gltf}}
}}
glTF (Graphics Library Transmission Format or GL Transmission Format and formerly known as WebGL Transmissions Format or WebGL TF) is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb (binary). Both .gltf and .glb files may reference external binary and texture resources. Alternatively, both formats may be self-contained by directly embedding binary data buffers (as base64-encoded strings in .gltf files or as raw byte arrays in .glb files).{{cite web |title=glTF 2.0 |url=https://docs.blender.org/manual/en/2.80/addons/io_scene_gltf2.html#file-format-variations |website=blender.org |accessdate=29 October 2020}}{{cite web |last1=Simkin |first1=Aliaksei |title=Behind the scene of 3D Magic |url=https://stayrelevant.globant.com/en/gltf-behind-the-scene-of-3d-magic/ |website=globant.com |date=27 November 2019 |accessdate=29 October 2020}} An open standard developed and maintained by the Khronos Group, it supports 3D model geometry, appearance, scene graph hierarchy, and animation.{{cite web |title=glTF (GL Transmission Format) Family |url=https://www.loc.gov/preservation/digital/formats/fdd/fdd000498.shtml |website=loc.gov |date=10 June 2019 |accessdate=29 October 2020}} It is intended to be a streamlined, interoperable format for the delivery of 3D assets, while minimizing file size and runtime processing by apps.{{cite web |last1=Hamilton |first1=Ian |title=Oculus Executive Calls For 3D Equivalent Of JPEG To Build The Metaverse |url=https://uploadvr.com/john-carmack-metaverse-gltf/ |website=uploadvr.com |date=22 July 2016 |accessdate=29 October 2020}} As such, its creators have described it as the "JPEG of 3D."
Overview
The glTF format stores data primarily in JSON. The JSON may also contain blobs of binary data known as buffers, and refer to external files, for storing mesh data, images, etc. The binary .glb format also contains JSON text, but serialized with binary chunk headers to allow blobs to be directly appended to the file.
The fundamental building blocks of a glTF scene are nodes. Nodes are organized into a hierarchy, such that a node may have other nodes defined as children. Nodes may have transforms relative to their parent. Nodes may refer to resources, such as meshes, skins, and cameras. Meshes may refer to materials, which refer to textures, which refer to images. Scenes are defined using an array of root nodes.{{cite web |title=Scenes and Nodes |url=https://github.khronos.org/glTF-Tutorials/gltfTutorial/gltfTutorial_004_ScenesNodes.html |website=glTF Tutorials |publisher=Khronos |access-date=2023-10-03}}
Most of the top-level glTF properties use a flat hierarchy for storage. Nodes are saved in an array and are referred to by index, including by other nodes. A glTF scene refers to its root nodes by index. Furthermore, nodes refer to meshes by index, which refer to materials by index, which refer to textures by index, which refer to images by index.{{cite web |title=The Basic Structure of glTF |url=https://github.khronos.org/glTF-Tutorials/gltfTutorial/gltfTutorial_002_BasicGltfStructure.html |website=glTF Tutorials |publisher=Khronos |access-date=2023-10-03}}
All glTF data structures support being extended using a JSON property, allowing arbitrary JSON data to be added.
Releases
= glTF 1.0 =
Members of the COLLADA working group conceived the file format in 2012.{{cite web |last1=Houston |first1=Ben |title=glTF: Everything You Need to Know |url=https://www.threekit.com/blog/gltf-everything-you-need-to-know |website=threekit.com |accessdate=29 October 2020}} At SIGGRAPH 2012, Khronos presented a demo of glTF, which was then called WebGL Transmissions Format (WebGL TF). On October 19, 2015, Khronos released the glTF 1.0 specification.
== Adoption of glTF 1.0 ==
At SIGGRAPH 2016, Oculus announced their adoption of glTF citing the similarities to their ovrscene format.{{cite web|url=https://www.khronos.org/assets/uploads/developers/library/2016-siggraph/glTF-MobileVR-Oculus-BOF-Update-SIGGRAPH_Jul16.pdf |title=Update |date=2016 |website=www.khronos.org |access-date=2019-06-19}} In October 2016, Microsoft joined the 3D Formats working group at Khronos to collaborate on glTF.{{cite web|url=https://blogs.windows.com/buildingapps/2016/10/28/bringing-3d-to-everyone-through-open-standards/|title=Bringing 3D to everyone through open standards|date=28 October 2016|website=Windows Developer Blog}}
= glTF 2.0 =
The second version, glTF 2.0, was released in June 2017, and is a complete overhaul of the file format from version 1.0, with most tools adopting the 2.0 version. Based on a proposal by Fraunhofer{{cite web|url=https://www.youtube.com/watch?v=0eWUzCa_M0E&t=4311s|title=Physically Based Materials in glTF - Current State. M. Limper, T. Sturm, SIGGRAPH 2016 WebGL & glTF BOF (July 27, 2016)|website=YouTube |date=2 August 2016 }} originally presented at SIGGRAPH 2016, physically based rendering (PBR) was added, replacing WebGL shaders used in glTF 1.0.{{cite web |title=glTF 2.0 |url=https://www.augmania.com/gltf-2-0-perfect-3d-file-format-ar/ |website=augmania.com |accessdate=29 October 2020 |archive-date=1 November 2020 |archive-url=https://web.archive.org/web/20201101003003/https://www.augmania.com/gltf-2-0-perfect-3d-file-format-ar/ |url-status=dead }} glTF 2.0 added the GLB binary format into the base specification. Other upgrades include sparse accessors and morph targets for techniques such as facial animation, and schema tweaks and breaking changes for corner cases or performance such as replacing top-level glTF object properties with arrays for faster index-based access.{{cite web|url=https://github.com/KhronosGroup/glTF/issues/831|title=glTF 2.0 syntax changes and JSON encoding restrictions · Issue #831 · KhronosGroup/glTF|website=GitHub|language=en|access-date=2017-09-26}} There is ongoing work towards import and export in Unity{{Citation|title=UnityGLTF: Runtime GLTF Loader for Unity3D|date=2017-09-26|url=https://github.com/KhronosGroup/UnityGLTF|publisher=The Khronos Group|accessdate=2017-09-26}} and an integrated multi-engine viewer and validator.{{cite web|url=https://github.com/KhronosGroup/glTF/issues/1081|title=Web-based client-side preview and validation · Issue #1081 · KhronosGroup/glTF|website=GitHub|language=en|access-date=2017-09-26}}
== Adoption of glTF 2.0 ==
On March 3, 2017, Microsoft announced that they will be using glTF 2.0 as the 3D asset format across their product line, including Paint 3D, 3D Viewer, Remix 3D, Babylon.js, and Microsoft Office. Sketchfab also announced support for glTF 2.0. As of 2019, the glTF and GLB formats are used on and supported by companies including DGG, UX3D, Sketchfab, Facebook,{{Cite web |last=Artiukh |first=Yuri akella |date=2018-10-25 |title=How Facebook 3D Photos Work |url=https://medium.com/@akella/how-facebook-3d-photos-work-8424cf48f061 |access-date=2025-05-22 |website=Medium |language=en}} Microsoft, Oculus, Google, Adobe, Box, TurboSquid, Unreal EngineAs of Unreal 5.1: {{cite web |title=Importing glTF Files |url=https://docs.unrealengine.com/5.1/en-US/importing-gltf-files-into-unreal-engine/ |website=Unreal Engine 5.1 Documentation |publisher=Epic Games |access-date=2023-05-29}} and Qt Quick 3D.{{Cite news|url=https://developers.googleblog.com/2018/09/introducing-new-apis-to-improve.html|title=Introducing new APIs to improve augmented reality development with ARCore|work=Google Developers Blog|access-date=2018-09-28|language=en-US}}{{cite web |last1=Haslam |first1=Oliver |title=Adobe's new Aero app lets you create AR experiences on iPhone and iPad |url=https://www.imore.com/adobes-new-aero-app-lets-you-create-ar-experiences-iphone-and-ipad |website=imore.com |date=4 November 2019 |accessdate=29 October 2020}} The format has been noted as an important standard for augmented reality, integrating with modeling software such as Autodesk Maya, Autodesk 3ds Max, and Poly.{{cite web |title=glTF is a huge deal for VR + AR |url=https://www.worldviz.com/post/gltf-is-a-huge-deal-for-vr-ar-heres-why-were-embracing-it |website=worldviz.com |accessdate=29 October 2020}}{{cite web |last1=Nichols |first1=Andy |title=What is new in Qt Quick 3D 6.0 |url=https://www.qt.io/blog/what-is-new-in-qt-quick-3d-6.0 |website=Qt Blog |publisher=The Qt Company |access-date=1 December 2022}}
In February 2020, the Smithsonian Institution launched their Open Access Initiative, releasing approximately 2.8 million 2D images and 3D models into the public domain, using glTF for the 3D models.{{cite web |last1=Burns |first1=Chris |title=Smithsonian Open Access initiative releases loads of 3D models to public domain |url=https://www.slashgear.com/smithsonian-open-access-initiative-releases-loads-of-3d-models-to-public-domain-26611336/ |website=slashgear.com |date=26 February 2020 |accessdate=29 October 2020}}
In July 2022, glTF 2.0 was released as the ISO/IEC 12113:2022 International Standard.{{Cite web |date=2022-07-26|title=ISO/IEC 12113:2022 Information technology|url=https://www.iso.org/standard/83990.html|website= International Organization for Standardization (ISO)|language=en-US}} Khronos stated they will make regular submissions to bring updates and new widely adopted glTF functionality into refreshed versions of ISO/IEC 12113 to ensure that there is no long-term divergence between the ISO/IEC and Khronos specifications.{{Cite web |title=Khronos glTF 2.0 released as an ISO/IEC International Standard|url=https://develop3d.com/collaborate/new-gltf-2-0-international-standard-web-3d-asset-released/|website=develop3d.com|date=5 August 2022 }}
The open-source game engine Godot supports importing glTF 2.0 files since version 3.0 and export since version 4.0.{{Cite web |last=Lee |first=Ernest |title=Introducing the Godot glTF 2.0 scene exporter |url=https://godotengine.org/article/introducing-the-godot-gltf-2-0-scene-exporter/ |date=2021-01-04 |access-date=2024-04-23 |website=Godot Engine |language=en}}
= Extensions =
The glTF format can be extended with arbitrary JSON to add new data and functionality. Extensions can be placed on any part of a glTF, including nodes, animations, materials, textures, and on the entire document. Khronos keeps a non-comprehensive registry of glTF extensions on GitHub, including all official Khronos extensions and a few third-party extensions.{{cite web |title=glTF Extension Registry |url=https://github.com/KhronosGroup/glTF/tree/main/extensions |website=KhronosGroup/glTF on GitHub |publisher=Khronos Group |access-date=2023-05-29}}
- PBR extensions model the physical appearance of real-world objects, allowing developers to create realistic 3D assets that have the correct appearance. As new PBR extensions are released, they continue to expand PBR capabilities within the glTF framework, allowing a wider range of scenes and objects to be realistically rendered as 3D assets.{{cite news |title=The glTF ecosystem adds further PBR realism for web renders |url=https://develop3d.com/visualisation/the-gltf-ecosystem-adds-further-pbr-realism-for-web-renders/ |access-date=20 December 2021 |publisher=Develop 3D |date=3 December 2020}}
- The KTX 2.0 extension for universal texture compression enables 3D models in the glTF format to be highly compressed and to use natively supported texture formats, reducing file size and boosting rendering speed.{{cite news |title=Khronos KTX 2.0 Ratified: Compress Your Textures with RapidCompact |url=https://rapidcompact.com/khronos-ktx2-basis/ |access-date=20 December 2021 |publisher=Rapid Compact |date=21 April 2021}}
- Draco is a glTF extension for mesh compression, to compress and decompress 3D meshes, to help reduce the size of 3D files. It compresses vertex attributes, normals, colors, and texture coordinates.{{cite news |title=Draco Compressed Meshes with glTF and 3D Tiles |url=https://cesium.com/blog/2018/04/09/draco-compression/ |access-date=20 December 2021 |publisher=Cesium |date=9 April 2018}}
- Various glTF extensions for game engine interoperability have been developed by OMI group. This includes extensions for physics shapes, physics bodies, physics joints, audio playback, seats, spawn points, and more.{{cite web |title=Who we are |url=https://omigroup.org/ |website=Open Metaverse Interoperability Group |publisher=OMI group |access-date=2023-05-29}}{{cite web |title=OMI glTF extensions |url=https://github.com/omigroup/gltf-extensions/tree/main/extensions/2.0 |website=omigroup/gltf-extensions on GitHub |publisher=OMI group |access-date=2023-05-29}}
- The VRM consortium has developed glTF extensions for advanced humanoid 3D avatars including dynamic spring bones and toon materials.{{cite web |title=What is VRM? |url=https://vrm-consortium.org/en/ |website=VRM Consortium |publisher=VRM Consortium, Inc. |access-date=2023-05-29}}{{cite web |title=VRM glTF extensions |url=https://github.com/vrm-c/vrm-specification/tree/master/specification |website=vrm-c/vrm-specification on GitHub |publisher=VRM Consortium, Inc. |access-date=2023-05-29}}
Derivative formats
On August 10, 2015, 3D Tiles, now a proposed OGC Community Standard, built on glTF to add a spatial data structure, metadata, and declarative styling for streaming massive heterogeneous 3D geospatial datasets.{{cite web|url=https://github.com/AnalyticalGraphicsInc/3d-tiles|title=Cesium 3D Tiles|website=GitHub |publisher=}}{{cite web|url=http://www.opengeospatial.org/pressroom/pressreleases/2466|title=OGC is considering a proposed work item for 3D Tiles as a Community Standard|publisher=}}{{cite web|url=https://portal.opengeospatial.org/files/70040|title=3D Tiles Community Standards Justification|publisher=}}
VRM, a model format for VR, is built on the .glb format.{{cite web |title=VRM specification |url=https://github.com/vrm-c/vrm-specification/blob/master/specification/0.0/README.md |website=github.com |accessdate=29 October 2020}} It is a 3D humanoid avatar specification and file format.{{cite web |title=VRM |url=https://www.khronos.org/assets/uploads/developers/library/2019-siggraph-asia/VRM-Extending-glTF-for-Portable-Humanoid-Avatars_SIGGRAPH-Asia_Nov19.pdf |website=khronos.org |accessdate=29 October 2020}}
Software ecosystem
Khronos maintains the glTF Sample Viewer for viewing glTF assets. Khronos also maintains the glTF Validator for validating if 3D models conform to the glTF specification.{{cite news |title=Khronos 3D Viewer Program |url=https://gfxspeak.com/2021/06/16/khronos-viewer-program/ |access-date=20 December 2021 |publisher=Graphic Speak |date=16 June 2021}}{{cite web|url=https://www.khronos.org/assets/uploads/developers/library/overview/gltf-overview.pdf |title=Overview |website=www.khronos.org |access-date=2019-06-19}}
glTF loaders are in open-source WebGL engines{{Citation |title=KhronosGroup/glTF |date=2025-04-10 |url=https://github.com/KhronosGroup/glTF#webgl-engines |access-date=2025-04-13 |publisher=The Khronos Group}} including PlayCanvas, Three.js, Babylon.js, Cesium,{{Cite web |title=Cesium: The Platform for 3D Geospatial |url=https://cesium.com |access-date=2025-04-13 |website=Cesium |language=en-US}} PEX,{{Citation |title=pex-gl/pex |date=2025-03-10 |url=https://github.com/pex-gl/pex |access-date=2025-04-13 |publisher=pex-gl}} xeogl,{{Cite web |last= |title=xeogl - WebGL-based 3D visualization engine |url=http://xeogl.org/ |access-date=2025-04-13 |website=www.xeogl.org |language=en}} and A-Frame.{{Cite web |title=A-Frame – Make WebVR |url=https://aframe.io/ |access-date=2025-04-13 |website=A-Frame |language=en}} The Godot game engine supports and recommends the glTF format, with both import and export support.{{Cite web|title=Importing 3D scenes|url=https://docs.godotengine.org/en/stable/getting_started/workflow/assets/importing_scenes.html|access-date=2021-09-27|website=Godot Engine documentation|language=en|archive-date=2021-10-22|archive-url=https://web.archive.org/web/20211022125523/https://docs.godotengine.org/en/stable/getting_started/workflow/assets/importing_scenes.html|url-status=dead}}{{Cite web|last=Engine|first=Godot|title=Godot Engine - Why we should all support glTF 2.0 as THE standard asset exchange format for game engines|url=https://godotengine.org/article/we-should-all-use-gltf-20-export-3d-assets-game-engines|access-date=2021-09-27|website=Godot Engine|language=en}}
Open-source glTF converters are available from COLLADA, FBX, and OBJ.{{Citation |title=KhronosGroup/glTF |date=2025-04-10 |url=https://github.com/KhronosGroup/glTF#converters |access-date=2025-04-13 |publisher=The Khronos Group}} Assimp can import and export glTF.
glTF files can also be directly exported from a variety of 3D editors, such as Blender, Vectary, Autodesk 3ds Max (natively or using Verge3D exporter{{cite web|url=https://www.antonmansson.com/how-to-make-facebook-3d-posts/ | title=How to make Facebook 3D posts |publisher=3D Print Tech Design |date= |accessdate=2018-05-07}}), Autodesk Maya (using babylon.js exporter{{cite web|url=https://doc.babylonjs.com/extensions/Exporters/Maya_to_glTF |title=Export Maya scene as glTF |access-date=2021-02-01}}), Autodesk Inventor, Modo, Houdini,{{cite web|url=https://www.sidefx.com/docs/houdini/nodes/sop/rop_gltf.html | title=glTF ROP output driver |publisher=Side FX }} Paint 3D, Godot, and Substance Painter.{{cite web |title=GLB Tutorials |url=https://developers.facebook.com/docs/sharing/3d-posts/glb-tutorials |website=Facebook Developers |accessdate=May 7, 2018 |archive-date=July 29, 2019 |archive-url=https://web.archive.org/web/20190729192808/https://developers.facebook.com/docs/sharing/3d-posts/glb-tutorials |url-status=dead }}
Open-source glTF utility libraries are available for programming languages including JavaScript, Node.js, C++, C#, Haskell, Java, Go, Rust, Haxe, Ada, and TypeScript. Khronos keeps a list of these libraries and other related applications on their ecosystem site.{{Cite web |title=Khronos Ecosystem Explorer |url=https://ecosystem.khronos.org/ |access-date=2025-04-13 |language=en-US}}
3D WooCommerce Product Configurator, a working group of universal guidelines, standards and certifications for 3D content creation and distribution in e-commerce, incorporates glTF for transmission of photorealistic 3D assets.{{Cite web |date=2025-01-03 |title=WooCommerce Product Configurator -Customize Products Easily! |url=https://wpconfigurator.com/woocommerce-product-configurator/ |access-date=2025-04-13 |language=en-US}}{{cite news |title=Think 3D |url=http://www.leadingprint.org/spring-2020/think-3d/ |access-date=21 June 2022 |publisher=Leading Print |date=20 July 2020 |archive-date=29 May 2022 |archive-url=https://web.archive.org/web/20220529013630/http://www.leadingprint.org/spring-2020/think-3d/ |url-status=dead }} In June 2021, the 3D Commerce viewer certification program was launched, enabling 3D viewers to demonstrate they can accurately and reliably display 3D products using the glTF file format.{{cite news |title=Khronos launches certification for 3D-animated online shopping |url=https://venturebeat.com/2021/06/09/khronos-launches-certification-for-3d-animated-online-shopping/ |access-date=21 June 2022 |publisher=Venture Beat |date=9 June 2021}} 3D Commerce's asset guidelines, released in 2020, include best practices for use of the glTF file format in 3D Commerce.{{cite news |title=How 3D Standards Will Simplify Image Creation And Usage In Retail |url=https://retailtouchpoints.com/topics/digital-marketing/establishing-3d-standards-will-simplify-image-creation-and-usage-in-retail |access-date=21 June 2022 |publisher=Retail Touch Points |date=19 August 2020}}
See also
References
{{Reflist}}
External links
- {{Official website|https://www.khronos.org/gltf}}
- [https://github.com/KhronosGroup/glTF/blob/master/specification/README.md glTF specification]
{{Khronos Group standards}}
{{Web interfaces}}
Category:Cross-platform software