---
title: "GLTF Vertex Compression"
description: "Compress GLTF geometry: simplify the mesh and encode with Meshopt or Draco to reduce file size. Download an optimized GLB. Fully local, no upload."
toolId: "gltf-vertex-compression"
category: "optimization"
subgroup: "compression-general"
subgroupName: "3D Model Compression"
url: "https://any3d.cc/en-US/tools/gltf-vertex-compression"
markdown: "https://any3d.cc/llm/tools/gltf-vertex-compression.md"
---

# GLTF Vertex Compression

Simplify and encode GLTF geometry, download optimized GLB.

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

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

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

## Overview

Accepts .gltf (with .bin and textures). Applies mesh simplification and Meshopt (recommended) or Draco. Outputs an optimized GLB. Textures unchanged. Fully local.

## Tips

- Include companion .bin and texture files
- Meshopt and Draco are mutually exclusive
- Mesh simplification and container encoding

## 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:** gltf, glb
- **Full Name:** GL Transmission Format (glTF 2.0)
- **Type:** 3D Scene
- **Format:** GLTF
- **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), [GLTF Viewer](https://any3d.cc/en-US/tools/gltf-viewer)
- **Description:** glTF is an open standard 3D format by Khronos, dubbed the JPEG of 3D. It uses JSON for scene structure, separate .bin for geometry, and independent textures, enabling incremental loading and streaming. glTF 2.0 is the mainstream format for exchanging 3D content across web, mobile, and game engines.

Compared to GLB, glTF uses multiple files, ideal for CDN on-demand loading and resource reuse, but prone to reference loss. For single-file sharing, GLB is more reliable. For fine-grained loading or frequent partial updates, glTF offers flexibility.
- **Supported Features:**
  - Common 3D format
- **Notes:**
  - External resources (.bin, textures) need to be kept together
  - May require additional tooling for CAD workflows

### 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. Load the .gltf bundle

Drop .gltf plus referenced resources

### 2. Configure glTF compression

Simplification + Meshopt or Draco

### 3. Download the simplified GLB

Download optimized GLB

## FAQ

### Why can't I download .gltf directly?

Compressed glTF is delivered as a single optimized GLB for portability and engine support: one binary file with the encoded geometry embedded. GLB loads faster than a .gltf with external .bin and textures and is easier to host.

### Which decodes faster: Meshopt or Draco?

Meshopt is designed for fast decoding on the web and mobile, so it's the recommended default for loading performance. Draco often produces smaller files at the cost of more decode time. Only one can be enabled on the same geometry.

### Will textures be preserved?

Yes. This tool only processes geometry buffers; textures are embedded in the output GLB exactly as they were in the source, with no quality loss.

### Can I only simplify without using Meshopt/Draco?

Yes. Disable container encoding and the tool applies mesh simplification only; the output is still an optimized GLB with the reduced geometry. That's useful when you want fewer polygons without re-encoding buffers.

### What is Draco encoding?

Draco is Google's open-source library for compressing 3D geometry and point clouds. It can shrink mesh buffers by up to 90% with little visible loss. Meshopt is the alternative, usually faster to decode, occasionally slightly larger.

### Can I use the compressed model in Three.js?

Yes. Three.js loads GLB/GLTF natively and supports both Draco (via DRACOLoader) and Meshopt (via MeshoptDecoder). Include the matching decoder in your project. With Meshopt it ships in three's examples folder.
