/

MetalSplatter

MetalSplatter is an MIT licensed Swift and Metal renderer that draws Gaussian splats on iOS, macOS and visionOS.

Location

Seattle, WA

Size

1

Platform

Swift package for iOS 18, macOS 15 and visionOS 2. Free viewer app on the visionOS App Store

GPU

None published. Rendering is Metal on Apple silicon, so any device meeting the iOS 18, macOS 15 or visionOS 2 floor has a capable GPU

Pricing

Free. The library is open source and the Vision Pro viewer app is a free download

License

MIT (library). The Vision Pro viewer app is not open source

Compare licence terms ↗

Best for

Rendering Gaussian splats inside a native Apple app

Updated

July 2026

MetalSplatter is a Swift and Metal library that renders 3D Gaussian splats on Apple platforms, written by Seattle developer Sean Cier and released under the MIT licence. The repository was created on December 31 2023 and carries 718 stars and 113 forks as of October 2026. Its package manifest targets iOS 18, macOS 15 and visionOS 2, so the library builds for iPhone, iPad, Mac and Apple Vision Pro rather than for Vision Pro alone. On Vision Pro it draws the scene in stereo using vertex amplification.

Two different things carry the MetalSplatter name and the project's own README calls the overlap confusing. The library is the open source Swift package. The MetalSplatter viewer is a separate closed source Vision Pro app built on that library, and it adds camera controls and a splat gallery the library itself does not provide. The viewer arrived for Apple Vision Pro in February 2024 and reached its own 1.0 in August 2024, while the library did not tag 1.0.0 until February 2 2026, with 1.0.1 following on February 20 2026.

The package ships four libraries and one command line tool. MetalSplatter renders a frame, PLYIO reads and writes binary and ASCII PLY files as a standalone component, SplatIO interprets PLY, SPZ and .splat files as sets of splats, and SampleBoxRenderer is a drop in replacement used for debugging an integration. The SplatConverter executable converts between the supported formats. SPZ handling comes from the separate spz-swift package, which SplatIO depends on from version 2.1.0.

One input constraint is worth knowing before a file is loaded. The PLY reader in SplatIO as released in 1.0.1 holds a fixed spherical harmonics count of 45 and requires every f_rest property that count implies, so it opens splat PLY files stored at the full degree three layout and rejects files written at degree one or two. A file carrying no f_rest properties at all takes a separate branch, keeps the DC term only, and loads normally. Pipelines that emit lighter files with an intermediate number of coefficients therefore produce PLY files the 1.0.1 reader will not read. A change merged to main on September 2 2026 reads PLY files at any spherical harmonics degree, accepting exactly 0, 9, 24 or 45 f_rest properties and rejecting gapped or mismatched layouts, but no release has been tagged since 1.0.1, so the fix is merged and not yet released.

Development is intermittent. The most recent tag is 1.0.1 from February 20 2026, and the last commits on main landed on September 2 2026, when Sean Cier merged the spherical harmonics reader change, a follow up validation fix and a SplatMart listing among the project's 3DGS file resources. Four pull requests remain open, the oldest from May 2025, covering a GPU sorting implementation, a sorter loop fix, an Xcode 16.4 and Swift 6.1 build and crash fix, and camera controls for the macOS and iOS sample app.

Frequently Asked Questions

What platforms does MetalSplatter run on?

MetalSplatter targets iOS 18, macOS 15 and visionOS 2 in its Swift package manifest, so it builds for iPhone, iPad, Mac and Apple Vision Pro. On Vision Pro it renders in stereo using vertex amplification.

Is MetalSplatter free and open source?

MetalSplatter the library is open source under an MIT licence on GitHub. The MetalSplatter viewer for Apple Vision Pro is a separate free App Store download and is not open source, a distinction the project's own README flags as confusing.

What file formats does MetalSplatter read?

MetalSplatter reads PLY, SPZ and .splat files through its SplatIO library and converts between them with the SplatConverter command line tool. SPZ support comes from the separate spz-swift package.

Why does MetalSplatter fail to open some splat PLY files?

MetalSplatter's PLY reader in release 1.0.1 expects the full spherical harmonics degree three layout of 45 f_rest properties and rejects splat PLY files written at degree one or two. Files carrying no f_rest properties at all still load with their DC term. A change accepting degree one and two layouts was merged to main on September 2 2026, but it is not in a tagged release, so MetalSplatter 1.0.1 still rejects those files.

Is MetalSplatter still being developed?

MetalSplatter last tagged a release, 1.0.1, on February 20 2026, and last saw commits on main on September 2 2026, when the spherical harmonics degree fix was merged. Four pull requests from outside contributors remain open, the oldest dating to May 2025.

Alternatives