← Back to blog

Running 3D Gaussian Splatting in production

3D Gaussian Splatting produces stunning, photoreal reconstructions — but taking it from a research repo to a service that processes thousands of captures a day is its own engineering problem.

The pipeline

  1. Ingest — captures upload directly to object storage with resumable multipart transfers.
  2. Pose estimation — structure-from-motion recovers camera poses; we cache intermediate features to keep reprocessing cheap.
  3. Training — splats train on autoscaling GPU workers, checkpointed so a preempted node never loses more than a few seconds of work.
  4. Delivery — the final .splat is compressed and served from the edge.

Lessons learned

Throughput comes from keeping GPUs busy, not from any single fast kernel. Queue depth, warm pools, and aggressive caching of the SfM stage moved our median turnaround under 90 seconds while holding cost per capture flat.

We’ll go deeper on the training internals in a future post.