You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,8 @@
1
1
# MetalSplatter
2
2
Render 3D Gaussian Splats using Metal on Apple platforms (iOS/iPhone/iPad, macOS, and visionOS/Vision Pro)
3
3
4
+

5
+
4
6
This is a Swift/Metal library for rendering scenes captured via the techniques described in [3D Gaussian Splatting for Real-Time Radiance Field Rendering](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/). 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
5
7
* MetalSplatter, the core library to render a frame
6
8
* PLYIO, for reading binary or ASCII PLY files (not writing yet, despite the name); this is standalone, feel free to use it if you just have a hankering to load up some PLY files for some reason.
@@ -10,12 +12,11 @@ This is a Swift/Metal library for rendering scenes captured via the techniques d
10
12
11
13
## Minimal early version
12
14
13
-
There are a lot of big pieces and optimizations missing here, it's still very much a work in progress, but
15
+
There are a lot of optimizations missing here, it's still very much a work in progress, but
14
16
I'm putting this out there in case there are any brave curious souls that want to tinker with it.
15
17
16
18
### TODO / general shortcomings
17
19
18
-
* Fix colors, which currently aren't quite correct
19
20
* Reduce precision to improve memory usage
20
21
* Precompute the covariance matrix, to slightly reduce memory usage and time spent in the vertex shader
21
22
* Spherical harmonics
@@ -38,6 +39,11 @@ You're right, the documentation is entirely missing. I mean, it's kinda embarras
38
39
4. Set your scheme to Release mode. Loading large PLY files is in Debug more than an order of magnitude slower.
39
40
5. Run it
40
41
42
+
## MetalSplatter Model Viewer
43
+
44
+
There's a simple, official [MetalSplatter model viewer app](https://apps.apple.com/us/app/metalsplatter/id6476895334) based on this library,
45
+
available on visionOS for Vision Pro (support for iOS/macOS is coming later). It's also called MetalSplatter, go figure.
46
+
41
47
## Acknowledgements
42
48
43
49
There are no external dependencies; and the basic math to render gaussian splats is straightforward (the basic representation has [been around for decades](https://en.wikipedia.org/wiki/Gaussian_splatting)), so there are a lot of great references around and I drew on a lot of 'em to try and understand how it works; there's really very little new here, the recent innovations are about training, not rendering. Nonetheless, I pretty much made every mistake possible while implementing it, and the existance of these three implementations was invaluable to help see what I was doing wrong:
0 commit comments