Archived prototype for an interactive macOS desktop wallpaper for Gaussian splats.
This repository is now a public landing and migration page for the original
Splat Wallpaper Engine prototype. The working direction has moved to a native
SwiftUI and Metal successor app, gsplat, which includes the macOS Splatpaper
wallpaper mode and broader iPhone/iPad viewer targets.
The original app here remains useful as historical reference:
- AppKit menu-bar wallpaper window behavior.
- WebKit/SuperSplat
.sogrendering prototype. - Windows tray/WebView2 prototype notes.
- Packaging and release history through
v0.1.7.
For new work, use the native Metal app instead of extending this WebKit-based renderer.
Successor repo:
benwilliams0540/gsplat
Note: gsplat is private at the time this README was updated. This repo does
not vendor or relicense any of that code.
The original goal was a menu-bar Mac app that renders a local Gaussian splat as the desktop background, then lets the user temporarily interact with it by orbiting, panning, zooming, and saving a new default camera angle.
Use this repo for reference only. The main architectural replacement is:
Splat Wallpaper Engine
AppKit menu-bar shell
WKWebView
bundled SuperSplat viewer
.sog only at runtime
gsplat / Splatpaper
SwiftUI app shell
MTKView
native Metal renderer
.ply, .sog, .splat, .spz imports
macOS wallpaper mode plus iOS/iPadOS viewer targets
If this project is revived publicly, the safest path is not to copy private
source from gsplat. Instead, first settle licensing and contribution ownership,
then either:
- Move the public app to the successor repo.
- Extract a properly licensed renderer package from the successor.
- Keep this repo archived and point releases/users to the successor.
- Load an existing local
.sogsplat. - Keep
.plyfiles as source/archive assets, not runtime assets. - Render the splat in a desktop-level borderless window.
- Toggle interaction mode from the menu bar or a hotkey.
- Toggle in-place splat rotation from the menu bar with speed, FPS cap, and VSync controls.
- Open a local
.sogscene from the menu. - Save the active camera view.
- Pause or reduce frame rate when not interacting.
Gaussian Splat PLY source -> SOG runtime derivative -> desktop renderer
.sog is the preferred runtime format because it is compact and already fits Monroe's monroe.space publishing flow. .spz and .ksplat remain fallback candidates if renderer support is better in a chosen library.
Start with a Swift/AppKit shell that owns the desktop-level window, then embed the proven SuperSplat web viewer from monroe.space. Once the user experience is validated, decide whether to keep the web renderer or replace it with a native Metal renderer.
That decision has now been made: the native Metal renderer path is the winner.
swift runUse the menu-bar Splat item to:
- open a
.sogscene; - show or hide the wallpaper window;
- toggle interaction mode;
- toggle in-place rotation and tune speed, FPS cap, or VSync rendering.
The Windows port is scaffolded under windows/SplatWallpaperEngine.Win. It uses WPF, WebView2, a notification-area tray menu, and a Win32 WorkerW desktop attachment service.
cd windows\SplatWallpaperEngine.Win
.\sync-renderer.ps1
dotnet restore
dotnet build -c ReleaseSee docs/windows-port-plan.md for the conversion plan and Windows verification checklist.
- GitHub: https://github.com/StoneHub
- Personal site: https://monroes.tech
Splat Wallpaper Engine is licensed under the Apache License, Version 2.0. Apache-2.0 is permissive like MIT, but includes an explicit patent grant from contributors.
The bundled renderer includes MIT-licensed SuperSplat/PlayCanvas code from PlayCanvas Ltd.; see NOTICE.


