Interactive explanation

Project a 3D Gaussian into an editable ellipse

Follow covariance through a perspective Jacobian, then compare the anisotropic footprint with an area-matched round approximation.

Teaching model · not native output
Drag the sliders to reveal foreshortening and the lost thin axis.
—projected major σ · pixels
—projected minor σ · pixels
—projected anisotropy ratio
The ellipse comes from a matrix.

The camera-space covariance is projected using the local perspective derivative. Eigenvectors set orientation; square roots of eigenvalues set axis scales. Perspective makes this a first-order approximation near the Gaussian’s center.

Σscreen = J Σcamera Jᵀ + 0.3 I

Representation has a contract.

The shaded footprint uses the native bounded Gaussian profile; an official vector export fits a feathered ellipse instead. The equal-area disk keeps footprint area but discards orientation and axis ratio. This explanation does not run that fitter or serialize a .riv file.

Derived from scene3d_splat_export.cpp and the export manual. The pixel covariance includes the documented 0.3 px² dilation and 0.09 px² minor-axis floor. The algebra is illustrated independently of native renderer execution. This page computes only when a control or viewport size changes.