---
title: "GLB Vertex Compression"
description: "Compress GLB geometry with mesh simplification plus Meshopt (recommended) or Draco. Browser-local, exports optimized single-file GLB. No upload."
toolId: "glb-vertex-compression"
category: "optimization"
subgroup: "compression-general"
subgroupName: "3D Model Compression"
url: "https://any3d.cc/en-US/tools/glb-vertex-compression"
markdown: "https://any3d.cc/llm/tools/glb-vertex-compression.md"
---

# GLB Vertex Compression

Simplify meshes and encode with Meshopt or Draco, smaller GLB for web and engines.

**Category:** 3D Model Optimization Tools (`optimization`)
**Subgroup:** 3D Model Compression (`compression-general`)

**HTML:** https://any3d.cc/en-US/tools/glb-vertex-compression

> Runs entirely in the browser. Files are not uploaded to Any3D servers.

## Overview

Compress GLB geometry only, textures stay untouched. Mesh simplification reduces face count; Meshopt (default, recommended) or Draco further shrinks geometry buffers. They are mutually exclusive. Output is an optimized GLB. Compression runs locally in your browser.

## Tips

- Use Meshopt for fast runtime decode; pick Draco for maximum size reduction
- Do not enable Meshopt and Draco together
- Screen the result in preview and tune the simplification before downloading

## About Configuration Options

### Vertex / Geometry

- **Mesh Simplification** (Default: 50%; Range: 0% – 100% · step 5%): Reduces the number of faces and vertices using mesh simplification. Default medium strength; increasing strength shrinks file size further but may lose surface detail. Only affects geometric density, not the container format.
- **Meshopt Compression** (Default: On): Applies EXT_meshopt_compression to glTF/GLB, compressing geometry buffers without changing face count. Enabled by default for runtime-friendly loading. Mutually exclusive with Draco. Not used for non-glTF outputs like STL, OBJ, or FBX.
  - `on` — On (Recommended): Default. Enables Meshopt container compression.
  - `off` — Off: Do not write Meshopt extension.
- **Meshopt Level** (Default: High): Controls Meshopt encoding strategy. Default 'High' generally yields smaller size and enables attribute filters, suitable for most web scenarios. 'Medium' applies more uniform quantization across attributes, which may be preferred by conservative toolchains.
  - `high` — High (Recommended): Default. More aggressive compression with filters, usually smaller.
  - `medium` — Medium: More uniform quantization; compression ratio is usually slightly lower.
- **Draco Compression** (Default: Off): Applies KHR_draco_mesh_compression to glTF/GLB. Often yields smaller files than Meshopt but with higher decoding overhead. Disabled by default; mutually exclusive with Meshopt. Not used for non-glTF outputs.
  - `off` — Off (Recommended): Default. Do not write Draco extension.
  - `on` — On: Enable Draco (disables Meshopt).
- **Compression Strength** (Default: 6; Range: 1 – 10): Draco encode/decode speed trade-off, range 1, 10. Higher values favor smaller size at the cost of encode speed. Default 6 is suitable for most models.
- **Encoding Method** (Default: Edgebreaker): Draco topology encoding method. Default Edgebreaker typically gives better compression for triangle meshes. Sequential can be more suitable for ordered strips or point sequences.
  - `edgebreaker` — Edgebreaker (Recommended): Default. Best for common triangle meshes.
  - `sequential` — Sequential: Suitable for ordered strips and special topologies.
- **Quantization bits (advanced)**: Shown under Advanced settings in the UI. Vertex attribute precision when Meshopt or Draco writes glTF. Defaults: position 14, normal 10, UV 12. Lower bits shrink files more but raise crack, shading, or UV artifact risk.
- **Position Bits** (Default: 14; Range: 8 – 16): Quantization bits for POSITION attribute (8, 16). Default 14 balances file size and cracking risk. Too low may cause gaps or jitter.
- **Normal Bits** (Default: 10; Range: 8 – 16): Quantization bits for NORMAL attribute (8, 16). Default 10. Too low may cause shading artifacts.
- **UV Bits** (Default: 12; Range: 8 – 16): Quantization bits for TEXCOORD attribute (8, 16). Default 12. Too low may cause texture crawling or jitter.

## Format Information

### Input format

- **Extension:** glb
- **Full Name:** GL Transmission Format Binary (glTF 2.0)
- **Type:** 3D Model
- **Format:** GLB
- **Tools:** [Three.js](https://threejs.org), [Babylon.js](https://www.babylonjs.com), [Blender](https://www.blender.org)
- **Open With:** [3D Model Viewer](https://any3d.cc/en-US/tools/3dmodel-viewer), [GLB Viewer](https://any3d.cc/en-US/tools/glb-viewer)
- **Description:** GLB is the binary glTF 2.0 format from Khronos Group, packing meshes, materials, textures, and animations into one file. It is the standard for Web 3D and AR/VR, used by Three.js, Babylon.js, model-viewer, and e-commerce previews for self-contained, reliable distribution.

GLB supports PBR materials, skeletal animations, Draco and Meshopt compression, suitable for web, AR, and cross-software use. However, it loses CAD parametric history when tessellated from STEP or native CAD. For 3D printing, use STL or 3MF as slicers cannot import GLB.
- **Supported Features:**
  - Single self-contained binary file
  - PBR material support (base color, metallic, roughness, normal maps)
  - Skeletal animation, skinning, and morph targets
  - Draco mesh compression and KTX2 texture compression
  - Multi-mesh nodes and scene hierarchy
- **Notes:**
  - Some 3D printing slicers cannot directly import GLB files
  - Not suitable for CAD parametric editing

### Output format

- **Extension:** glb
- **Full Name:** GL Transmission Format Binary (Compressed)
- **Type:** 3D Model
- **Format:** Binary (glTF 2.0) with Draco/Texture Compression
- **Tools:** [Three.js](https://threejs.org), [Babylon.js](https://www.babylonjs.com)
- **Open With:** [Draco Decoder Required](https://google.github.io/draco/), [View in 3D Model Viewer](https://any3d.cc/en-US/tools/3dmodel-viewer)
- **Description:** The compressed GLB output uses Draco geometry compression and/or texture optimization to significantly reduce file size while maintaining visual quality.
- **Supported Features:**
  - Draco geometry compression (up to 90% reduction)
  - WebP/JPEG texture format conversion
  - Mesh simplification with configurable strength
  - Original PBR materials and scene hierarchy preserved
- **Notes:**
  - Draco-encoded models require a Draco decoder to render
  - File size can be reduced by 50-90% depending on settings

## How to use

### 1. Drop your GLB file

Drag a GLB file onto the upload area

### 2. Configure GLB compression

Set simplification; enable Meshopt or Draco (not both)

### 3. Save the compressed GLB

Preview, then download the optimized GLB

## FAQ

### Will animations survive compression?

Yes, animation data is preserved: only the geometry buffers are re-encoded. Be aware that very aggressive simplification can deform skinned meshes, so check the preview on animated poses before downloading.

### Should I choose Meshopt or Draco?

Meshopt is the default: it decodes fast on web and mobile, and Three.js supports it well. Draco can produce smaller files, but usually costs more decode time. The two options are mutually exclusive, so enable only one.

### Will the downloaded file still be a single GLB?

Yes, the result is an optimized single-file GLB with the same name and structure, so existing loaders and pipelines keep working. GLTF input is accepted as well and is also exported as GLB.

### Can I use GLTF as an input?

Yes. There is also a dedicated GLTF vertex compression page; both accept GLTF and produce an optimized GLB. Upload the .gltf together with its .bin and texture files so nothing is missing.

### How much can the file size be reduced?

Reductions of 50-90% are typical, depending on mesh complexity and settings. Dense models with high polygon counts benefit most from Draco or Meshopt, and simplification adds extra savings by removing faces first.

### Can I preview the result before downloading?

Yes. The real-time preview shows the simplified mesh, so you can compare detail loss and animation behavior. Adjust the strength until the silhouette and motion look right, then download.
