OOOSplat: one-click 3D Gaussian Splatting from video or image sequences on your own machine
A local desktop app that turns videos and images into 3D Gaussian Splats in one click.
At a glance
- What is it?
- OOOSplat is a Tauri desktop app that wraps FFmpeg, COLMAP and Brush behind a single button. It is local-only, Apache-2.0 licensed, and currently ships as 0.4.1 for Windows 11, Apple Silicon macOS and Ubuntu 24.04. The trade-off is that it is an Alpha with unsigned macOS builds and a Linux package pinned to one distribution.
- Who is it for?
- Adopt OOOSplat if you want a local, no-cloud pipeline for turning a single orbit video into a PLY without writing COLMAP and Brush command lines yourself, and if Windows 11 or an M-series Mac is your machine. Skip it if you need Ubuntu 22.04, Intel Macs, a signed and notarized macOS build, or a headless pipeline you can script.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 16, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What OOOSplat actually replaces
The README describes OOOSplat as a local desktop application that converts an orbit video or an image sequence into a 3D Gaussian Splatting model. The manual version of that job is a chain of tools: FFmpeg to extract frames, COLMAP to reconstruct cameras, Brush to train the splats, and a viewer to inspect the result. OOOSplat bundles all four and exposes one button.
The audience is narrow and specific. You need footage you can shoot yourself, a machine with a discrete GPU, and a reason to keep the source material off someone else's servers. The README states that inputs, project files, models and logs stay in the project directory you choose, and that the React front end talks to a Rust back end through Tauri with no remote service and no localhost API. That matters for anyone working with footage they cannot upload, whether because of client contracts or because the dataset is simply large.
What it is not: a photogrammetry suite, a mesh tool, or a hosted reconstruction service. The output is a PLY of Gaussians, plus an optional 23-second vertical MP4 of the animation preview.
The pipeline: FFmpeg, then COLMAP, then Brush
The README documents the flow as a single ordered chain. FFprobe analyses the video, FFmpeg extracts frames at a rate set by the quality tier, COLMAP extracts features and matches them, COLMAP runs incremental reconstruction, Brush trains the Gaussians, and the PLY is validated and atomically published as final.ply.
The matching strategy differs by input type, and this is the detail most worth understanding. Video uses uniform frame extraction with sequential matching. An image sequence keeps every image and uses a shared camera with exhaustive matching and the existing incremental mapper. Exhaustive matching scales with the square of the image count, so a folder of several hundred photos will spend far longer in COLMAP than a video of the same length.
Transparency gets special handling. For a transparent MOV, the app detects the alpha channel and extracts both RGBA PNG frames and COLMAP masks, so transparent regions are excluded from feature extraction but retained for Brush training. Transparent PNGs get the same treatment. The README notes that as long as COLMAP registers at least one image and produces valid 3D points, the job proceeds to Brush; a registration rate below 80% triggers a quality warning but no longer aborts the run automatically.
Installing OOOSplat and running a first job
Installation is a per-platform download from the 0.4.1 release. Windows runs the .exe installer, which the README says may require administrator rights because it is a machine-wide install. Apple Silicon users open the .dmg and drag the app to Applications. Ubuntu 24.04 uses the .deb.
sudo apt install ./OOOSplat-0.4.1-x64-linux.debThe .deb pulls in FFmpeg, FFprobe and the distribution's CPU-only COLMAP through the Ubuntu package manager, and the pinned Brush binary is inside the package. If you would rather build from source on Ubuntu, the README lists the development dependencies:
sudo apt update
sudo apt install -y \
build-essential curl file ffmpeg colmap \
libwebkit2gtk-4.1-dev libxdo-dev libssl-dev \
libayatana-appindicator3-dev librsvg2-dev libdbus-1-devSource builds need Node.js 22.12+, Rust stable and the Tauri 2 WebKitGTK dependencies. The repository's package.json exposes the engine scripts, including npm run setup:engines and npm run verify:engines, plus per-platform variants such as setup:engines:linux and verify:engines:macos.
Once the app is open, the README's steps are: check the bundled engine status in the top bar, choose 视频 or 图片 in the 01 创建新任务 panel, pick the input file or folder, choose a project root (the default is Documents\SplatStudio\Projects), pick 快速, 均衡 or 精细, read the detected COLMAP acceleration status and its reason, then press 开始生成. Progress, stage, key counts, elapsed time and up to 500 log lines appear on the left. When the run finishes, open 02 历史任务 and press 预览 to load the PLY in the 03 预览 tab.
Quality tiers and the disk cost they hide
The three tiers change three numbers at once. 快速 keeps 30% of frames, extracts at source FPS times 0.30, runs 8,000 Brush iterations and caps training resolution at 1,200. 均衡 is 50%, 15,000 iterations, 1,600 pixels. 精细 is 100%, 30,000 iterations, 2,000 pixels.
Frame extraction is FFmpeg's job, and the README is explicit that COLMAP does not reduce frame count. There is no maximum frame count and no splat count cap; the final number of Gaussians falls out of the footage, the reconstruction and the training run. That is the honest answer, but it also means you cannot predict the output size from the tier alone.
The disk requirement is the practical constraint. Each project folder holds a copy of the source video, the normalised input images, the COLMAP database and sparse reconstruction, Brush datasets and intermediates, and the final PLY. The README warns that long videos, large image sequences or the 精细 tier can consume a lot of space. Deleting a project sends the whole directory to the system trash, including the source copy, and the README states the app will not fall back to permanent deletion if the trash operation fails.
GPU detection is two independent systems
This is the part that trips people up. COLMAP and Brush each decide their own backend, and the README says the two detection and execution mechanisms are independent.
On Windows, the bundled COLMAP build supports both CPU and CUDA. Before running, it checks the CUDA runtime, the NVIDIA driver version (528.33 or higher) and the GPU's Compute Capability (5.0 or higher). If any of those fail, it falls back to CPU without asking. Brush separately uses whatever graphics backend is available, and the README recommends a discrete GPU for training.
On macOS, COLMAP is pinned to CPU and the interface states that reason explicitly. Brush selects a Metal backend. On Ubuntu, the distribution COLMAP has no CUDA and always runs on CPU, while Brush picks a Vulkan backend at runtime. The README notes that a fully CPU-only software Vulkan backend has not been verified end to end, and that current end-to-end validation used an NVIDIA GPU. So a Linux machine with no working Vulkan driver is untested territory, not a supported configuration.
Editing, export and where the tool stops
The 03 预览 tab loads a .ply from any past project with orbit, pan and zoom. 调整 mode moves, rotates and uniformly scales the whole model, with undo and redo. Rectangular selection can punch through the model and delete points non-destructively; spherical and box selections keep the Gaussians inside the region. Selections and deletions save to a single edit.ply, and the README promises that final.ply is never overwritten.
动画 mode plays a 5-second reveal, an 8-second shockwave and a continuous camera orbit, and exports a 1080x1920, 30 fps, 23-second H.264 MP4 with an OOOSplat watermark. Video export depends on WebView2 providing WebCodecs AVC encoding. Where that is unavailable, the README says the animation still plays but the export button shows the reason it is disabled.
The limitations are worth stating plainly. There is no batch mode, no CLI and no headless path; the README describes a desktop application driven through its interface. Inputs, project directory and quality tier are locked while a job runs. The macOS build is unsigned and unnotarized, so Gatekeeper may block the first launch and the README tells you to right-click and choose Open. The Linux package is built for Ubuntu 24.04 LTS x86_64 only, and the README does not claim support for Ubuntu 22.04, other distributions, or production deployment. Intel Macs and Universal Binaries are explicitly out of scope. If you need a scripted pipeline on a server, this is the wrong tool.
How OOOSplat differs from running COLMAP and Brush yourself
The alternative most readers will weigh is the manual chain: FFmpeg for frames, COLMAP for cameras, Brush for training, and a separate viewer such as the SuperSplat editor for inspection. That approach runs headless, scripts cleanly, and lets you tune every COLMAP and Brush flag.
The difference is where the decisions live. OOOSplat fixes the matching strategy per input type (sequential for video, exhaustive for images), bundles a checked FFmpeg and Brush on all three platforms, and pins COLMAP versions per platform: a CUDA-capable build on Windows, arm64 CPU COLMAP 4.0.4 on macOS, and the distribution's COLMAP 3.9 on Ubuntu. You get reproducibility across machines and no command-line assembly. You give up flag-level control and the ability to run without a GUI.
The stage-level resume is the feature that most distinguishes it from a shell script. On a restart the app re-checks frame extraction, masks, the COLMAP database, sparse reconstruction and the PLY checkpoint, reuses the stages it trusts, and reruns from the earliest untrusted one. A hand-rolled script typically restarts from zero or requires you to hand-manage intermediate directories.
Licence, maintenance and the cost of upgrading
The repository is Apache-2.0, and the top level also contains a NOTICE file, a TRADEMARK_POLICY.md and a licenses/ directory. The package.json scripts include verify:licenses and per-platform variants, and build:bundle runs verify:engines and verify:licenses before the build. If you redistribute a build, the NOTICE and trademark policy are the files to read rather than assume; the README does not state redistribution terms for the bundled engines beyond the presence of those files.
The bundled engines have their own terms. The README names FFmpeg 8.1.2 and a separate FFprobe, COLMAP 4.0.4 on macOS and the repository's COLMAP 3.9 on Ubuntu, and Brush v0.3.0. Whether your use of Brush or COLMAP triggers obligations is a question for those projects' licences, not for OOOSplat's Apache-2.0 grant.
Maintenance signals: the last push was on 2026-09-13, the same day 0.4.1 was released, following 0.4.0 on 2026-09-07 and 0.3.0 on 2026-08-30. That is a fast release cadence over three weeks. Upgrade cost is mostly re-downloading the platform installer, because the engines are pinned inside each package; there is no separate engine update path documented. The 0.4.1 notes add image sequence input, automatic masking for transparent MOV and PNG, stage-level resume, and rectangular, spherical and box Gaussian editing, while keeping final.ply intact.
Editorial conclusion
Adopt OOOSplat if you want a local, no-cloud pipeline for turning a single orbit video into a PLY without writing COLMAP and Brush command lines yourself, and if Windows 11 or an M-series Mac is your machine. Skip it if you need Ubuntu 22.04, Intel Macs, a signed and notarized macOS build, or a headless pipeline you can script. Verify first that your GPU backend is detected correctly, because the app falls back to CPU silently when COLMAP's CUDA requirements are unmet, and check free disk space before starting a 精细 run.
Frequently asked questions
How do I install OOOSplat on Ubuntu 24.04?
Download the OOOSplat-0.4.1-x64-linux artifact, then run sudo apt install ./OOOSplat-0.4.1-x64-linux.deb. The package pulls in FFmpeg, FFprobe and the distribution's CPU-only COLMAP, and includes the pinned Brush binary.
Does OOOSplat upload my video to a cloud service?
The README states that inputs, extracted frames, reconstruction data, models and logs stay in the project directory you choose, and that reconstruction and training run on your own CPU and GPU. The React interface calls the local Rust backend through Tauri with no remote service or localhost API.
Why is COLMAP running on CPU instead of my GPU in OOOSplat?
CUDA acceleration requires an NVIDIA GPU, Windows driver 528.33 or higher, and Compute Capability 5.0 or higher. If any check fails, the app falls back to CPU automatically. On macOS COLMAP is pinned to CPU, and the Ubuntu package uses a non-CUDA build.
Can OOOSplat run on an Intel Mac?
No. The macOS delivery is an unsigned, unnotarized Alpha for M1 or newer Apple Silicon only, and the README states it does not support Intel Macs or Universal Binaries. Gatekeeper may block the first launch, so right-click the app in Finder and choose Open.
Community notes