Skip to content
I.STEM Lab

Concept · 3D & VR

3D file formats explained: glTF, OBJ, point clouds and 3D Tiles

Which format to use for web, headsets, scans and city-scale data, and why units and axes can turn a perfect model upside down.

Intermediate6 min read

Key takeaways

  • glTF (and its binary form GLB) is the best default for sharing 3D on the web and in AR.
  • Scans produce point clouds and meshes, which need different formats and handling.
  • Large geospatial scenes use streaming formats such as 3D Tiles.
  • Units, axis directions and handedness differ between tools, and are a leading cause of broken imports.

A 3D file is just numbers: points in space, how they connect into surfaces, and how those surfaces are coloured. The trouble is that there are dozens of ways to write those numbers, each created for a different tool or purpose. Choosing the right format affects file size, loading speed, quality and whether a model survives its journey from one program to another.

This article explains the formats you are most likely to meet in GeoAI, virtual reality and mixed reality, and gives you a simple way to choose.

What is inside a 3D file

  • Geometry: vertices (points) and the faces, usually triangles, that join them into a surface.
  • Materials: how the surface reacts to light, such as its colour, roughness and shine.
  • Textures: images wrapped onto the surface, which carry most of the visible detail.
  • Structure: names, hierarchy and positions of parts, for example a building made of many objects.
  • Extras: animation, cameras, lights and metadata.

Formats for sharing and display

  • glTF and GLB. An open standard often called the JPEG of 3D. glTF is a text description with separate files, and GLB packs everything into one file. It supports modern physically based materials, animation and compression, and loads quickly. It is the best default for the web, AR and many engines.
  • USDZ. Apple’s format for AR Quick Look on iPhones and iPads. It is based on Pixar’s USD. Many tools convert between glTF and USDZ.
  • OBJ. An old, simple, widely supported text format for geometry and basic materials. It is easy to read but has no animation, and files are large.
  • FBX. A proprietary format common in games and animation pipelines. It carries animation and rigs, but varies between versions.
  • STL. A very simple surface format used for 3D printing. It has no colour or textures.

Formats for scans and survey data

  • PLY. A flexible format for point clouds and meshes, popular in research and scanning software.
  • LAS and LAZ. The standard for laser scanning and aerial LiDAR point clouds. LAZ is a compressed version that is much smaller. They store position, intensity, classification and more for each point.
  • E57. A vendor-neutral format for terrestrial laser scans, which can include images and scanner positions.
  • Gaussian splat files. Splats are usually saved as large PLY files, with compressed variants such as SPLAT, KSPLAT and SPZ for the web. Work is under way to carry them inside glTF, so check the current state of support.
  • Meshes from photogrammetry. Usually exported as OBJ, PLY or glTF, with texture images.

A point cloud is a set of points, with no surface between them. A mesh joins points into triangles. Both can be coloured. Point clouds suit measurement and very large data, and meshes suit display, because engines draw triangles.

Formats for cities, terrain and buildings

  • 3D Tiles. An open standard for streaming huge 3D geospatial datasets, such as photogrammetry of a whole city, in pieces that load as needed, at the level of detail the viewer requires. It is the format of choice for large, georeferenced scenes on the web.
  • CityGML and CityJSON. Describe city models with meaning, for example which surface is a roof and which a wall, and carry attributes.
  • IFC. The open format for building information modelling (BIM), describing the parts of a building and how they relate.
  • GeoTIFF and terrain tiles. Raster elevation data that can be turned into a 3D surface.

Compression: making files small

  • Draco and Meshopt compress geometry, often reducing it to a fraction of its size, and are supported in glTF.
  • KTX2 with Basis compression stores textures in a form that graphics hardware can use directly, saving memory as well as download size.
  • Texture formats such as WebP and JPEG shrink the images for the web.

For headsets and phones, memory matters as much as download size. Compressed textures that stay compressed in graphics memory are a major win.

The silent problems: units and axes

Two models in different formats can be identical in shape, and still look wrong together, because the tools disagree about the basics.

  • Units. glTF defines one unit as one metre. Some tools use centimetres or millimetres by default, so a building can arrive a hundred or a thousand times too large or too small.
  • Up direction. Many tools, including glTF and Unity, treat Y as up. Blender and Unreal treat Z as up. A model imported wrongly lies on its side.
  • Handedness. glTF and Blender use a right-handed coordinate system, while Unity and Unreal use a left-handed one. A mismatch mirrors the model.
  • Origin. A model built far from its own origin, for example at real-world map coordinates, can shake in a viewer because of limited number precision. Re-centre it.

How to choose

  1. 01For the web or AR on phones: glTF or GLB, compressed, with textures optimised. Supply USDZ for iPhones if you do not use a viewer that converts for you.
  2. 02For a game engine or headset app: glTF or FBX, depending on the engine and the pipeline, with attention to units.
  3. 03For archives and measurement: keep the original point clouds in LAS, LAZ or E57, plus a record of coordinates and units.
  4. 04For large city or site scenes: 3D Tiles.
  5. 05For 3D printing: STL, or 3MF which also carries colour.
  6. 06For design handover from engineers or architects: IFC or the native source files, plus an exported mesh for display.

A simple pipeline

A common route for a scanned place is as follows. Process the photographs into a dense point cloud and a textured mesh, and keep these as the master archive. Clean and simplify the mesh, and bake detail into textures. Export a compressed GLB for the web and a streaming 3D Tiles version for large views. Keep a note of the coordinate system, the units and the date. Always archive the original data, because formats and tools change faster than places do.

Frequently asked questions

Why is my model black or missing its textures?
Textures are often separate files. If they were not exported with the model or the paths are broken, the viewer shows plain surfaces. Use GLB, which packs textures inside.
Can I convert any format to any other?
Mostly, with tools such as Blender and command-line converters. Conversion can lose information, for example colour precision or hierarchy, so keep your original.
Is OBJ still worth using?
For simple geometry exchange, yes. For the web, AR and modern materials, glTF is a better choice.
What is the difference between a mesh and a point cloud?
A point cloud is only points. A mesh adds triangles that connect them into a surface that engines can draw efficiently.

Formats are the shipping containers of 3D. Choose one that suits the destination, label the units and axes clearly and keep your master files safe, and your models will arrive intact and ready to use.

Share

Join the conversation

Reactions & comments

Comments are opening soon.

In the meantime, tell us what you think by email at info.istem.lab@gmail.com.

Start a project

Need this built for your organization?

If you would rather have a working system than a tutorial, tell us your goal and we will scope it with you.