gsplat-optimizer

Optimize 3D Gaussian Splat scenes for real-time rendering on Apple platforms.

1|Updated May 6, 2026
One-click install
npx skills add https://github.com/surfingalien/FinSurfing --skill gsplat-optimizer-surfingalien
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gsplat-optimizer
Source: https://github.com/surfingalien/FinSurfing/tree/main/.claude/skills/gsplat-optimizer
Command: npx skills add https://github.com/surfingalien/FinSurfing --skill gsplat-optimizer-surfingalien

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, and includes scripts (resource) and references (resource) components.

What problem does it solve? 3D Gaussian Splat scenes often contain millions of gaussians that exceed the GPU memory and frame-time budgets of iPhones, iPads, Macs, and Vision Pro, causing frame drops, OOM errors, and shader stalls. This Skill analyzes .ply and .splat files and produces concrete pruning, LOD, compression, and Metal profiling plans to hit target frame rates. ## Core Features & Use Cases - Scene Analysis: Parse .ply and .splat files to report gaussian count, memory footprint, opacity/scale distributions, and SH degree via the analyze_splat.py script. - Optimization Planning: Generate pruning thresholds, LOD level schemes (LODGE/FLoD), and compression recommendations (SOGS, SOG, CodecGS, C3DGS) matched to device budgets. - Metal Performance Guidance: Reference documentation covering storage modes, shader function constants, GPU frame capture, and Metal System Trace workflows. - Use Case: You have a 10M-gaussian .ply scene that stutters on iPhone. Run the analyzer with the iphone device target and 60 FPS goal to get an opacity threshold, a 4-level LOD plan, and a SOG compression estimate reducing the file from 1GB to ~42MB. ## Quick Start Analyze my scene.ply file for an iPhone target at 60 FPS and recommend pruning, LOD, and compression settings.

Frequently Asked Questions about gsplat-optimizer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize a Gaussian Splat scene for iPhone rendering?

Run the analyze_splat.py script on your .ply or .splat file with the iphone device flag and FPS target. It reports whether pruning is needed, suggests an opacity threshold, and recommends LOD levels if the scene exceeds the roughly 3M gaussian budget for 60 FPS.

What compression method should I use for 3DGS files on mobile?

SOG offers about 24x compression with good quality and fast WebP decoding, making it the default recommendation for files over 100MB. CodecGS reaches 30x+ using HEVC hardware decoding, while C3DGS achieves 31x with faster rendering on lightweight GPUs.

How many gaussians can an iPhone render at 60 FPS?

An iPhone with A15 or newer handles roughly 2-4M gaussians at 60 FPS given its 4-6GB unified memory budget. Vision Pro effectively handles about half its budget per eye due to stereo rendering, so plan for 4-6M total.

Does this work with both .ply and .splat file formats?

Yes, the analyzer supports both formats. PLY files are parsed for full attribute statistics including SH degree and opacity distributions, while .splat files use the antimatter15 32-bytes-per-gaussian layout with SH degree 0.

Why does my Gaussian Splat scene stutter even with low gaussian counts?

Stuttering usually comes from shader compilation on first frame, synchronous LOD chunk loading, or memory pressure rather than gaussian count. Pre-warm shader caches, stream chunks asynchronously on background threads, and profile with Metal System Trace to find the bottleneck.

When should I use LOD instead of pruning for large splat scenes?

Use LOD when the scene exceeds 1.5x the device gaussian budget and pruning alone would destroy visual quality. LODGE suits scenes over 5M gaussians with hierarchical distance-based levels, while FLoD fits scenarios needing flexible quality scaling across hardware tiers.