Skip to main content
Generalrawwerks

gltf-transform

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.

Stars
32
Source
rawwerks/VibeCAD
Updated
2026-01-05
Slug
rawwerks--VibeCAD--gltf-transform
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/rawwerks/VibeCAD/HEAD/plugins/gltf-transform/skills/gltf-transform/SKILL.md -o .claude/skills/gltf-transform.md

Drops the SKILL.md into .claude/skills/gltf-transform.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

glTF Transform

Post-process GLB/glTF files: optimize, compress, inspect, and transform 3D models.

Zero-Setup with bunx

No installation required. Run any command with:

bunx @gltf-transform/cli <command> [args]

First run downloads the tool, subsequent runs are instant.

Quick Start

# 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
# 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

# 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

bunx @gltf-transform/cli inspect model.glb

Shows vertex count, file size breakdown, texture sizes - helps decide what to optimize.

Simplify Geometry

# 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

bunx @gltf-transform/cli merge part1.glb part2.glb assembly.glb

Aggressive Optimization

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