TL;DR

NullSplats is a Tkinter + OpenGL desktop app that automates frame extraction, COLMAP structure‑from‑motion, and Gaussian splat training using gsplat, Depth Anything 3 (DA3), or SHARP. It stores per‑scene inputs and outputs in a reproducible cache, includes an embedded OpenGL viewer and export tools, and can be bundled as a portable Windows package.

What happened

A new open‑source tool called NullSplats packages a full pipeline for creating 3D Gaussian splats from videos or image folders. The app extracts and scores frames (ffmpeg/ffprobe), runs COLMAP for camera poses and sparse points, then trains splats on the GPU using gsplat or alternative backends (Depth Anything 3 and SHARP). Users can export checkpoints as .ply or .splat and preview results in an embedded OpenGL viewer. NullSplats organizes data under a per‑scene cache tree so scenes can be resumed and reproducibility preserved. The repo describes UI tabs for Inputs, COLMAP, Training and Exports, background threading and logging, and a build.bat that creates a portable Windows bundle. Reported run times on an RTX Pro 6000 Blackwell were roughly 5 minutes for a 50‑view gsplat (including COLMAP), 3–4 minutes for DA3 (noting high VRAM use), and about 2.5 minutes for a single‑view SHARP result.

Why it matters

  • Combines frame extraction, SfM and splat training into one reproducible workflow with per‑scene caching.
  • Supports multiple backend methods (gsplat, Depth Anything 3, SHARP) so users can compare multi‑view and single‑view approaches.
  • Includes an integrated OpenGL viewer and export tools for .ply/.splat checkpoints, simplifying inspection and rendering.
  • Provides a portable bundle option and clear dependency/workflow steps for environments with CUDA and COLMAP.

Key facts

  • NullSplats is implemented as a Tkinter + OpenGL desktop app and uses PyTorch + gsplat for training.
  • Input workflow: ingest video or image folder, extract & score frames, auto‑select a subset, then run COLMAP SfM.
  • Training backends supported: traditional COLMAP + gsplat, Depth Anything 3 (DA3), and SHARP (single‑view capable).
  • Exports: checkpoints can be saved as .ply or .splat and previewed with an embedded GLCanvas/OpenGL viewer.
  • Per‑scene cache layout stores source, all frames, selected frames, metadata, SfM outputs, splats and renders under cache/inputs and cache/outputs.
  • Reported timings on an RTX Pro 6000 Blackwell: ~5 minutes for 50‑view gsplat (including COLMAP), ~3–4 minutes for DA3 (noted 16GB VRAM usage), ~2.5 minutes for SHARP single‑view.
  • DA3 requires installation via pip from the Depth Anything 3 GitHub repository; SHARP is included under tools/sharp and can be installed editable.
  • Requirements: Windows (primary) or Linux with matching binaries, Python 3.10+, a CUDA‑capable GPU with PyTorch CUDA build, ffmpeg/ffprobe on PATH, and COLMAP binaries.

What to watch next

  • GLOMAP is listed as an optional future tool under tools/glomap — possible future integration for other rendering/backends.
  • Not confirmed in the source: a public roadmap or scheduled features and timelines for new backends or UI improvements.
  • Not confirmed in the source: official prebuilt installers or packages for platforms beyond the Windows portable bundle.

Quick glossary

  • Gaussian splat: A point‑based 3D representation where oriented Gaussian kernels (splats) approximate surface appearance for rendering and view synthesis.
  • COLMAP: An open‑source structure‑from‑motion and multi‑view stereo toolkit used to estimate camera poses and sparse 3D points from images.
  • SfM (Structure from Motion): A process that recovers camera positions and a sparse 3D scene structure from multiple overlapping images.
  • PLY: A common 3D file format (Polygon File Format) used for storing 3D point clouds and mesh data; here used for checkpoint exports.
  • CUDA: A parallel computing platform and API model from NVIDIA for running GPU‑accelerated code, commonly required for PyTorch GPU workloads.

Reader FAQ

How do I run the app after installing dependencies?
Activate the virtual environment and run python main.py from the repo root; logs output to logs and cache directories.

Which splat creation methods does NullSplats support?
It supports gsplat (with COLMAP), Depth Anything 3 (DA3), and SHARP.

Does NullSplats require a GPU?
Yes — a CUDA‑capable GPU and a PyTorch CUDA build are listed as requirements.

Is Depth Anything 3 included by default?
No — DA3 must be installed via pip from its GitHub repository (pip install git+https://github.com/ByteDance-Seed/Depth-Anything-3).

Is there an official cross‑platform installer or packaged release?
The repository includes a Windows portable bundle builder (build.bat); broader packaged installers are not confirmed in the source.

NullSplats Tkinter + OpenGL desktop app for training and viewing 3D Gaussian splats from casual captures. It wraps COLMAP for camera poses, uses PyTorch + gsplat for training, and stores…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *