ZipSplat: Fewer Gaussians, Better Splats
Paper • 2606.05102 • Published • 20
ZipSplat is a feed-forward model for 3D Gaussian Splatting. It reconstructs a scene from a few unposed images in a single forward pass, without requiring camera poses, intrinsics, or per-scene optimization. Instead of predicting one Gaussian per pixel, it uses a token-based approach to decouple Gaussian placement from the pixel grid, achieving high-quality reconstructions with significantly fewer Gaussians.
ZipSplat provides a standalone inference package to generate 3D Gaussians from images or video clips.
import math, torch
from zipsplat import ZipSplat, Camera, Pose, load_image, viz
# Load the model
model = ZipSplat(weights="zipsplat").cuda().eval()
# Load raw images (any size, auto-resized internally)
images = [load_image(p) for p in paths]
gaussians = model(images)[0] # feed-forward 3D Gaussians
# Render a novel view
camera = Camera.from_fov(math.radians(60), w=512, h=512)
pose = Pose.from_Rt(torch.eye(3), torch.zeros(3)) # identity pose
rgb, info = gaussians.render(camera, pose)
# Export
gaussians.save_ply("scene.ply") # open in any 3DGS viewer
viz.turntable(gaussians, "turntable.mp4", sweep_deg=None) # wiggle orbit video
@article{veicht2026zipsplat,
title = {ZipSplat: Fewer Gaussians, Better Splats},
author = {Veicht, Alexander and Hong, Sunghwan and Bar{\'a}th, D{\'a}niel and Pollefeys, Marc},
journal = {arXiv preprint arXiv:2606.05102},
year = {2026}
}