scier / MetalSplatter

Render Gaussian Splats using Metal on Apple platforms (iOS/iPhone/iPad, macOS, and visionOS)
MIT License
239 stars 27 forks source link

MetalSplatter

Render 3D Gaussian Splats using Metal on Apple platforms (iOS/iPhone/iPad, macOS, and visionOS/Vision Pro)

A greek-style bust of a woman made of metal, wearing aviator-style goggles while gazing toward colorful abstract metallic blobs floating in space

This is a Swift/Metal library for rendering scenes captured via the techniques described in 3D Gaussian Splatting for Real-Time Radiance Field Rendering. It will let you load up a PLY and visualize it on iOS, macOS, and visionOS (using amplification for rendering in stereo on Vision Pro). Modules include

Documentation

You're right, the documentation is entirely missing; it's a major TODO list item. In the meantime, feel free to try out the sample app -- just, like I said, don't expect much.

  1. Get yourself a gaussian splat PLY (or .splat) file (see Resources below)
  2. Clone the repo and open SampleApp/MetalSplatter_SampleApp.xcodeproj
  3. If you want to run on iOS/visionOS, select your target and set your development team and bundle ID in Signing & Capabilities. On macOS, just have at it.
  4. Make sure your scheme is set to Release mode. Loading large files in Debug is more than an order of magnitude slower.
  5. Run
  6. Note: framerate will be better if you run without the debugger attached (hit Stop in Xcode, and go run from the app from the Home screen)

MetalSplatter Model Viewer

There's a simple, official MetalSplatter model viewer app based on this library, available on visionOS for Vision Pro (support for iOS/macOS is coming later). It's also called MetalSplatter, go figure.

Resources