Skip to content
I.STEM Lab

Guide · 3D & VR

How to optimise 3D models for the web, phones and headsets

A practical routine to turn a heavy scan into a model that loads in seconds and runs smoothly, without losing what matters.

Intermediate6 min read

Key takeaways

  • Set a budget for triangles, textures and file size before you start, based on your slowest target device.
  • Most weight sits in textures and in unnecessary triangles. Reduce both, then compress.
  • Levels of detail, instancing and baked lighting keep frame rates steady.
  • Always test on the real devices your audience will use.

A fresh scan of a building can contain millions of triangles and a gigabyte of textures. It looks magnificent on a powerful workstation. On a mid-range phone, or inside a standalone headset that must draw two views at high speed, it will crawl, overheat or crash. Optimisation is the craft of keeping what the viewer notices and removing what they do not.

This guide gives a repeatable routine, from setting a budget to testing on devices.

Step 1: set a budget

Optimising without a target is guessing. Start from the weakest device you must support, and write down your limits.

  • File size: for the web, aim for a few megabytes for a first view, and load detail progressively. Smaller is better on slow connections.
  • Triangles: a mobile or standalone headset scene is often kept to a few hundred thousand visible triangles. Powerful computers handle far more.
  • Textures: memory is the limit. A single 4096 by 4096 texture uses tens of megabytes when uncompressed in graphics memory.
  • Frame rate: a headset running at 90 frames per second has only about 11 milliseconds to draw each frame. Phones typically target 30 to 60 frames per second.
  • Draw calls: the number of separate objects the graphics chip is asked to draw. Fewer is faster.

Step 2: clean the model

  • Remove what will never be seen: hidden interiors, the underside of the ground and duplicate surfaces.
  • Delete stray fragments and floating specks, which are common in scans.
  • Fix holes and flipped surfaces, which appear as missing or black patches.
  • Merge duplicate vertices and apply scale and rotation, so that the object’s numbers are tidy.

Step 3: reduce the triangles

Decimation removes triangles while trying to keep the shape. Most tools can reduce a scan by 90 percent or more with little visible change on gently curved surfaces. Flat walls need few triangles, but carved or complex areas need more.

  • Reduce gradually, and compare with the original, especially at edges and silhouettes.
  • Keep more detail where people look closely, and less in the distance.
  • For hard-edged architecture, retopology, which rebuilds clean, simple geometry by hand or with tools, can give a much lighter and cleaner result.
  • Move fine detail from geometry into a normal map, a texture that fakes small bumps and grooves using lighting.

Step 4: tame the textures

Textures usually weigh more than geometry. They give a scan most of its visual richness, so reduce them with care.

  • Use the smallest size that looks good at the viewing distance. Two thousand pixels across is often plenty. Most small objects need less.
  • Combine many small textures into an atlas, to reduce draw calls.
  • Choose efficient formats: KTX2 with Basis compression for graphics memory, and WebP or JPEG for download size.
  • Remove unused maps. Many models carry channels that the viewer never needs.
  • Avoid transparency where you can. It is costly to draw.

Step 5: compress the file

Compression reduces download time without changing what you see. For glTF, geometry compression with Draco or Meshopt is standard, and texture compression with KTX2 or WebP. A command-line tool such as glTF Transform can apply many of these steps in one command, including merging meshes, removing unused data, compressing geometry and converting textures.

Step 6: use levels of detail and streaming

  • Levels of detail (LOD) swap in simpler versions of an object as it gets farther from the viewer.
  • Instancing draws many copies of the same object, such as trees or chairs, with almost no extra cost.
  • Culling skips what is out of view or hidden behind something else.
  • Streaming loads a large scene in tiles, as the viewer moves, so that the first view appears quickly. This is how huge city models stay usable.

Step 7: light it smartly

Realistic lighting is expensive. Where you can, bake it. This means calculating the light and shadow once, and storing them in textures, so the device does not have to compute them every frame. Baked lighting makes static scenes look rich and cheap to run. Keep real-time lights few, and reserve them for things that move.

Step 8: test where it counts

  1. 01Open the model on the oldest phone and the least powerful headset your audience will use.
  2. 02Measure load time on a slow connection, using the browser’s network throttling.
  3. 03Watch frame rate and temperature during a long session. Devices slow themselves down when hot.
  4. 04Look for visual artefacts: shimmering, missing parts, cracks between pieces and washed-out colours.
  5. 05Fix the biggest cost first, then measure again.

A worked example

A scan of a small museum hall arrives as a 4-million-triangle mesh with sixteen 8K textures, about 800 megabytes in total. The target is a phone browser and a standalone headset.

  • Cleaning removes the hidden underside and stray scan fragments.
  • Decimation and retopology bring the structure to about 150,000 triangles, and fine carving moves into normal maps.
  • Textures are merged into four 2K atlases and compressed with KTX2.
  • Geometry is compressed with Draco, and the whole scene is exported as a single GLB of a few megabytes.
  • Lighting is baked for the static hall, with one real-time light for the visitor’s torch.
  • On the test devices, the scene opens in seconds and holds a steady frame rate.

The visitor sees nearly the same hall as before. They simply do not wait for it.

Mistakes that cost the most

  • Optimising last. Plan the budget at the start of capture and modelling.
  • Cutting detail everywhere equally, instead of where it matters.
  • Forgetting texture memory, and looking only at triangle counts.
  • Testing only on a powerful computer.
  • Overwriting the original instead of keeping a full-quality master.

Frequently asked questions

How many triangles can a phone handle?
It varies widely with the device, the scene and the lighting. Many mobile scenes run well with a few hundred thousand triangles, but you should test on your own targets.
Will compression ruin the quality?
Geometry compression such as Draco is nearly invisible at sensible settings. Texture compression can add subtle artefacts, so compare before and after.
Should I optimise the original scan?
No. Keep it as a master archive, and produce optimised copies for each use.
What is the quickest big win?
Usually the textures. Resize them, combine them and compress them, then look at the triangle count.

Optimisation is not about making a model worse. It is about spending your limited budget where the viewer’s eye actually goes. Set the budget, clean, reduce, compress and test, and a heavy scan becomes an experience that opens in seconds, on the devices your audience really owns.

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.