Skip to content

CLI Reference

Complete command-line reference for @storysplat/splat-tools.

Installation

# Global installation
npm install -g @storysplat/splat-tools

# Or use npx for one-off commands
npx @storysplat/splat-tools <command>

Commands Overview

Command Description
convert Convert between splat formats
image2splat Create splat from images
video2splat Create 4DGS from video
info Display splat file information
preview Launch preview server
manifest Generate 4DGS manifest

convert

Convert between Gaussian Splat formats.

Usage

splat-tools convert <input> [output] [options]

Arguments

Argument Description
input Input file path or glob pattern
output Output file path (optional for batch)

Options

Option Alias Description Default
--format -f Output format (sog, ply, splat) Auto-detect
--quality -q Quality level (low, medium, high) medium
--output-dir -o Output directory for batch Same as input
--compress Enable compression (PLY) true
--overwrite Overwrite existing files false
--verbose -v Show detailed output false

Examples

# Single file conversion
splat-tools convert scene.ply scene.sog

# Batch conversion
splat-tools convert "*.ply" --output-dir ./converted --format sog

# High quality SOG
splat-tools convert scene.ply scene.sog --quality high

# Verbose output
splat-tools convert scene.ply scene.sog --verbose

image2splat

Create a Gaussian Splat from a collection of images.

Usage

splat-tools image2splat --input <dir> --output <file> [options]

Options

Option Alias Description Default
--input -i Input directory with images Required
--output -o Output file path Required
--preset -p Quality preset (fast, balanced, high) balanced
--iterations Training iterations Preset-based
--format -f Output format (sog, ply) sog
--gpu GPU device ID or 'auto' auto
--keep-temp Keep intermediate files false
--verbose -v Show detailed output false

Presets

Preset Iterations Description
fast 3000 Quick results, lower quality
balanced 10000 Good balance of speed and quality
high 30000 Best quality, longer processing

Examples

# Basic usage
splat-tools image2splat --input ./photos --output scene.sog

# High quality
splat-tools image2splat -i ./photos -o scene.sog --preset high

# Custom iterations
splat-tools image2splat -i ./photos -o scene.ply --iterations 20000

# Specific GPU
splat-tools image2splat -i ./photos -o scene.sog --gpu 0

video2splat

Convert video to 4DGS frame sequence.

Usage

splat-tools video2splat --input <video> --output <dir> [options]

Options

Option Alias Description Default
--input -i Input video file Required
--output -o Output directory Required
--fps Frames per second 24
--start Start time (seconds or HH:MM:SS) 0
--duration Duration (seconds or HH:MM:SS) Full video
--format -f Frame format (sog, ply) sog
--quality -q Quality preset balanced
--gpu GPU device ID auto
--parallel Parallel frame processes 1
--manifest Generate manifest.json true
--verbose -v Show detailed output false

Examples

# Basic conversion
splat-tools video2splat --input dance.mp4 --output ./dance-4dgs

# Specific FPS and duration
splat-tools video2splat -i video.mp4 -o ./output --fps 30 --duration 5

# Start at specific time
splat-tools video2splat -i video.mp4 -o ./output --start 01:30 --duration 10

# High quality with parallel processing
splat-tools video2splat -i video.mp4 -o ./output --quality high --parallel 2

info

Display information about a splat file.

Usage

splat-tools info <file> [options]

Options

Option Alias Description Default
--json -j Output as JSON false
--verbose -v Show all properties false

Examples

# Basic info
splat-tools info scene.sog

# JSON output
splat-tools info scene.sog --json

# Verbose
splat-tools info scene.ply --verbose

Output

File: scene.sog
Format: SOG (StorySplat Optimized Gaussian)
Size: 45.2 MB
Gaussians: 523,456
Bounding Box: [-2.5, -1.0, -3.0] to [2.5, 3.0, 3.0]
Created: 2024-01-15T10:30:00Z

preview

Launch a local preview server for splat files.

Usage

splat-tools preview <file> [options]

Options

Option Alias Description Default
--port -p Server port 3000
--host Host address localhost
--open -o Open browser automatically true

Examples

# Preview file
splat-tools preview scene.sog

# Custom port
splat-tools preview scene.sog --port 8080

# Don't open browser
splat-tools preview scene.sog --no-open

manifest

Generate a manifest file for 4DGS frame sequences.

Usage

splat-tools manifest <directory> [options]

Options

Option Alias Description Default
--output -o Output manifest path ./manifest.json
--fps Playback FPS 24
--loop Loop playback true
--base-url Base URL for frames Empty

Examples

# Generate manifest
splat-tools manifest ./frames

# With base URL
splat-tools manifest ./frames --base-url https://cdn.example.com/4dgs/

# Custom FPS
splat-tools manifest ./frames --fps 30 --no-loop

Output

{
  "version": "1.0",
  "fps": 24,
  "loop": true,
  "frameCount": 120,
  "frames": [
    "frame_000.sog",
    "frame_001.sog",
    "..."
  ]
}

Global Options

These options work with all commands:

Option Description
--help Show help for command
--version Show version number
--quiet Suppress non-error output

Exit Codes

Code Description
0 Success
1 General error
2 Invalid arguments
3 File not found
4 Processing error
5 GPU error

Environment Variables

Variable Description
SPLAT_TOOLS_GPU Default GPU device ID
SPLAT_TOOLS_QUALITY Default quality preset
SPLAT_TOOLS_VERBOSE Enable verbose output (1/0)
# Set defaults
export SPLAT_TOOLS_GPU=0
export SPLAT_TOOLS_QUALITY=high

Configuration File

Create ~/.splat-tools.json for persistent settings:

{
  "gpu": "auto",
  "quality": "balanced",
  "defaultFormat": "sog",
  "verbose": false
}