GLTF Vertex Compression

Simplify and encode GLTF geometry, download optimized GLB.

Workspace

Drop files here

or click to browse, paste supported

About This Tool

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

Tips

  • 1Include companion .bin and texture files
  • 2Meshopt and Draco are mutually exclusive
  • 3Mesh simplification and container encoding

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

About Configuration Options

Vertex / Geometry

OptionWhat it doesDefault / range

Mesh Simplification

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.50%0% – 100% · step 5%

Meshopt Compression

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.
  • OnRecommended: Default. Enables Meshopt container compression.
  • Off: Do not write Meshopt extension.
On

Meshopt Level

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.
  • HighRecommended: Default. More aggressive compression with filters, usually smaller.
  • Medium: More uniform quantization; compression ratio is usually slightly lower.
High

Draco Compression

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.
  • OffRecommended: Default. Do not write Draco extension.
  • On: Enable Draco (disables Meshopt).
Off

Compression Strength

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.61 – 10

Encoding Method

Draco topology encoding method. Default Edgebreaker typically gives better compression for triangle meshes. Sequential can be more suitable for ordered strips or point sequences.
  • EdgebreakerRecommended: Default. Best for common triangle meshes.
  • Sequential: Suitable for ordered strips and special topologies.
Edgebreaker

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

Quantization bits for POSITION attribute (8, 16). Default 14 balances file size and cracking risk. Too low may cause gaps or jitter.148 – 16

Format Information

Input format

Extension:
gltf, glb
Full Name:
GL Transmission Format (glTF 2.0)
Type:
3D Scene
Format:
GLTF
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.

Notes:

  • External resources (.bin, textures) need to be kept together
  • May require additional tooling for CAD workflows

Supported Features:

  • Common 3D format

Output format

Extension:
glb
Full Name:
GL Transmission Format Binary (Compressed)
Type:
3D Model
Format:
Binary (glTF 2.0) with Draco/Texture Compression
Description:
The compressed GLB output uses Draco geometry compression and/or texture optimization to significantly reduce file size while maintaining visual quality.

Notes:

  • Draco-encoded models require a Draco decoder to render
  • File size can be reduced by 50-90% depending on settings

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

Frequently Asked Questions

View all FAQs
Q

Why can't I download .gltf directly?

A

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.

Q

Which decodes faster: Meshopt or Draco?

A

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.

Q

Will textures be preserved?

A

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.

Q

Can I only simplify without using Meshopt/Draco?

A

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.

Q

What is Draco encoding?

A

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.

Q

Can I use the compressed model in Three.js?

A

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.