Splatworks
Video → per-frame depth → splat sequence · WebGPU
Depth backend:

1Frames

Record a slow orbit around a subject, or pick a video / photos. Video is sliced into evenly-spaced frames, keeping the sharpest moment of each slice.

Slider goes to 240; type in the box for up to 2000.

2Depth & splat options

Advanced

Each frame is converted feed-forward from its own depth map (no training — that needs multiple views, which is the Trainer stage). This is the SHARP-style per-frame approach.

Depth shaping live · drag to see the render change

Inverse depth is 1/z = b + a·d. Larger a = deeper scene.

Larger b pulls everything closer and compresses the far field.

<1 lifts distant detail, >1 pushes it away.

Scales depth about the subject, along each viewing ray.

Removes sky / far background.

Removes anything too close to the camera.

Lower culls more across depth steps (kills fg→bg curtains).

Higher drops more near-tangent surface (silhouette streaks).

Multiplier on each gaussian’s footprint.

Median + joint bilateral: snaps depth edges to colour edges. ~100 ms/frame.

no sequence yet
Speed 8 fps Splat size
Output size

Generate or load a sequence to see output sizes.

Every frame is always kept — a flipbook with holes is not a flipbook — so the only size knob is how densely each frame is sampled. Save sequence writes a .swseq holding the depth maps, which is the slow part: reload it and the shaping sliders are live again immediately, with no depth inference.

3Progress

Pick a video or photos to begin.
Activity log 0 lines

    

The preview is a real splat rasteriser: each gaussian's 3D covariance is projected to screen and drawn as an oriented, alpha-blended ellipse, depth-sorted front-to-back — the same maths splaTV uses, so preview and export match. Splats seen edge-on appear as thin streaks, not round dots. Above 220,000 splats the preview thins for interactivity; exports always use every gaussian.