MetalSplatter Documentation

repository·main·Indexed 20 days ago

https://github.com/scier/metalsplatter

A Swift and Metal-based library for rendering 3D Gaussian Splats on iOS, macOS, and visionOS. It includes the core rendering engine, PLYIO for binary or ASCII PLY files, and SplatIO for interpreting .ply, .spz, and .splat files.

Tokens
394
Snippets
0
Records
2
Agent score
22%

What's inside MetalSplatter

  1. Overview of MetalSplatter modules

    main

    MetalSplatter is a Swift/Metal library designed to render 3D Gaussian Splats on Apple platforms (iOS, macOS, and visionOS). The project is composed of several specialized modules:

    • MetalSplatter: The core rendering engine used to render individual frames.
    • PLYIO: A standalone module for reading and writing binary or ASCII PLY files.
    • SplatIO: A thin layer built on top of PLYIO that interprets PLY and .splat files specifically as sets of splats.
    • SampleApp: A minimal demonstration application illustrating how to integrate the modules.
    • SampleBoxRenderer: A drop-in replacement for MetalSplatter intended for debugging integration; it renders a standard Metal cube instead of splats.
  2. Get started with MetalSplatter SampleApp

    main

    To explore MetalSplatter using the provided sample project, follow these steps:

    1. Prepare Data: Obtain a Gaussian Splat file in .ply, .spz, or .splat format.
    2. Open Project: Clone the repository and open SampleApp/MetalSplatter_SampleApp.xcodeproj in Xcode.
    3. Configure Signing: For iOS or visionOS targets, select your target and configure your development team and bundle ID in the Signing & Capabilities tab. macOS requires no special signing configuration.
    4. Set Build Configuration: Ensure your scheme is set to Release mode. Loading large splat files in Debug mode is significantly slower (more than an order of magnitude).
    5. Run: Execute the app.

    Performance Tip: For the best framerate, run the app directly from the device/simulator Home screen rather than running it through the Xcode debugger.