1. Home
  2. WP 3D CONFIGURATOR
  3. Getting Started with GLBs...
  4. GLB File Optimization Guide

GLB File Optimization Guide

A step-by-step guide to reduce your 3D model file size for use in the web configurator.

Target size: Under 5MB

Ideal size: 1-3MB

IMPORTANT: Compression Requirements

This configurator uses Meshopt compression exclusively. Do NOT use Draco compression under any circumstances. Draco-compressed files will fail to load with the error: “THREE.GLTFLoader: No DRACOLoader instance provided.” Always use Meshopt.

Why File Size Matters

Large GLB files cause slow loading times, poor performance on mobile devices, and a bad customer experience. The most common causes of oversized files are:

  • High-resolution textures (4096×4096 or 2048×2048)
  • Uncompressed geometry
  • Unused data (animations, shape keys, armatures)

Step 1 – Clean Up in Blender

Before exporting, clean your scene to remove unnecessary data.

Remove unused objects

  • Delete any hidden objects, lights, or cameras that are not part of the product
  • Remove internal geometry that customers will never see

Resize textures

Large textures are the #1 cause of bloated GLB files. Resize them inside Blender before export.

  1. Open the UV Editor or Image Editor
  2. Select a texture
  3. Go to Image > Scale Image
  4. Set width and height to 1024×1024 (standard) or 2048×2048 for high-detail models only
  5. Repeat for all textures in the scene

Remove unused data

In the Properties panel, disable or remove:

  • Shape Keys – only needed for facial animation or morphing
  • Armature / Skinning – only needed for rigged characters
  • Animations – not needed for product configurators

Step 2 – Export from Blender with Correct Settings

Go to File > Export > glTF 2.0 and configure the right panel as follows.

Do NOT enable Draco compression in Blender’s export settings. Leave the Compression checkbox unchecked. Meshopt will be applied in Step 3 using gltf-transform.

Format
SettingValue
FormatglTF Binary (.glb)
Include
SettingValue
Selected ObjectsEnabled (export only your product)
Transform
SettingValue
+Y UpEnabled
Mesh
SettingValue
Apply ModifiersEnabled
UVsEnabled
NormalsEnabled
TangentsDisabled
Loose Edges / PointsDisabled
Material
SettingValue
ImagesJPEG Format (.jpg)
Image Quality75
Create WebPEnabled
WebP FallbackEnabled
Shape Keys
SettingValue
Shape KeysDisabled
Skinning / Armature / Animation
SettingValue
SkinningDisabled
AnimationDisabled
Compression
SettingValue
Compression (Draco)DISABLED – leave unchecked

Click Export glTF 2.0.

Step 3 – Optimize with gltf-transform (Required)

This step applies Meshopt compression and handles texture resizing. It is required, not optional.

Install Node.js

Download and install from nodejs.org – choose the LTS version.

Install gltf-transform

Open Command Prompt (Win + R, type cmd, press Enter) and run:

npm install -g @gltf-transform/cli

Open terminal in your GLB folder
  • Open the folder containing your GLB file in Windows Explorer
  • Click the address bar at the top
  • Type cmd and press Enter
  • The terminal opens already pointing to that folder
Run optimization

Step 1 – Inspect first:

gltf-transform inspect yourfile.glb

Look at the resolution and size columns in the texture table. Any texture at 2048×2048 or 4096×4096 needs to be resized.

Step 2 – Resize textures:

gltf-transform resize --width 1024 --height 1024 yourfile.glb resized.glb

Step 3 – Convert textures to WebP:

gltf-transform webp resized.glb webp.glb

Step 4 – Apply Meshopt compression:

gltf-transform meshopt webp.glb output.glb

Step 5 – Validate:

gltf-validate output.glb

The file must pass validation with no errors before submitting. Share the validation output alongside the file.

Expected Results
StageTypical Size
Original (unoptimized)20-100 MB
After texture resize to 1024 + WebP5-15 MB
After Meshopt compression1-5 MB

If your output is under 500KB, textures have likely been stripped. Re-check your process.

Texture Resolution Reference
Texture TypeStandard ModelsHigh-Detail Models
Base Color (diffuse)1024×10242048×2048
Normal Map1024×10242048×2048
Roughness / Metallic1024×10241024×1024
Ambient Occlusion1024×10241024×1024
Emissive1024×10241024×1024
Deliverables Checklist

For every file, submit:

  • Optimized .glb file (self-contained binary)
  • gltf-validate output showing no errors
  • Exact CLI commands used, in order
  • Confirmation that you tested the file in the plugin using the provided login credentials
Troubleshooting

Model loads with no materials / appears grey

Material names were merged or stripped during export. Re-export from Blender with materials intact. Do not use any “merge by material” or “join meshes” operations.

Error: THREE.GLTFLoader: No DRACOLoader instance provided

Draco compression was applied. This is not supported. Re-run the optimization pipeline using gltf-transform meshopt instead.

File fails to upload

The file may be exported as .gltf + .bin and renamed, or may be corrupted. Re-export from Blender directly as glTF Binary (.glb) and run the pipeline again.

Meshes are missing after optimization

Meshes were likely merged into a single mesh. Do not use any join or merge mesh operations. Each mesh and node must remain as a separate object with its original name.

Model looks blurry after optimization

Textures were resized too aggressively. Use 2048×2048 for the base color texture on detailed models.

File is still over 5MB after optimization Run gltf-transform inspect output.glb and check for remaining high-resolution textures. Also check whether multiple materials share the same large

How can we help?