Back to list
ckorhonen

gsplat-optimizer

by ckorhonen

0🍴 0📅 Jan 19, 2026

SKILL.md


name: gsplat-optimizer description: Optimize 3D Gaussian Splat scenes for real-time rendering on iOS, macOS, and visionOS. Use when working with .ply or .splat files, targeting mobile/Apple GPU performance, or needing LOD, pruning, or compression strategies for 3DGS scenes.

Gaussian Splat Optimizer

Optimize 3D Gaussian Splatting scenes for real-time rendering on Apple platforms (iOS, macOS, visionOS) using Metal.

When to Use

  • Optimizing .ply or .splat files for mobile/Apple GPU targets
  • Reducing gaussian count for performance (pruning strategies)
  • Implementing Level-of-Detail (LOD) for large scenes
  • Compressing splat data for bandwidth/storage constraints
  • Profiling and optimizing Metal rendering performance
  • Targeting specific FPS goals on Apple hardware

Quick Start

Input: Provide a .ply/.splat file path, target device class, and FPS target.

# Analyze a splat file
python ~/.claude/skills/gsplat-optimizer/scripts/analyze_splat.py scene.ply --device iphone --fps 60

Output: The skill provides:

  1. Point/gaussian pruning plan (opacity, size, error thresholds)
  2. LOD scheme suggestion (distance bins, gaussian subsets)
  3. Compression recommendation (if bandwidth/storage bound)
  4. Metal profiling checklist with shader/compute tips

Optimization Workflow

Step 1: Analyze the Scene

First, understand your scene characteristics:

  • Gaussian count: Total number of splats
  • Opacity distribution: Histogram of opacity values
  • Size distribution: Gaussian scale statistics
  • Memory footprint: Estimated GPU memory usage

Step 2: Determine Target Device

Device ClassGPU BudgetMax Gaussians (60fps)Storage Mode
iPhone (A15+)4-6GB unified~2-4MShared
iPad Pro (M1+)8-16GB unified~6-8MShared
Mac (M1-M3)8-24GB unified~8-12MShared/Managed
Vision Pro16GB unified~4-6M (stereo)Shared
Mac (discrete GPU)8-24GB VRAM~10-15MPrivate

Step 3: Apply Pruning

If gaussian count exceeds device budget:

  1. Opacity threshold: Remove gaussians with opacity < 0.01-0.05
  2. Size culling: Remove sub-pixel gaussians (< 1px at target resolution)
  3. Importance pruning: Use LODGE algorithm for error-proxy selection
  4. Foveated rendering: For Vision Pro, reduce density in peripheral view

See references/pruning-strategies.md for details.

Step 4: Implement LOD (Large Scenes)

For scenes exceeding single-frame budget:

  1. Distance bins: Near (0-10m), Mid (10-50m), Far (50m+)
  2. Hierarchical structure: Octree or LoD tree for spatial queries
  3. Chunk streaming: Load/unload based on camera position
  4. Smooth transitions: Opacity blending at chunk boundaries

See references/lod-schemes.md for details.

Step 5: Apply Compression (If Needed)

For bandwidth/storage constraints:

MethodCompressionUse Case
SOGS20xWeb delivery, moderate quality
SOG24xWeb delivery, better quality
CodecGS30x+Maximum compression
C3DGS31xFast rendering priority

See references/compression.md for details.

Step 6: Profile and Optimize Metal

  1. Choose storage mode: Private for static data, Shared for dynamic
  2. Optimize shaders: Function constants, thread occupancy
  3. Profile with Xcode: GPU Frame Capture, Metal System Trace
  4. Iterate: Measure, optimize, repeat

See references/metal-profiling.md for details.

Key Metrics

MetricTargetHow to Measure
Frame time16.6ms (60fps)Metal System Trace
GPU memory< device budgetXcode Memory Graph
Bandwidth< 50GB/sGPU Counters
Shader time< 10msGPU Frame Capture

Reference Implementation

MetalSplatter is the primary reference for Swift/Metal gaussian splatting:

Getting Started with MetalSplatter

git clone https://github.com/scier/MetalSplatter.git
cd MetalSplatter
open SampleApp/MetalSplatter_SampleApp.xcodeproj
# Set to Release scheme for best performance

Resources

Reference Documentation

Research Papers

Apple Developer Resources

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon