raea splat

Train footage of a real place or thing into a 3D Gaussian splat for <Splat>, on this Mac's GPU.

View as Markdown

raea splat train turns a video, or a folder of photos, of a real place or object into a Gaussian splat that <Splat src> draws in a 3D scene. It picks frames, solves the cameras with COLMAP and trains with Brush on Metal. raea splat setup installs those tools. Like a solve, a splat is kept in the asset store by its footage and settings, so the same footage trains once.

Terminal
raea splat setup
raea splat train media/shoe.mp4 -o shoe.ply --matte black
raea splat train media/room.mp4 -o room.ply --from 3 --seconds 20 --frames 300 --steps 30000

Usage

Terminal
raea splat train VIDEO|IMAGE_DIR -o OUT.ply [--frames 150] [--steps 20000] [--max-res 1600] [--from S] [--seconds N] [--max-splats 2000000] [--matte none|black] [--match sequential|exhaustive] [--credit TEXT] [--license TEXT] [--dir EDIT_DIR]
raea splat setup   (footage trained into a Gaussian splat for <Splat>; setup installs its tools)

Headless: it needs nothing running and opens no window. Takes up to 2 arguments besides its flags.

Flags

FlagTakesWhat it does
--creditTEXTWho made the footage, written into OUT.ply.json beside the splat.
--dirEDIT_DIRThe edit's folder, whose asset store keeps the splat (the current folder by default).
--frames150How many pictures to train on, 8 to 2000.
--fromSStart this many seconds into a video.
--licenseTEXTThe footage's licence, written into OUT.ply.json.
--matchsequential|exhaustiveHow COLMAP matches pictures: sequential (neighbours only, the default for a video over 60 frames) or exhaustive (every pair).
--mattenone|blackblack for an object filmed on black, trained alone without its background.
--max-res1600The long side the pictures are scaled to, in pixels (256 to 4096).
--max-splats2000000The most splats the result may have.
--secondsNHow many seconds of a video to use (to its end by default).
--steps20000Training steps, 100 to 200000: more is sharper and slower.
-oOUT.plyWhere the splat goes, with its sidecar OUT.ply.json.