Skip to main content

Quickstart

This guide walks you through creating a 3D scene from a video using the Splat3D API. By the end, you’ll have a shareable 3D Gaussian Splat.
You’ll need an API key. Create one from the Splat3D dashboard under Settings > API Keys.

Set your API key

Step 1: Create a scene

Create a scene and get a presigned upload URL. This tells Splat3D what you’re uploading and how you want it processed. Uploading a photo zip, an ARKit capture or a COLMAP model instead? Supported inputs has the content_type and packaging for each.
Response:

Step 2: Upload your video

Upload your video file directly to the presigned URL. The PUT goes straight to cloud storage and bypasses the API entirely.
Upload size cap. Uploads are capped at 5 GB on every plan, and the upload URL lasts 24 hours. The size is checked authoritatively at POST /v1/scenes/{id}/process against the actual bytes in R2 — exceeding the cap returns 413 payload_too_large before any credits are charged. See Upload limits.
Record at least 30 seconds: /process refuses a shorter video with 422 source_unusable, before charging. For best results, record a slow, steady walkthrough. Avoid fast movements and ensure good lighting. 30-60 seconds of footage typically produces great results.

Step 3: Start processing

Once the upload completes, kick off the reconstruction pipeline.

Step 4: Poll for completion

The pipeline takes about 8 minutes on fast, 15 on standard, 25 on quality and 45 on ultra (see Quality Presets). Poll the scene status until it’s complete.
The response shape is a flat SceneDetail object — the same fields are always present, just with different values depending on state (sceneDetailSchema in api/src/routes/schemas.ts). status is the stored status, the same on every call; processing_stage and processing_pct are null unless the scene is processing. Processing response (while running):
Completed response:
Quality metrics (psnr_holdout, ssim_holdout) are measured on images held out of training, so they are populated only when output.holdout_ratio is above 0. standard, quality and ultra hold out 10% by default; fast holds out none, so its metrics are null.

Step 5: Download the result

Download the reconstructed 3D model. By default you get SPZ, a compact format native viewers load, or SOG for a scene without one; the X-Splat-Format header names the file sent. Add ?format=sog for SOG (optimized for web) or ?format=ply for the raw PLY file.

Next steps

Quality Presets

Choose between fast previews and ultra-quality reconstructions.

Training Parameters

Fine-tune the reconstruction pipeline for your specific use case.

Output Formats

Understand SOG vs PLY and when to use each.

API Reference

Full endpoint documentation with all request/response schemas.