🗒️ 3d-research index lesson 00 · prerequisites EN · IT

Lesson 00 · Prerequisites

Eigenvectors, eigenvalues and the Jacobian — with the right pictures

The two ideas from algebra that hold up the whole notebook: the "own" directions of a transformation, and its local linear imitation. Each concept comes with a famous metaphor to keep in your pocket.

Where they're needed — the covariance \(\Sigma\) of lesson 01 is read through its eigenvalues (axes and semi-axes of the ellipsoid); the EWA projection of lesson 05 is a Jacobian; and the determinant tells you how much a splat's area inflates on screen.

Eigenvectors and eigenvalues: the rails of the transformation

A matrix \(A\) transforms the entire plane in one stroke: every vector gets moved, rotated, stretched. The question that defines eigenvectors is: is there any direction the transformation respects? That is, a vector \(\mathbf v\) that doesn't get deviated, but only slides along its own line:

$$A\,\mathbf v \;=\; \lambda\,\mathbf v$$

Two objects, two different questions — this is the point that often gets muddled:

Mnemonic — the eigenvector answers "which rail stays a rail?" (a direction). The eigenvalue answers "how fast does the train run on that rail?" (a number: the stretch factor).

Three famous pictures

1 · The Earth's axis. The Earth's rotation moves everything: Rome travels, New York travels, the whole ocean travels. The only direction that goes nowhere is the axis: the poles stay put. The axis is the eigenvector of the rotation matrix, with eigenvalue \(\lambda = 1\) (it doesn't even stretch). It's a theorem by Euler: every 3D rotation has an axis — translated: every 3D rotation matrix has a real eigenvector with \(\lambda=1\). Not so in 2D: a rotation of the plane leaves no direction fixed (see below).

2 · Dough under the rolling pin. Roll the dough out in one direction: it stretches ×2 along the rolling pin and shrinks ×0.7 in the perpendicular one. If you had drawn lots of little arrows on the dough beforehand, almost all of them rotate as you roll (they get dragged toward the stretch direction); the only ones that don't rotate are the one along the rolling pin and the perpendicular one. Those two directions are the eigenvectors; 2 and 0.7 are the eigenvalues.

3 · The sheared Mona Lisa. The most famous figure on Wikipedia about this topic: apply a shear to the painting and everything tilts — except the vector along the base, which stays exactly where it was (\(\lambda=1\)). Fun fact: in a shear there is only one rail (a "defective" matrix: two equal eigenvalues, a single independent eigenvector) — try the preset below.

Eigen in German means "own, characteristic": eigenvectors are the transformation's own directions, the ones that belong to it.

The λ bestiary

EigenvalueWhat it does to its railPicture
\(\lambda > 1\)stretchesthe rolling pin
\(0 < \lambda < 1\)compressesthe spring shortening
\(\lambda < 0\)flips the direction (the line stays put)the rubber band snapping to the other side
\(\lambda = 0\)annihilates the direction (everything to the origin)the steamroller — and indeed \(\det A = 0\), not invertible
complex \(\alpha \pm \beta i\)no real rail: everything rotatesthe 2D rotation — every direction turns
Fig. 1 — interactive. The matrix \(A=\begin{bmatrix}a&b\\c&d\end{bmatrix}\) applied to the plane: unit circle → ellipse (blue), unit square → parallelogram with the "F" showing its orientation, terracotta arrows = 12 generic directions, green arrows and lines = the eigenvectors (the "rails"). Drag apply t back and forth: all the arrows swerve except the ones on the rails, which merely stretch by λ. With "Rotation" the rails vanish (complex eigenvalues); with "Reflection" the F mirrors itself (det < 0).
In 3DGS you live inside this — the factorization \(\Sigma = R\,S\,S^{\!\top}\!R^{\!\top}\) of lesson 01 is literally an eigendecomposition: the columns of \(R\) are the eigenvectors of \(\Sigma\) (the ellipsoid's axes), the squared scales \(s^2\) are the eigenvalues (the variances along the axes). The "Covariance" preset builds \(A\) exactly this way, with axes at 30° and scales \((1.5,\,0.6)\) — and indeed you read \(\lambda_1 = 2.25 = 1.5^2\), \(\lambda_2 = 0.36 = 0.6^2\). When the optimizer updates a Gaussian's scales it is doing gradient descent on the eigenvalues of its covariance.

A bonus to cement the "eigen" family: PCA takes the eigenvectors of the covariance of a swarm of points (the axes of the swarm); PageRank is the dominant eigenvector of the web graph — Google built an empire on it; a crystal glass shatters at its note because it has eigenfrequencies. Every time you hear "eigen-something", the underlying question is always the same: what stays itself under this operation?

The Jacobian: the local flat map

One-line refresher: the derivative is a zoom. A smooth function, magnified enough around a point, becomes indistinguishable from its tangent line. The Jacobian is the exact same idea for \(f:\mathbb R^n \to \mathbb R^m\): zoom in enough on the deformation around a point \(\mathbf p\) and it becomes indistinguishable from a linear map. That linear map is \(J(\mathbf p)\):

$$J_{ij} \;=\; \frac{\partial f_i}{\partial x_j} \qquad\qquad f(\mathbf p + \boldsymbol\delta) \;\approx\; f(\mathbf p) + J(\mathbf p)\,\boldsymbol\delta$$

Row \(i\) lists how strongly output \(i\) reacts to each input: the Jacobian is the sensitivity table of \(f\) at that point. But the pictures that stick are these two:

1 · The neighborhood map. Projecting the (curved) Earth onto a (flat) sheet is a nonlinear map — the perfect world map doesn't exist. Yet the map of your neighborhood works just fine: at small scale the projection is approximated beautifully by a linear map. Every point on the planet has its own "local flat map", and that map is the Jacobian of the projection at that point.

2 · The funhouse mirror. Your full figure is monstrous: short legs, pear-shaped head — a decidedly nonlinear transformation. But a postage stamp of skin, a mole and its surroundings, is simply stretched, rotated and sheared: an affine transformation. The funhouse mirror is a collection of Jacobians, one for each point of your silhouette.

Why we need it — perspective projection divides by depth: nonlinear. And a Gaussian pushed through a nonlinear map is no longer Gaussian (the shells bend). The EWA trick (lesson 05): near the center \(\mu\) replace the projection with its Jacobian — a linear map takes Gaussians to Gaussians — and you get \(\Sigma' = J\,W\,\Sigma\,W^{\!\top}\!J^{\!\top}\). The radial distortion of lenses (the one COLMAP estimates when it calibrates cameras) is a nonlinear warp too: the demo below uses exactly that.
Fig. 2 — interactive. A nonlinear map warps the grid. The little circles become ellipses — this is exactly the Tissot indicatrix from atlases — colored by \(\det J\): terracotta where area inflates, blue where it compresses. Drag the probe: the solid circle is the true image of the circle, the dashed one is the Jacobian's linear prediction. Now shrink the probe radius: the two curves coincide — "zooming until it becomes linear" is the whole essence of the Jacobian. Negative strength = barrel (GoPro), positive = pincushion.

The determinant: how much areas inflate

For a linear map the determinant is the area factor (in 3D: the volume factor): take the unit square, apply \(A\), you get a parallelogram; \(|\det A|\) is its area. Rolling pin ×2 in one direction and ×1.5 in the other → every little patch of area ×3. In Fig. 1 it is the parallelogram with the "F" inside, and its value is in the readout.

With the rails picture the fact that \(\det A = \lambda_1 \lambda_2 \cdots\) becomes obvious: you stretch ×\(\lambda_1\) along one rail and ×\(\lambda_2\) along the other, so the area goes ×\(\lambda_1\lambda_2\). And the two pathological cases have a precise physics:

CasePictureMeaning
\(\det = 0\)the steamroller: it squashes the plane onto a line (one eigenvalue is 0)not invertible — you can't un-squash a crêpe: two points that ended up in the same place can no longer be told apart
\(\det < 0\)the glove turned inside out: the right hand in the mirror becomes a left onethe area is still there (\(|\det|\)) but the orientation has flipped — in Fig. 1 the "F" mirrors itself with the "Reflection" preset

The determinant of the Jacobian: local area factor

If the Jacobian is the local linear map, its determinant is the local area factor — a different number at every point, telling you how much the map inflates or compresses the little areas there. Three famous anchors:

1 · Mercator's Greenland. On the Mercator world map Greenland looks as big as Africa; in reality it is about 14 times smaller. The reason is that the \(\det J\) of the Mercator projection blows up approaching the poles. The Tissot ellipses printed in atlases are exactly Fig. 2 applied to the world map: equal little circles on the sphere, ever more inflated ellipses on the chart.

2 · The pizza slice. In the change to polar coordinates, \(dx\,dy = r\,dr\,d\theta\): that \(r\) is \(|\det J|\). The picture: a "little square" \(\Delta r \times \Delta\theta\) near the edge of the pizza is much bigger than the same little square near the center — the area depends on where you are, i.e. on \(r\). Every time you change variables in an integral, \(\det J\) is there acting as the exchange rate between areas.

3 · Honey on the dough (for the ML part of your brain). Spread a film of honey on the dough and then roll it out: where the dough widens, the film thins exactly by the area factor — mass is conserved. It's the change of variables for probability densities, \(p_Y(\mathbf y) = p_X(\mathbf x)\,/\,|\det J|\): the heart of normalizing flows, and the reason a linearly transformed Gaussian stays normalized with the right covariance.

In 3DGS — the footprint of a splat on screen is the ellipse of the projected covariance \(\Sigma'\), and its area scales as \(\sqrt{\det \Sigma'}\). Anti-aliasing tricks (e.g. Mip-Splatting) correct the opacity precisely with a ratio of determinants, to keep splats that go sub-pixel from "vanishing". The determinant is not a technicality: it is the renderer's bookkeeping of areas.

Fridge-door summary

ObjectQuestion it answersPictureWhere you'll see it again
eigenvectorwhich direction doesn't get deviated?the Earth's axis; the railellipsoid axes = columns of \(R\)
eigenvalueby how much does it stretch along that rail?the rolling pin ×2 variances = squared scales \(s^2\)
Jacobianhow does it stretch space here?the neighborhood map; the funhouse mirrorEWA projection, \(\Sigma' = JW\Sigma W^{\!\top}\!J^{\!\top}\) (lesson 05)
det (of the Jacobian)how much do areas inflate here? Mercator's Greenland; the pizza slicesplat area, changes of variable, anti-aliasing