What is the glTF Format: A Complete Guide for AEC Professionals
What is a glTF format?
If you work in the construction industry, you may be familiar with glTF, which stands for “GL Transmission Format.” It’s a file format specifically designed for 3D models to be lightweight and user-friendly. 3D file formats, such as OBJ and FBX, take up more storage space than glTF files. Moreover, glTF files can be loaded easily in web browsers.
Another great comparison is that Gltf is the JPEG of 3D models. This post will analyze its role in the architecture industry and how to use this format.
.
One of the key benefits of glTF is that it is an open format. This means that it is free to use and there are no proprietary restrictions. glTF is popular among 3D graphics developers. This is due to the variety of tools and libraries available for working with it.
glTF Structure
The glTF file format consists of two main components: a JSON component and a binary component. The component JSON data contains information on scenes, nodes, accessors, and materials. The binary component contains all the mesh data, animations, skins, and other 3D model data.
glb vs glTF
Depending on how the glTF file was created, these components can be combined in three ways:
- glTF: The glTF format is self-contained. It combines both the binary part and the component JSON into a single file.
- glTF + bin: In this case, the JSON part is created separately from the binary part. Depending on the size and complexity of the 3D model that wants to be exported, there can be many binaries.
- GLB: The JSON part and the binary will both be stored as binary data. This makes it more efficient than the glTF format, which is self-contained.
Feature
GLB
glTF
Format
Binary
JSON (text-based) and binary
Extension
.glb
.gltf for text, .bin for binary assets
Usage
Streamlined, single-file packaging of 3D assets
Flexible, multi-file format for 3D assets
Efficiency
Generally more efficient for transmission
Can be less efficient due to separate files
Compatibility
Simplifies asset loading for engines and viewers
Wide support, may require additional handling
Interoperability
High, due to single file
High, with proper handling of associated files
Embedding
Embeds textures and other assets within the file
References textures and assets as external files
Ease of Use
Simplified deployment and management
Offers more control over assets, but can be complex
Optimization
Well-suited for web and real-time applications
Flexible, can be optimized for various use cases
Comparison table between the 3 different variations of the glTF format
How to open GLTF files
To open a glTF file, use any of these popular 3D apps for editing after downloading or exporting it:
- Blender, a free, open-source application
- Microsoft 3D Paint for Windows, which is free
- Sketchfab, a browser-based tool
- Unity: Like we did in our post “How to create for first Unity BIM viewer”
- Web: there are many options but my favorites are Play Canva, Three.js editor and the Babylon Js viewer
How to know if my glTF file is correct
1. Validate your glTF format in the Khronos glTF validator. You will great a green sign if your glTF is valid and a red sign in case it is not.
If your glTF is valid, you will see a green sign, and a red sign if is not.
2. Try to open the file in e-verse glTF viewer. If a glTF is valid it will load successfully. If there are errors, it may be able to load, but you will get a warning to fix them. If the files are corrupt, you won’t be able to open them.
Below is an example of the type of report that you get when opening a glTF file
3. Run it through a glTF report like this one, you can analyze it deeper to improve your glTF format.
Compression for glTF
Compressing is essential to keep the models lightweight and easily shareable. Compressed files take up even less space, making them load faster and easier to share. Several compression methods are available for glTF, including ZIP, Draco, and MeshOpt, each with advantages and disadvantages.
Check out the comparison table below:
Compression method | Author | Year of creation | Compression capacity | Loading time | Compression Time |
---|---|---|---|---|---|
.Zip | https://www.pkware.com/ | 1989 | 75% | Fast | Fast |
MeshOpt | https://zeux.io/ | 2016 | 90% | Fast | Medium |
Draco | 2016 | 95% | Medium | Slow |
You can see a live example of a loading times comparison between Draco and Meshopt here
As demonstrated in the example above, Meshopt has a faster loading time than Draco, but the file size is larger.Loading times are key when considering which option to choose. The other option is better when transferring times of the files is more important. An example was taken from View3D website.
We couldn’t find a C# Nuget library to compress the first time we worked with Draco, so we created our own, just in case you need to use it Here.
Rotation, Scale, and Translation
Like any other format we can rotate, scale or translate a model by modifying the vertices of all the meshes, but this can be really time-consuming when exporting it. That is why glTF has a better solution, and it’s the possibility of modifying the properties of each node. So if we change the scale of the root node, the same scale will be applied to all the elements inside that node.
The same goes for the translation and for the rotation, the only difference is that it has to be defined in a quaternion, so if you want more info on how to do it you can check this link.
Units in glTF models
When importing a glTF file into Three.js, understanding units is important. In glTF, units are absolute, so in contrast of other programs like Revit you could use any unit and you would be fine as long as all your models are in the same scale. Typically most people use meters.
glTF file Extensions
Extensions in glTF allow for additional functionality beyond the core specification. They enable developers to add custom features or support for specific use cases, making the format even more powerful.
There are two types of extensions: official extensions, which are maintained by the Khronos Group (like the HRH_materials_volume), and community extensions, which are developed and maintained by the community.
The extension’s properties and values are defined in the JSON component, and the binary component may contain additional data required by the extension.
glTF 3D model of a mosquito using extensions to add reflection and refraction in Babylon.js SandboxModel by Loïc Norgeot and mosquito scan by Geoffrey Marchal for Sketchfab.
What is the role of the glTF in the AEC industry
glTF is important in the AEC industry for visualizing 3D elements. It’s lightweight and compatible with web browsers and game engines, making it a great choice for sharing and collaborating on 3D models. glTF files are smaller and load easily compared to other 3D formats, like IFC, wich is the AEC standard, one of the main differences between IFC and glTF is their intended use. We listed some others below:
- IFC is a file format designed specifically for the AEC industry, while glTF is a more general-purpose format that can be used across various industries.
- IFC files are typically much larger and more complex than glTF files, which can make them more difficult to load and work with.
- IFC files do contain much more detailed information about the building and its components, which is necessary for many AEC-related tasks.
- glTF files are much smaller and simpler, making them easier to share and load quickly.
Extensions in glTF allow for additional functionality beyond the core specification. They enable developers to add custom features or support for specific use cases, making the format even more powerful.
There are two types of extensions: official extensions, which are maintained by the Khronos Group (like the HRH_materials_volume), and community extensions, which are developed and maintained by the community.
The extension’s properties and values are defined in the JSON component, and the binary component may contain additional data required by the extension.
IFC viewer courtesy of IFC.js
Export glTF out of Revit
If you want to export a glTF out of Autodesk Revit, we have created Leia, our glTF exporter. There are many other great exporters out there, you can find a comparison table below:
Company | Compression | Links | Materials | Transparencies | Normals | GLB | Price |
Griffel Studio | Draco | Yes | Yes | No | Yes | Yes | U$S 129.60 |
VisionWorkplace Solutions | No | Yes | Yes | No | Yes | Yes | U$S 149.00 |
SimLab Software | No | Yes | Yes | Yes | No | Yes | U$S 199 |
Prototech exporter | No | Yes | Yes | Yes | Yes | Yes | U$S 99.00 |
IN9PLUS | No | No | Yes | No | No | No | Free |
DiRoots | Draco, Meshopt | No | No | No | Yes | Yes | Free |
e-verse | Draco, Zip | Yes | Yes | Yes | Yes | Yes | Free |
Conclusion
Overall, glTF is a game-changer for architects, engineers, the construction industry and anyone who works with 3D formats. Its lightweight structure, compatibility with web browsers and game engines, and ease of use make it an ideal choice for anyone who wants to share and collaborate on 3D models.
This format will become more important when this platform gets more users. If you haven’t already, try the glTF format and discover why it has become the go-to standard for 3D graphics on the web.
Valentin Noves
I'm a versatile leader with broad exposure to projects and procedures and an in-depth understanding of technology services/product development. I have a tremendous passion for working in teams driven to provide remarkable software development services that disrupt the status quo. I am a creative problem solver who is equally comfortable rolling up my sleeves or leading teams with a make-it-happen attitude.