making 3d gaussian splats without an NVIDIA GPU
written
the vast majority of open source software for making 3d gaussian splats (3DGS) requires CUDA, making it unusable for those without an NVIDIA GPU. in the interest of helping people find alternatives, i've decided i should document my 3DGS workflow.
i use MacOS on an Apple Silicon Mac, but none of the software listed below is MacOS-specific.
my workflow
expect the total processing time to be several hours long on a reasonably powerful GPU
-
(if applicable) convert HEIC to JPG:
for file in *.HEIC; do magick $file -quality 100 -auto-orient $file.jpg; done -
(if applicable) extract frames from MP4 using
sharp-frames:
for file in *.mp4; sharp-frames --selection-method batched $file ${file}_images; done -
open
COLMAP
-
File -> New project
- specify database location & input image folder
- click Save
-
Extras -> Set options for...
- set dataset type to either "Individual images" or "Video frames"
- set quality to "Extreme"
-
Processing -> Feature extraction
- choose Camera model
- if all images are taken with the same lens & zoom, enable "Shared for all images"
- click Extract
-
Processing -> Feature matching
- if dataset type is "Individual images", use Exhaustive matching
- if dataset type is "Video frames", use Sequential matching
- click Run
- Reconstruction -> Start reconstruction
-
Extras -> Undistortion
- specify output folder
- click Undistort
-
File -> New project
-
open
Brush
- click Directory and choose output folder from last step
- set Dataset -> Max image resolution to the maximum value
- click Start
- after training is finished, click Export
-
open
SuperSplat Editor
- click File -> Import and choose output PLY file from last step
- edit splat as necessary (see SuperSplat User Guide)
- File -> Export -> PLY
- final PLY file can be lossily compressed to SOG using splat-transform
recommended reading
how gaussian splats work:
- 3D Gaussian Splatting Introduction - LearnOpenCV
- A Comprehensive Overview of Gaussian Splatting - Towards Data Science
example datasets:
capturing techniques:
- Gaussian splatting: a complete student guide to 3D capture
- A Field Guide To Gaussian Splatting
- Capture Images for Gaussian Splatting
software documentation: