Command-line quickstart

For easier access to its library, glTF-Transform offers a command-line interface (CLI). The CLI supports many of the features of the @gltf-transform/functions package, and some general tools for inspecting and packing/unpacking glTF or GLB files.


npm install --global @gltf-transform/cli

To run the most common optimizations in one easy step, use the optimize command:

gltf-transform optimize input.glb output.glb --compress draco --texture-compress webp

Defaults in the optimize command may not be ideal for all scenes. Some of its features can be configured (optimize -h), or more advanced users may wish to inspect their scenes then pick and choose optimizations.

gltf-transform inspect input.glb

The report printed by the inspect command should identify validation issues, and whether the scene is generally geometry-heavy, texture-heavy, has too many draw calls, etc. Apply individual commands below to deal with any of these issues as needed.

Full command list:

  gltf-transform 3.3.6 — Command-line interface (CLI) for the glTF Transform SDK.

    ▸ gltf-transform <command> [ARGUMENTS...] [OPTIONS...]

  COMMANDS — Type 'gltf-transform help <command>' to get some help about a command

                                         🔎 INSPECT ──────────────────────────────────────────  
    inspect                              Inspect contents of the model                          
    validate                             Validate model against the glTF spec                   
                                         📦 PACKAGE ──────────────────────────────────────────  
    copy                                 Copy model with minimal changes                        
    optimize                             ✨ Optimize model by all available methods             
    merge                                Merge two or more models into one                      
    partition                            Partition binary data into separate .bin files         
    dedup                                Deduplicate accessors and textures                     
    prune                                Remove unreferenced properties from the file           
    gzip                                 Compress model with lossless gzip                      
    xmp                                  Add or modify XMP metadata                             
                                         🌍 SCENE ────────────────────────────────────────────  
    center                               Center the scene at the origin, or above/below it      
    instance                             Create GPU instances from shared mesh references       
    flatten                              ✨ Flatten scene graph                                 
    join                                 ✨ Join meshes and reduce draw calls                   
                                         🕋 GEOMETRY ─────────────────────────────────────────  
    draco                                Compress geometry with Draco                           
    meshopt                              Compress geometry and animation with Meshopt           
    quantize                             Quantize geometry, reducing precision and memory       
    dequantize                           Dequantize geometry                                    
    weld                                 Index geometry and optionally merge similar vertices   
    unweld                               De-index geometry, disconnecting any shared vertices   
    tangents                             Generate MikkTSpace vertex tangents                    
    reorder                              Optimize vertex data for locality of reference         
    simplify                             Simplify mesh, reducing number of vertices             
                                         🎨 MATERIAL ─────────────────────────────────────────  
    metalrough                           Convert materials from spec/gloss to metal/rough       
    unlit                                Convert materials from metal/rough to unlit            
                                         🖼  TEXTURE ──────────────────────────────────────────  
    resize                               Resize PNG or JPEG textures                            
    etc1s                                KTX + Basis ETC1S texture compression                  
    uastc                                KTX + Basis UASTC texture compression                  
    ktxfix                               Fixes common issues in KTX texture metadata            
    avif                                 ✨ AVIF texture compression                            
    webp                                 WebP texture compression                               
    png                                  PNG texture compression                                
    jpeg                                 JPEG texture compression                               
                                         ⏯  ANIMATION ────────────────────────────────────────  
    resample                             Resample animations, losslessly deduplicating keyframes
    sequence                             Animate node visibilities as a flipboard sequence      
    sparse                               ✨ Reduces storage for zero-filled arrays              


    -h, --help                           Display global help or command-related help.           
    -V, --version                        Display version.                                       
    -v, --verbose                        Verbose mode: will also output debug messages.         
    --allow-http                         Allows reads from HTTP requests.                       
    --vertex-layout <layout>             Vertex buffer layout preset.                           
                                         one of "interleaved","separate", default: "interleaved"
    --config <path>                      Installs custom commands or extensions. (EXPERIMENTAL) 

The commandline also supports configuration to install custom commands or support for custom glTF extensions. See configuration for details.

Function symbol, where the argument and output are a box labeled 'glTF'.

Made by Don McCurdy Documented with greendoc © 2023 MIT License