Cross product and skew-symmetric matrices
The dot product took two vectors and returned a number. This part takes two vectors and returns a third: the one vector that stands perpendicular to both, whose length is exactly the area of the parallelogram they span. That single construction measures the orientation of a pair of arrows, and because it is linear in each input it can be written as a matrix — a skew-symmetric matrix whose off-diagonal entries are the components of the first vector. The matrix form is what lets a cross product sit inside a rotation, inside a robotics controller, and inside the epipolar geometry that reconstructs a scene from two photographs.
The question
Two arrows in, one perpendicular arrow out
Two vectors in three-dimensional space span a flat sheet. A sheet has a direction it faces, and the cross product is the vector that names it. Point the fingers of your right hand along a and curl them toward b; your thumb points along a×b. The construction is unique only to three dimensions, and it packages two pieces of information at once: how the plane is tilted, and how much area the two arrows enclose.
The area half of that statement is the part worth holding onto. If you shear b along the direction of a, the normal direction does not change and the enclosed area does not change, so the cross product does not change either. If you push b until it lines up with a, the parallelogram flattens to nothing and the cross product vanishes. Every property of the operation is a property of that little parallelogram.
Then there is the algebraic surprise. Fix a and let b vary: the map b ↦ a×b is linear, so a matrix must represent it. That matrix is antisymmetric down to its bones — it equals the negative of its own transpose. Matrices of that shape are the fingerprints of rotation, which is why the cross product is the door between this part and the parts on rotation and motion.
There is a third reading that ties the two halves together. If you feed the cross product another vector and take a dot product, $\mathbf{a}\cdot(\mathbf{b}\times\mathbf{c})$ is the signed volume of the box whose edge vectors are a, b and c. That single number is also the determinant of the three-by-three matrix with those vectors as rows. So the cross product is really a compact way of writing a determinant: it takes the same determinant that measures volume, fixes one slot to the unknown vector x, and solves for the x that makes the box perpendicular to a and b. Area, volume and perpendicularity are three views of one determinant, and the rest of this part unpacks each of them.
The perpendicular and the area
One vector that knows the whole parallelogram
Written out, the cross product of a = (a1, a2, a3) and b = (b1, b2, b3) is a list of two-by-two determinants:
Each coordinate is the signed area of the parallelogram that the two remaining pairs of components span. That is the whole mechanism, and it explains the perpendicularity immediately. Take the dot product with a. The result is a three-by-three determinant whose top two rows are a and b and whose bottom row is a again: a determinant with two equal rows, which is zero. The same argument with b gives zero. So
Length is where the parallelogram shows up. The identity $\|\mathbf{a}\times\mathbf{b}\|^{2}=\|\mathbf{a}\|^{2}\|\mathbf{b}\|^{2}-(\mathbf{a}\cdot\mathbf{b})^{2}$ is the two-dimensional Pythagorean theorem in disguise, and substituting $\mathbf{a}\cdot\mathbf{b}=\|\mathbf{a}\|\|\mathbf{b}\|\cos\theta$ turns it into $\|\mathbf{a}\times\mathbf{b}\|=\|\mathbf{a}\|\|\mathbf{b}\|\sin\theta$ — exactly the base-times-height area of the parallelogram. Drag the components below and watch the normal stay perpendicular while that area rises and falls.
There is a standard way to remember the component formula. Write a three-by-three determinant whose first row is the coordinate unit vectors, whose second row is a, and whose third row is b, then expand along the first row:
The unit vectors are what promote three scalar determinants into a vector, and the alternating plus and minus signs are where orientation enters. You will never need the extended formula in practice — the compact determinant notation does the work — but seeing it once makes clear that nothing arbitrary was chosen: the pattern is forced by the requirement that the result be perpendicular to a and b with length equal to their area.
Those facts — perpendicular to both inputs, length equal to the enclosed area, orientation fixed by the right-hand rule — pin the cross product down completely. There is only one vector that satisfies all three, and the determinant formula above is the fastest way to compute it. That is why the same object keeps reappearing under different names: a surface normal in graphics, the torque produced by a force applied off-centre, the magnetic force on a moving charge, the moment arm of a robot joint. In every case the question is "which way does this pair face, and how much does it span", and the cross product is the answer.
The shaded parallelogram has corners 0, a, a+b, b. Its area equals the length of a×b. Drag to orbit the scene.
The two dot products in the readout are the perpendicularity test, and they stay at zero no matter where you drag. The area readout and the length of a×b are two numbers that agree every time, because they are the same number. Nothing here is a coincidence of the coordinates: rotate the whole picture and the parallelogram rotates, its area does not change, and the normal rotates with it.
Right-hand rule and sin θ
Orientation is part of the answer
The length of the cross product tells you the area; its direction tells you which side of the parallelogram is "up". That choice is a convention, the right-hand rule, and it is what makes the operation antisymmetric. Swap the order and the same parallelogram now faces the other way:
The magnitude depends only on the geometry of the pair, through the sine of the angle between them. Hold a fixed and swing b around, keeping its length constant. When the two arrows are nearly parallel, $\sin\theta$ is small, the parallelogram is a sliver, and the cross product shrinks toward the zero vector. When they are perpendicular, $\sin\theta=1$, and the parallelogram is as wide as it can be. Exactly at $\theta=0$ and $\theta=180^\circ$ the two vectors are parallel and the cross product is zero — the normal direction is genuinely undefined, because a line has no unique sheet.
The faint ring is where the tip of b travels as it rotates around a at constant length. Watch the cross product grow and collapse.
Slide the angle to either end of its range and the arrow at the centre of the scene collapses to a point while the area readout drops to zero. Come back to the middle and it is longest. The toggle flips the order of the inputs and the cross-product arrow reverses, with the same length. That reversal is the entire content of orientation: the plane is the same, the area is the same, only the signed direction changes. Squaring the identity above recovers the dot-product relation from Part 8, which is the precise sense in which the cross product is the dot product's three-dimensional partner.
One caution: the cross product is not associative. The order of the operations matters, because $\mathbf{a}\times(\mathbf{b}\times\mathbf{c})$ lies in the plane of b and c while $(\mathbf{a}\times\mathbf{b})\times\mathbf{c}$ lies in the plane of a and b. What replaces associativity is the Jacobi identity, $\mathbf{a}\times(\mathbf{b}\times\mathbf{c})+\mathbf{b}\times(\mathbf{c}\times\mathbf{a})+\mathbf{c}\times(\mathbf{a}\times\mathbf{b})=0$. It looks like a curiosity here, but it is the defining relation of a Lie algebra, and the skew matrices of the next section are its matrix representation. The cross product and the antisymmetric matrices are two languages for the same structure, and rotations are where that structure is most visible.
The cross product as a matrix
Linearity in b, written as multiplication
Fix a. Each coordinate of a×b is a linear combination of the entries of b, so the whole operation is a linear map of b and therefore a matrix. Collecting the coefficients gives the skew-symmetric matrix of a:
The pattern is worth memorising: zero on the diagonal, and every entry is the negative of its mirror image across the diagonal. That is what antisymmetric or skew-symmetric means, and every such matrix is the matrix of a cross product by some vector. In symbols, $[\mathbf{a}]_\times^{\mathsf{T}}=-[\mathbf{a}]_\times$. The matrix below rebuilds itself from the sliders, and the readout checks the two facts that define it: the matrix times b equals the cross product, and the transpose is the negative.
Reading a vector off its matrix is easy once you notice the cyclic pattern. Every row carries two components of a: the first row holds $a_2$ and $a_3$, the second holds $a_3$ and $a_1$, and the third holds $a_1$ and $a_2$, each with one sign flipped. Skew matrices have only three degrees of freedom in three dimensions, exactly the number of components of a vector, and that coincidence is the reason the cross product is a three-dimensional accident. In two dimensions there is only one independent skew entry, and in four dimensions there are six, so no single vector can represent the operation there.
The highlighted off-diagonal entries are the components of a, each one the negative of its mirror. The vector b is held fixed while you change a.
This is the bridge to rotation. A rotation that turns by a tiny angle about an axis ω moves a point r by approximately ω×r, so the velocity of a spinning body is $\mathbf{v}=\boldsymbol{\omega}\times\mathbf{r}=[\boldsymbol{\omega}]_\times\mathbf{r}$: a matrix, built from the angular velocity, acting on a position. The same structure organises the rotations themselves — the skew-symmetric matrices form the "tangent space" where Part 20 grows its exponential map — and it is exactly the object that appears in the essential matrix of the next section.
Two properties of [a]× are worth noting while the demo is on screen. First, it is singular: multiplying it by a gives the zero vector, because a×a is zero, so the null space contains the line through a — the cross product cannot see motion along the very axis that defines it. Second, it is exactly the matrix of the linear map "take the cross product with a", so composing two such maps is composing two cross products. Neither fact needs coordinates, but both are immediate from the antisymmetric pattern, which is why this matrix is the natural notational home for everything that rotates.
Where this shows up
One matrix, two worlds
The cross product is one of the few pieces of linear algebra that appears in almost the same form in two very different fields. In robotics it turns an angular velocity into a linear velocity; in computer vision the identical skew matrix encodes the translation between two camera positions. The reason is structural rather than coincidental: both fields need to describe motion or displacement perpendicular to a given direction, and both need that description to be a linear map so it can be composed, differentiated and stacked with everything else. The skew matrix is that linear map, and once it is a matrix it obeys the same algebra as every other matrix in this series.
Angular velocity and the cross product
A rotating body has an angular-velocity vector ω, and the linear velocity of any point on it is $\mathbf{v}=\boldsymbol{\omega}\times\mathbf{r}=[\boldsymbol{\omega}]_\times\mathbf{r}$. Every joint of a robot arm contributes one such term, and stacking them is how a Jacobian maps joint rates to end-effector motion. The 3D rotations part of the optimization guide uses the skew matrix to linearise rotations about an axis.
The essential matrix E = [t]×R
Two calibrated cameras looking at the same scene are separated by a translation t. The constraint that ties a point in one image to its match in the other is packed into $E=[\mathbf{t}]_\times R$, and $[\mathbf{t}]_\times$ is precisely the skew matrix from this part. Because $[\mathbf{t}]_\times$ is skew and therefore singular, E has rank two, and that shortage of rank is exactly what makes the epipolar constraint a single scalar equation rather than a full system. The epipolar geometry part derives the constraint from this matrix.
In both cases the payoff is the same. A geometric statement — "this force acts at an offset", "this image point projects to that epipolar line" — becomes an ordinary matrix expression that you can multiply, invert and differentiate without leaving linear algebra. The cross product provides the picture and the intuition; the skew matrix provides the algebra and the composition rules. That pair is what makes these two applications tractable, and it is the reason this small operation keeps reappearing far from its origins in geometry.
Cheat sheet
| Idea | Formula | Picture |
|---|---|---|
| Cross product | $\mathbf{a}\times\mathbf{b}$, componentwise two-by-two determinants | A third arrow, perpendicular to both inputs |
| Perpendicularity | $\mathbf{a}\cdot(\mathbf{a}\times\mathbf{b})=\mathbf{b}\cdot(\mathbf{a}\times\mathbf{b})=0$ | The normal does not lean toward either edge |
| Length | $\|\mathbf{a}\times\mathbf{b}\|=\|\mathbf{a}\|\,\|\mathbf{b}\|\sin\theta$ | Area of the parallelogram they span |
| Antisymmetry | $\mathbf{a}\times\mathbf{b}=-\mathbf{b}\times\mathbf{a}$ | Swapping the edges flips the normal |
| Zero case | $\mathbf{a}\times\mathbf{b}=0 \iff \mathbf{a}\parallel\mathbf{b}$ | A flattened parallelogram has no unique facing |
| Matrix form | $[\mathbf{a}]_\times\mathbf{b}=\mathbf{a}\times\mathbf{b}$ | A skew matrix times the second vector |
| Transpose | $[\mathbf{a}]_\times^{\mathsf{T}}=-[\mathbf{a}]_\times$ | Diagonal zeros, mirrored negatives |
| Triple product | $\mathbf{a}\cdot(\mathbf{b}\times\mathbf{c})=\det[\mathbf{a}\;\mathbf{b}\;\mathbf{c}]$ | Signed volume of the box on three edges |
Read the table left to right for the algebra and the geometry at once. The first four rows are the definition; the matrix rows are the reformulation that makes the operation composable with the rest of the series; the last row is the determinant connection that links area in the plane to volume in space and prepares the change of basis in the next part.
Further reading
- Grant Sanderson, "Cross products", Essence of Linear Algebra, 3Blue1Brown — the geometric picture of the normal, the area, and the determinant that computes it.
- Gilbert Strang, 18.06 Linear Algebra, MIT OpenCourseWare — Lecture 21 and the surrounding lectures on determinants, where the three-by-three determinant is shown to be the triple product $\mathbf{a}\cdot(\mathbf{b}\times\mathbf{c})$.
- Immersive Math, Chapter 4: The Vector Product — the cross product as a draggable figure, including the right-hand rule and the area interpretation.
- Sheldon Axler, Linear Algebra Done Right, chapter 7 — the cross product constructed as a determinant, and its role in the structure of three-dimensional space.