Compress GLB & GLTF filesup to 90%
Shrink GLB and glTF models with Draco geometry compression and WebP/AVIF textures, without visible quality loss. Built for real pipelines: files up to 500 MB, batch uploads, reusable presets and a REST API.
1 free credit · No credit card required · Files deleted after 24 hours
Try it out
Experience the power of compressing GLB files
Drop in your GLB or GLTF file, create a free account and download the compressed model.
How to compress a GLB file
Most models come out 60–90% smaller in three steps.
- 1
Upload your model
Drag a .glb or .gltf file of up to 500 MB into the dashboard, or upload several models at once as a batch.
- 2
Choose your settings
Start with a preset, or set the Draco compression level, quantization bits, maximum texture size and texture format (WebP, AVIF, JPEG or PNG) yourself.
- 3
Download the smaller file
Get a validated GLB that loads in three.js, Babylon.js, <model-viewer>, Unity and Unreal. Source and output files are deleted after 24 hours.
What happens to your model
- Draco geometry compression. Vertex positions, normals and UVs are quantized and entropy-coded, which typically shrinks geometry data by 80–95%. How Draco works
- Texture resizing and re-encoding. Oversized textures are downscaled (for example 4K to 2K) and converted to WebP or AVIF. For texture-heavy product models this is usually the biggest saving.
- Cleanup. Duplicate and unused vertices and other unused data are removed, and meshes can be welded, merged, flattened or instanced.
- Optional simplification. Reduce the triangle count of dense scans, photogrammetry and CAD exports.
- Validation. Every output is checked with the official Khronos glTF validator, also available as a free online glTF validator.
Have a multi-file .gltf? Pack it into a single file with the free glTF to GLB converter, or automate everything with the compression API.
Features
Save time and bandwidth
GLB file compressor
Reduce GLB file size by up to 90% while keeping them looking great. Built on gltf-transform, this GLB optimizer handles your 3D models efficiently without sacrificing visual quality.
GLTF validator included
Every GLB and GLTF file gets validated automatically. Catches common issues and ensures your compressed models work everywhere they should.
Fast compression API
Simple REST API that processes your GLB files quickly. Perfect for developers who want to add GLB compression to their apps without the hassle.
Create your own presets
Save your favorite compression settings as custom presets. Set up your parameters once and reuse them across different projects - no need to remember all those settings.
Detailed compression controls
Tweak texture quality, geometry simplification, and animation compression to get exactly what you need. Great for when you want more control over your GLB optimization.
Friendly support
Got questions about integration or compression settings? Just reach out! Happy to help you get the most out of your GLB compression workflow.
Free credit to start
Create a free account and get 1 compression credit, no credit card required. Perfect for testing how well this GLB compressor works with your models.
Batch GLB processing
Upload multiple GLB files of up to 500 MB each and compress them all together. Processing runs on our servers, so large models never hit browser memory limits.
Live progress updates
Watch your GLB compression happen in real-time with progress bars and status updates. No more wondering if something is stuck or broken.
Model quality preserved
gltf-transform does the heavy lifting to keep your models looking good while making them smaller. Colors, textures, and animations stay intact.
Easy API integration
Simple REST endpoints with clear documentation. Add GLB file compression to your workflow with just a few lines of code - nothing fancy required.
Built-in GLB validator
Every compressed file gets checked to make sure it's valid and ready to use. Helps catch any issues before you deploy your optimized GLB files.
Code Samples
Integrate with ease
Upload files synchronously for instant results or asynchronously for large batches. Here's how to get started.
import fs from 'fs';
import path from 'path';
async function compressGLB(inputPath, outputPath) {
const fileBuffer = fs.readFileSync(inputPath);
const formData = new FormData();
formData.append('file', new Blob([fileBuffer]), path.basename(inputPath));
const upload = await fetch('https://api.compress-glb.com/api/1/files/upload/sync', {
method: 'POST',
headers: { 'Authorization': '<API_KEY>' },
body: formData
});
const [job] = await upload.json();
const compressed = await fetch(job.compressed_file_url);
fs.writeFileSync(outputPath, Buffer.from(await compressed.arrayBuffer()));
}

