Skip to content

mpoapostolis/compress-glb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

compress-glb

CLI tool to compress .glb 3D models using Draco, meshoptimizer, and texture optimization (WebP via Sharp).

Features

  • 4 compression levels — from lossless dedup to aggressive quantization
  • Draco mesh compression (edgebreaker)
  • Meshopt mesh simplification
  • Texture compression — resize + convert to WebP
  • Batch mode — point at a folder to compress all GLBs
  • Zero config — sensible defaults out of the box

Install

git clone https://github.com/mpoapostolis/compress-glb.git
cd compress-glb
npm install

Usage

# Single file (default: medium compression)
node compress.mjs model.glb

# Custom output path
node compress.mjs model.glb model-min.glb

# Choose compression level
node compress.mjs model.glb --level high

# Batch compress all GLBs in a folder
node compress.mjs ./models/

Compression Levels

Level What it does Use case
low Dedup, prune, flatten, resample (lossless) Clean up without loss
medium + Draco compression, textures ≤1024px (WebP) General use (default)
high + Mesh simplification (75%), textures ≤512px Web delivery
ultra + Meshopt simplify (50%), textures ≤256px, quantize Smallest possible size

Examples

# Lossless cleanup
node compress.mjs character.glb --level low

# Optimize for web
node compress.mjs scene.glb scene.min.glb --level high

# Compress everything in a directory
node compress.mjs ./assets/models/ --level medium

Output files are saved as <name>.min.glb by default.

How it works

Built on top of glTF Transform with:

The pipeline applies transforms in order: dedup → prune → flatten → resample → weld → Draco → texture compress → simplify → quantize (depending on level).

License

MIT

About

CLI tool to compress .glb 3D models with Draco, meshoptimizer & texture optimization. 4 levels, batch mode, zero config.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors