Pixels teach the splats

Inspect the loss. Change which parameters can learn. See what an extra camera makes observable.

Fit a shared set of splats

Iteration 0
Mean absolute RGB error—L1
Local structure error—1 − SSIM
Combined image loss—Initial state
Target image fixed supervision
Current render trainable splats
Absolute residual mean RGB error · fixed scale
0≥0.5
Loss construction

0.80 × L1 + 0.20 × (1 − SSIM)

Step once to see the optimizer respond.
Image loss actual optimizer steps

Computed 2D teaching model: anisotropic footprints, fixed depth order, constant RGB colors. This is not the full 3DGS rasterizer.

Inside one rendered pixel

Click an image above, or choose a pixel. Layers appear in the renderer’s front-to-back order.

zero-based coordinates
LayerOpacity oFootprint gα = o · gTransmittance TWeight TαRGB contribution

Rendered RGB—

Target RGB—

∂L / ∂RGB at this pixel—

The background uses the transmittance left after every splat. The RGB gradient includes the L1 term and all overlapping SSIM windows. It is the signal passed back through the compositing calculation.

What is learning here?

A renderer turns splats into pixels

Each splat has a 2D center, two positive scales, a rotation, an opacity and an RGB color. At a pixel, its unnormalized Gaussian footprint multiplies its opacity. The renderer then blends the splats in a fixed front-to-back order, including the remaining background. Overlap and occlusion affect which parameters receive useful gradients.

The target defines a loss

L1 is the mean absolute error over every pixel and RGB channel. SSIM compares local means, variances and covariance. The combined objective is (1 − λ)L1 + λ(1 − SSIM). The paper uses λ = 0.2. The colored residual plot shows the per-pixel mean absolute RGB error, not the SSIM contribution. Its scale stays fixed, so a darker image means less error.

Gradients change the parameters

The model differentiates the image loss through alpha compositing and the Gaussian footprint. Adam updates the allowed parameter groups. Shape includes both scales and rotation. Positive scales use an exponential parameterization. Opacity and RGB use sigmoid parameters in this teaching model. The target image stays fixed, and no reference splat parameters enter the optimizer.

A good image fit can have several explanations

Different overlapping splats can produce similar pixels. Color and opacity can compensate for one another, and a frozen parameter group can force other groups to absorb the error. This lab uses a fixed number of 2D splats. Original 3DGS additionally projects 3D covariances, handles view-dependent colors and changes model capacity through cloning, splitting and pruning.

Try this sequence

Run 50 steps and inspect the residual. Freeze Position, reset the splats, and repeat. Then enable Position and continue. Change λ to see the exact loss arithmetic update. The history restarts when the objective changes, so values from different objectives are not joined as one curve.

Demo-specific numerical settings. Adam uses smaller rates for position and shape, with all rates multiplied by 1 / (1 + t / 180) at iteration t. Stability bounds keep centers in [−0.15, 1.15], scales in [0.02, 0.5], and opacity/color logits in [−8, 8]. These are teaching-model settings, separate from the original 3DGS schedule.