Robots Atlas>ROBOTS ATLAS
Architecture

Gaussian Splatting

2023ActivePublished: 13 July 2026Updated: 14 July 2026Published
Key innovation
Representing a 3D scene as a cloud of millions of explicit, learnable 3D Gaussians (position, covariance, SH colour, opacity) rendered via differentiable rasterisation - real-time novel view synthesis at SOTA quality without a neural network at inference (a breakthrough after NeRF).
Category
Architecture
Abstraction level
Paradigm
Operation level
InferenceSystem
Use cases
Photorealistic digital twins of places, buildings, products (retail, real estate, museums)VR/AR - immersive browsing of scans of real locations with 6DoF motionAutonomous vehicles - representing surroundings for driving simulation (Waymo, Wayve use 3DGS)Robotic SLAM (Gaussian SLAM) - environment mapping for robot navigationFilm post-production - relighting scenes, virtual camera after capture (virtual production)Text-to-3D generation (DreamGaussian, GaussianDreamer, LGM) - asset generation pipelinePhotorealistic 3D avatars for telepresence, gaming, digital humansProduct 3D scanning for e-commerce (Google Maps immersive view, Apple Vision Pro Persona)Reconstruction of historical cultural heritage objects (heritage preservation)Medical imaging - representing CT/MRI scans for surgical training

How it works

Full 3DGS pipeline: (1) Initialisation - initial 3D Gaussians are created from an SfM (Structure from Motion, e.g. COLMAP) point cloud on the input images - each SfM point becomes a small isotropic Gaussian. (2) Optimisation - iterative gradient descent: at each iteration a training image is sampled, a view is rendered via differentiable rasterisation (projecting Gaussians to 2D, back-to-front sorting, alpha blending), L1 + SSIM + LPIPS loss versus ground truth is computed, gradients flow through the rasteriser back to Gaussian parameters (position, covariance, SH, opacity). (3) Densification - every N iterations: Gaussians with large position gradient are cloned (split if large) or duplicated (clone if small) to increase density in under-represented regions. (4) Pruning - Gaussians with opacity <threshold or too large size are removed, keeping their count under control (final models typically have 1-5M Gaussians for a scene). (5) Inference rendering - for a new view: Gaussians are projected, per-tile GPU-sorted, alpha-blended in screen space - fully rasterisation-based, no neural network in the critical path. Key to quality: using Spherical Harmonics (typically up to degree 3 = 16 coefficients per RGB colour = 48 per Gaussian) gives view-dependent colour - reproducing reflections and BRDF-like effects.

Problem solved

NeRF (Mildenhall et al. 2020) set a new standard of photorealism in novel view synthesis, but had a critical flaw: slow rendering. Classic NeRF required many hundreds of neural network queries per pixel - rendering a single 1080p frame took seconds to minutes on a consumer GPU. Optimisations (Instant NGP, Plenoxels, MobileNeRF) shortened that time but still did not achieve real-time 30+ FPS while maintaining SOTA quality. Classic textured 3D meshes deliver real-time, but reproducing complex phenomena (hair, fog, reflections, transparency) was hard or impossible. Gaussian Splatting solves this quality-speed-expressiveness trilemma: an explicit representation (like a mesh) gives real-time rendering, but continuous Gaussians with SH colour reproduce phenomena hard for meshes, while achieving PSNR equal to or better than the best NeRFs.

Components

3D Gaussian primitiveAtomic unit of scene representation

Basic representation element: an ellipsoidal 'blob' in 3D space. Parametrisation: μ ∈ ℝ³ (position), Σ ∈ ℝ³ˣ³ (covariance decomposed into rotation as a quaternion + scale), c(d) as Spherical Harmonics (view-direction dependent colour), α ∈ [0,1] (opacity). A typical scene contains 1-5M such primitives.

Isotropic GaussianSphere - one scale. Simpler, worse fit for flat surfaces.
Anisotropic Gaussian (standard 3DGS)Ellipsoid with full covariance - used in original 3DGS.
2D Gaussian (2DGS)Flat Gaussian for surfaces - better mesh fitting.

Official

Differentiable RasterizerRendering and gradient propagation engine

CUDA kernel implementing tile-based rasterisation with back-to-front alpha blending. Critical part - projecting 3D Gaussians to screen space (2D), per-tile sorting, colour accumulation. Supports backward gradient propagation to Gaussian parameters.

Spherical Harmonics (SH) colourView-dependent colour representation

Function basis for representing view-direction dependent colour. In 3DGS usually up to degree 3 (16 coefficients per channel, 48 per RGB Gaussian). Enables reflections, BRDF-like effects, and view-dependent shading.

Official

Densification & Pruning ControllerControls Gaussian count and placement

Heuristic procedure run periodically during training: analyses position gradient for each Gaussian and clones/splits when too big, prunes when opacity <ε. Keeps Gaussian count under control (1-5M) and ensures adaptive density.

Official

SfM Initializer (COLMAP)Camera and point-cloud preprocessing

Structure from Motion pipeline (typically COLMAP) generating from a set of images: camera poses + sparse 3D point cloud. That cloud initialises the Gaussians (each SfM point = one small Gaussian). Critical for convergence - random init does not work.

Official

Implementation

Implementation pitfalls
Bad SfM initialisation = no convergenceHigh

3DGS heavily depends on the COLMAP point cloud quality. Scenes with low texture (white walls), too few images, or bad angles yield poor SfM points and prevent good reconstruction.

Fix:Collect 100+ images from different angles, ensure 60-80% overlap between images, avoid textureless scenes or use learned initialisers (Splatter Image, LGM).
Excessive Gaussian count (memory blow-up)High

Without densification limits, scenes can grow to 50M+ Gaussians (tens of GB VRAM), slowing training and blocking deployment.

Fix:Aggressive pruning thresholds, opacity resetting every N iterations, max_gaussians limits, compression techniques (SOG, ScaffoldGS) to 10-50 MB.
Aliasing artefacts on zoom-in/zoom-outMedium

Original 3DGS shows visible artefacts (dilation, flickering) when the view significantly deviates from training cameras - Gaussians rendered at a different resolution than trained.

Fix:Use Mip-Splatting (Yu et al. CVPR 2024) - 3D smoothing + 2D Mip filter as preprocessing.
Poor mesh extractionMedium

Extracting a triangle mesh from 3DGS is hard - Gaussians are volumes, not surfaces. Naive marching cubes on densities gives a lower-quality mesh than from NeRF.

Fix:2DGS (Huang et al.) gives better normals and meshes, SuGaR (Guédon & Lepetit) - specialised post-processing for meshes.
No generalisation capabilityLow

Classic 3DGS is per-scene optimisation - each new scene needs a separate 30-40 min training. No feed-forward inference from a single image.

Fix:Newer variants (Splatter Image, LGM, PixelGS, LatentSplat) provide feed-forward inference in <1s - tradeoff: lower quality than per-scene fitting.

Evolution

Original paper · 2023 · SIGGRAPH 2023 (Best Paper), arXiv 2308.04079 (Inria + Université Côte d'Azur + MPI for Informatics) · Bernhard Kerbl
3D Gaussian Splatting for Real-Time Radiance Field Rendering
Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, George Drettakis
2020
NeRF (Mildenhall et al.) - the neural radiance fields foundation
Inflection point

ECCV 2020 - implicit scene representation as an MLP, photorealistic novel view synthesis but slow rendering. Predecessor to Gaussian Splatting.

2022
Instant NGP (Müller et al., Nvidia) - hash grid accelerated NeRF

SIGGRAPH 2022 Best Paper - NeRF training in seconds instead of hours. Rendering still slow.

2023
3D Gaussian Splatting (Kerbl et al., Inria) - real-time rendering breakthrough
Inflection point

SIGGRAPH 2023 Best Paper (arXiv 2308.04079) - real-time 30+ FPS on consumer GPU at SOTA PSNR quality. Explicit representation instead of a neural field.

2023
DreamGaussian (Tang et al.) - text-to-3D in Gaussian representation

ICLR 2024 - 2-minute 3D asset generation from text by applying Score Distillation Sampling to 3DGS.

2023
Dynamic 3D Gaussians (Luiten et al.) - 4D scene support

3DV 2024 - extension of 3DGS to time-varying scenes (dynamic objects, motion).

2024
2D Gaussian Splatting (Huang et al.) - surface reconstruction

SIGGRAPH 2024 - 2D disks instead of 3D ellipsoids for better surface and normal reconstruction.

2024
Mip-Splatting, Multi-scale 3DGS - anti-aliasing and zoom robustness

CVPR 2024 - solves zoom-in/zoom-out artefacts in the original 3DGS via Gaussian pre-filtering.

2024
Splatter Image, LGM - feed-forward 3DGS from a single/few images
Inflection point

CVPR/ECCV 2024 - training amortisation via a feed-forward transformer, Gaussian generation in <1s instead of 30 min.

2024
3DGS in robotics - Gaussian SLAM, integration with policy learning

Gaussian SLAM (Yugay et al.), Photo-SLAM - using 3DGS as a map for robot navigation and autonomous vehicles (Wayve, Waymo, Tesla).

2025
GaussianCube, SOG, ScaffoldGS - compression and structuring

Scene size reduction from ~700 MB to 10-50 MB via discretisation, hierarchies, and learnable neural offsets - critical for web/mobile deployment.

Hyperparameters (configurable axes)

Number of Gaussians in the sceneCritical

Key scene hyperparameter. Controlled by densification/pruning thresholds.

100K-500KSmall object-level scenes (single object).
1M-3MStandard - single room, small outdoor scene.
5M-20MLarge scenes (whole buildings, streets, city panoramas).
Spherical Harmonics degreeHigh

Controls richness of view-dependent colour. Higher degree = more reflections, but also more memory per Gaussian.

0Diffuse only - 1 coefficient per channel, no view-dependency.
1Basic view-dependency - 4 coefficients.
3 (standard)Default in 3DGS - 16 coefficients per channel (48 for RGB).
Number of training iterationsHigh

Impacts final PSNR quality and training duration.

7000Fast fit (~5-10 min) - good baseline quality.
30000SIGGRAPH paper standard (~30-40 min).
50000+For extreme quality.
Densification gradient thresholdMedium

Controls how aggressively Gaussians are cloned/split. Lower threshold = more Gaussians, denser scene.

0.0002 (default)Standard 3DGS.
0.0001More aggressive - better quality, more memory.

Computational complexity

Time complexity: O(N · P + T · N_pixels). Space complexity: O(#Gaussians · 59).

Compute bottleneck

Sorting and rasterisation in the rendering pipeline

Main bottleneck: back-to-front per-tile Gaussian sorting (parallel radix sort on GPU) and alpha compositing. Grows linearly with the number of Gaussians projected onto a pixel. Anti-aliasing (Mip-Splatting) adds cost.

Depends on
Liczba Gaussów w scenieRozdzielczość renderuOverlap Gaussów per pixel

Execution paradigm

Primary mode
Dense

During pixel-level rendering: only Gaussians visible in a given tile are selected (frustum culling + tile assignment) - sparse in the system sense (not every Gaussian on every pixel), but dense in the weight sense (no parameters are skipped).

Activation pattern
All paths active
Additional modes
Sparse
Routing mechanism

No expert routing. Each Gaussian is trained independently, all visible ones are active in every render pass.

Parallelism

Parallelism level
Fully parallel

Training and inference are massively parallel on GPU. Tile-based rendering exploits full SM pipeline width.

Scope
TrainingInferenceAcross tokensAcross devices
Constraints
!Alpha blending requires back-to-front per-tile Gaussian sorting - a sequential op per pixel but distributed across thousands of tiles in parallel.
!Global operations on the structure - periodic, not on the inference critical path.

Hardware requirements

Primary

3DGS is designed for CUDA. Key ops (tile-based rasterisation, radix sort, alpha blending, backprop) are optimised for modern GPUs. RTX 3090+ / A100+ / H100 deliver real-time 30-100+ FPS at 1080p.

Good fit

AMD RDNA3+ and Intel Arc can run 3DGS via ports (rocm, vulkan) - performance ~30-50% lower than CUDA. Apple Metal - available via ports (Brush with WebGPU).

Limited

CPU 3DGS rendering is 100-1000x slower than GPU - unusable for real-time, only headless offline rendering.