Optimize and post-process GLB/glTF 3D models. Use when compressing models for web delivery, reducing file size, simplifying geometry, inspecting model stats, merging models, or converting textures. Triggers on: optimize GLB, compress model, reduce file size, simplify mesh, draco compression, meshopt, webp textures, inspect model, merge GLB, model optimization.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: gltf-transform
description: Optimize and post-process GLB/glTF 3D models. Use when compressing models for web delivery, reducing file size, simplifying geometry, inspecting model stats, merging models, or converting textures. Triggers on: optimize GLB, compress model, reduce file size, simplify mesh, draco compression, meshopt, webp textures, inspect model, merge GLB, model optimization.
---
# glTF Transform
Post-process GLB/glTF files: optimize, compress, inspect, and transform 3D models.
- CLI docs: https://gltf-transform.dev/cli
- GitHub: https://github.com/donmccurdy/glTF-Transform
- npm: `@gltf-transform/cli`
## Zero-Setup with bunx
No installation required. Run any command with:
```bash
bunx @gltf-transform/cli <command> [args]
```
First run downloads the tool, subsequent runs are instant.
## Quick Start
```bash
# Inspect model stats first
bunx @gltf-transform/cli inspect model.glb
# One-command optimization (good defaults)
bunx @gltf-transform/cli optimize input.glb output.glb --compress draco --texture-compress webp
```
## CAD Workflow Integration
Typical pipeline after generating models with build123d:
```
create geometry → export GLB → optimize → verify visually
```
1. **build123d** exports high-quality CAD geometry
2. **gltf-transform** compresses for web delivery
3. **render-glb** verifies the result
## Compression Methods
| Method | Best For | Trade-offs |
|--------|----------|------------|
| **Draco** | Web delivery, Three.js | Smallest geometry, requires decoder |
| **Meshopt** | Universal, animations | Good compression + animation support |
| **Quantize** | Compatibility | No decoder needed, moderate compression |
```bash
# Draco - best geometry compression
bunx @gltf-transform/cli draco input.glb output.glb
# Meshopt - geometry + animation compression
bunx @gltf-transform/cli meshopt input.glb output.glb
# Quantize only - no external decoder needed
bunx @gltf-transform/cli quantize input.glb output.glb
```
## Texture Compression
```bash
# WebP - good compression, wide browser support
bunx @gltf-transform/cli webp input.glb output.glb
# Resize large textures
bunx @gltf-transform/cli resize input.glb output.glb --width 1024 --height 1024
```
## Common Operations
### Inspect Model Stats
```bash
bunx @gltf-transform/cli inspect model.glb
```
Shows vertex count, file size breakdown, texture sizes - helps decide what to optimize.
### Simplify Geometry
```bash
# Weld duplicate vertices first
bunx @gltf-transform/cli weld input.glb temp.glb
# Then simplify
bunx @gltf-transform/cli simplify temp.glb output.glb --ratio 0.5
```
Useful for CAD models which often have more detail than needed for web viewing.
### Merge Multiple Models
```bash
bunx @gltf-transform/cli merge part1.glb part2.glb assembly.glb
```
### Aggressive Optimization
```bash
bunx @gltf-transform/cli optimize input.glb output.glb \
--compress draco \
--texture-compress webp \
--simplify true \
--simplify-ratio 0.5
```
## When to Use
| Scenario | Commands |
|----------|----------|
| Web delivery | `optimize --compress draco --texture-compress webp` |
| Check model stats | `inspect` |
| High-poly CAD model | `weld` then `simplify --ratio 0.5` |
| Combine parts | `merge` |
| Debug issues | `inspect` then targeted fixes |
No comments yet. Be the first to comment!