/

MetalSplatter

Social Media Links

Github

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

Location

Seattle, WA

Size

1

Total raised

Hiring?

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

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 708 stars and 107 forks. 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 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 shipped reader will not read. A pull request opened on August 22 2026 proposes deriving the degree from the header and padding the missing coefficients with zeros, and it is unmerged.

Development is quiet. The most recent tag is 1.0.1 from February 20 2026 and the last commit on main landed on May 28 2026. Six pull requests are 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, camera controls for the macOS and iOS sample app, a resources addition and the spherical harmonics reader change. None has a maintainer response.

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 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 pull request opened in August 2026 to accept any degree is still unmerged.

Is MetalSplatter still being developed?

MetalSplatter last tagged a release, 1.0.1, on February 20 2026 and last saw a commit on main on May 28 2026. Six pull requests from outside contributors are open and unmerged, the oldest dating to May 2025.

Alternatives