Open code, practice, and notes →
Download source with English comments · for reading
Gaussian Splatting · 05 Reading Shape from Covariance
Series contents · Technology map
Stage: Foundations of Representation and Projection · Editable example · Storage ID: gaussian-splatting-step-05
Goals and learning outcomes
- Construct a covariance matrix.
- Validate shape inputs.
Prerequisites
Continue using the output and records from Unit 4. Before the Reading Shape from Covariance experiment, preserve the previous inputs and reference outputs.
Key concepts and explanations
Covariance
Combining rotation with per-axis variances represents an ellipsoid in space. When scale is interpreted as standard deviation, variance uses its square.
Symmetry
Covariance must be symmetric, and valid variances cannot be negative. Projecting invalid inputs directly makes numerical calculations unstable.
Practice setup
First check the execution scope guidance on the example screen. The following describes the environment needed to extend the assignment in a separate project. This is a document-guided exercise in a separate local project. Use only small data you create or local files whose usage permission you have checked. The existing preview is a CPU teaching viewer for .splat/ASCII GS PLY files of at most 1 MiB and 512 items; it is not a Spark GPU renderer.
The linked example is a starting point. It does not implement every task below. Complete work beyond its supported scope in a separate project.
Practice tasks
- In covariance.js, calculate R·diag(scale²)·Rᵀ.
- Save the 3×3 results for axis-aligned scale and rotated scale as JSON.
- Print the symmetry error and the rejection result for negative scale inputs.
Variables to observe
| Variable | Baseline | Change | Expected change / hypothesis |
|---|---|---|---|
| Long-axis scale | 0.1 | 0.2 | Expect the variance on that axis to increase fourfold. |
Predictions in this table are not measured results. Change one condition at a time and record why the actual result differs.
Completion criteria
- The maximum difference between symmetric elements is at most 1e-6.
- Numerically confirm that doubling scale quadruples variance.
Self-check
- What changes if scale is confused with variance?
- If covariance is stored, is separate rotation information needed?
Official references
Linked example and execution scope
Example source · Runtime environments and limits
CPU Canvas2D synthetic fixtures and contract checks. This does not provide Spark GPU rendering, training data, or claims about reconstruction quality or GPU performance.
Source code and records are not overwritten automatically. Resetting an existing example also preserves your notes.
Next learning
Previous: Quaternions and Anisotropy · Next: Camera Projection and Screen Ellipses