← Back to Matrix Lab

Matrix Lab · Syllabus

A level-based interactive linear algebra course: drag vectors, matrices and grids on the canvas and build geometric intuition for abstract concepts. 12 chapters, 56 levels. First 7 levels free; $19.99 one-time unlocks all levels and sandbox mode.

Start the Course →

Chapter 1 · Vectors and Coordinates

  1. 1-1 · Place Your First Vector

    A vector is more than two numbers — it is a displacement in space. On the canvas, the horizontal direction is the x-axis and the vertical direction is the y-axis; each grid square is 1 unit.

    1 hands-on tasks

  2. 1-2 · Vector Addition: Tip to Tail

    Adding vectors means joining two displacements tip to tail. Here a = (1, 2) and b = (2, 0), and their components add separately: a + b = (1+2, 2+0). Subtraction is a special case of addition: b − a = b + (−a).

    3 hands-on tasks

  3. 1-3 · Scalar Multiplication: Stretch and Flip

    Multiplying a vector by a number (a scalar) stretches it proportionally: 2a points the same way as a with double the length; −a points the opposite way. Here a = (1, 2).

    2 hands-on tasks

  4. 1-4 · Length and Unit Vectors

    The length of a vector is |v| = √(x² + y²) (the Pythagorean theorem). A vector of length 1 is called a unit vector: it keeps only the direction and drops the length. Adjust v to be the unit vector in the same direction as u = (3, 4).

    1 hands-on tasks

Chapter 2 · Basis Vectors and Matrix Columns

  1. 2-1 · Basis Vectors and Linear Combinations

    î = (1, 0) and ĵ = (0, 1) are the standard basis vectors. Any vector can be written as a linear combination of them: v = x·î + y·ĵ. The coordinates (x, y) are the coefficients of that combination.

    1 hands-on tasks

  2. 2-2 · Matrix Columns = Transformed Basis Vectors

    The two columns of a 2×2 matrix are exactly where î and ĵ land after the transformation. Drag the tip of the pink A î and watch the first column of the matrix on the right change in sync — this is the single most important picture for understanding matrices.

    3 hands-on tasks

  3. 2-3 · Span: Where Can You Reach?

    All the linear combinations of two non-parallel vectors can cover the entire plane — this is called their span. In the figure, u = (2, 1) and w = (1, 2). Try using them to reach the target points.

    2 hands-on tasks

  4. 2-4 · Linear Dependence: The Redundant Column

    If one column is a multiple of the other, it brings no new direction — the two columns are linearly dependent, the span collapses from the plane down to a line, and the determinant becomes 0.

    2 hands-on tasks

  5. 2-5 · Column Space and Rank: How Big a World Can the Columns Span

    The span of a matrix’s two columns has a name of its own: the column space. The number of dimensions of the column space is the matrix’s rank. Two non-parallel columns → column space is the whole plane → rank 2; two parallel columns → it collapses to a line → rank 1. The matrix panel on the right shows the rank live.

    3 hands-on tasks

Chapter 3 · Linear Transformations

  1. 3-1 · A matrix = a transformation of the whole space

    A matrix acts on every point in space: the entire grid deforms along with it. Click "▶ Play transformation" and watch the unit grid morph continuously into its transformed shape.

    1 hands-on tasks

  2. 3-2 · Where does the vector go: v → Av

    The matrix A maps the vector v to Av (the green dashed arrow). Because the transformation is linear, Av = x·A î + y·A ĵ — the coefficients stay the same; only the basis is swapped out.

    1 hands-on tasks

  3. 3-3 · The shape of a transformation: rotate 90°

    After a 90° rotation, î lands on (0, 1) and ĵ lands on (−1, 0). So the rotation matrix is [[0, −1], [1, 0]]. Try building it with the preset button or by dragging the column vectors directly.

    2 hands-on tasks

  4. 3-4 · Projection: squashing the plane onto a line

    A projection drops every vector perpendicularly onto a line. Onto the x-axis: î stays put, ĵ falls to the origin, and the matrix is [[1, 0], [0, 0]]. The whole plane gets flattened — projection loses information, so it is not invertible.

    2 hands-on tasks

  5. 3-5 · Rotating by any angle

    Rotate by an angle θ: î lands on (cosθ, sinθ) and ĵ lands on (−sinθ, cosθ), so the rotation matrix is [[cosθ, −sinθ], [sinθ, cosθ]]. For θ = 45°, cosθ = sinθ ≈ 0.707.

    2 hands-on tasks

  6. 3-6 · Shear: pushing a square into a parallelogram

    A shear fixes one basis vector and pushes the other sideways: î stays put, ĵ is pushed to (1, 1), and the matrix is [[1, 1], [0, 1]]. The grid slides apart like a deck of cards — notice that each layer only shifts, so the area does not change.

    3 hands-on tasks

Chapter 4 · Composing Transformations & Matrix Multiplication

  1. 4-1 · Composing Transformations = Multiplying Matrices

    Apply rotation B, then shear A — this is equivalent to a single matrix A·B. Mind the order: the right one acts first! Matrix multiplication is composition of transformations. Use the toolbar to apply A and B separately, then compare with A·B.

    2 hands-on tasks

  2. 4-2 · Order Matters: AB ≠ BA

    Rotate-then-shear and shear-then-rotate give completely different results. Press both buttons to see the final grid for each order, and feel why matrix multiplication cannot be swapped.

    2 hands-on tasks

  3. 4-3 · Read Matrix Multiplication Column by Column

    Column 1 of AB = A times column 1 of B. Let B = [[2, 0], [0, 1]] (stretches x by 2) and A = [[1, 1], [0, 1]] (a shear). Compute AB by hand and verify each of its columns.

    3 hands-on tasks

  4. 4-4 · Composing Three Transformations: Associativity

    When composing three transformations, (AB)C and A(BC) give the same result — matrix multiplication is associative. Apply them in the order C → B → A (the rightmost acts first) and watch the final matrix.

    2 hands-on tasks

Chapter 5 · Determinants: Scaling Area

  1. 5-1 · Determinant = Area Scaling Factor

    The unit square (blue) becomes a parallelogram (green) after the transformation, and the factor by which the area scales is det(A). Drag the column vectors so the area becomes 2 times the original.

    1 hands-on tasks

  2. 5-2 · Negative Determinant = Flipped Space

    When det(A) < 0, space has been flipped (like a mirror image): the left/right-hand relationship between î and ĵ is reversed. Watch how the rotation direction from î to ĵ changes.

    1 hands-on tasks

  3. 5-3 · det = 0: Space Gets Flattened

    When the two columns are collinear, the whole plane is crushed onto a line and the area becomes 0 — the matrix "loses a dimension." This is a singular matrix.

    2 hands-on tasks

  4. 5-4 · det(AB) = det(A) · det(B)

    A scales the area by 2, then B scales it by 3, so the composite transformation naturally scales it by 2 × 3 = 6: det(AB) = det(A)·det(B). Verify this most important property of determinants with your own hands.

    2 hands-on tasks

  5. 5-5 · det and Inverses: det(A⁻¹) = 1/det(A)

    A = [[2, 0], [0, 2]] scales the area by 4, so the A⁻¹ that undoes it must scale the area back by 1/4. Change the matrix into A⁻¹ and verify that det(A⁻¹) = 1/det(A).

    2 hands-on tasks

Chapter 6 · Inverse Matrices: Undoing Transformations

  1. 6-1 · Inverse Matrix = Undo the Transformation

    If A transforms space one way, A⁻¹ transforms it back: A⁻¹·A = I. Here A stretches the x direction by 2. What matrix would undo it?

    2 hands-on tasks

  2. 6-2 · Singular Matrices Have No Inverse

    A matrix with det = 0 squashes the plane into a line — information is destroyed and cannot be recovered, so A⁻¹ does not exist. Build a singular matrix yourself, then press "Invert" and see what happens.

    3 hands-on tasks

  3. 6-3 · Solving Equations with the Inverse Matrix

    Multiply both sides of Av = b by A⁻¹, and you get v = A⁻¹b. First drag v into place using the column picture, then click "Invert" to verify that A⁻¹ really maps b back to v.

    2 hands-on tasks

  4. 6-4 · Inverse of a Composition: (BA)⁻¹ = A⁻¹B⁻¹

    Undoing a composite transformation must happen in reverse order — like taking off your shoes before your socks. First apply A (stretch) then B (rotation), then undo them with their inverses in the correct order.

    3 hands-on tasks

Chapter 7 · Change of Basis

  1. 7-1 · Same Vector, Two Coordinate Systems

    The pink and purple arrows form a new basis (the two columns of matrix B), and the green grid is their coordinate grid. v is still the same arrow, but the new basis has its own way of reading it: v = c₁·b₁ + c₂·b₂, and (c₁, c₂) is v's new-basis coordinates (shown live in the top-right of the canvas).

    2 hands-on tasks

  2. 7-2 · Coordinate Translator: B and B⁻¹

    To translate new-basis coordinates c into standard coordinates, multiply on the left by B (i.e. B·c). Conversely, to translate standard coordinates into new-basis coordinates, multiply on the left by B⁻¹. The matrix B is a translator between the two languages.

    3 hands-on tasks

  3. 7-3 · The Matrix in a New Basis: B⁻¹AB

    How do you write the same transformation A in the language of a new basis? B⁻¹AB: first translate new-basis coordinates into standard coordinates (B), then apply A, and finally translate back (B⁻¹). Multiply out these three steps yourself.

    3 hands-on tasks

  4. 7-4 · A Good Basis Makes the Problem Simple

    A = [[2, 1], [0, 1]] looks a bit "tangled" in the standard basis (it includes a shear). But in the basis B = [[1, 1], [0, −1]] made of its two eigendirections, B⁻¹AB becomes a diagonal matrix: each basis direction is scaled independently, with no entanglement. Compare the two representations and feel how much the choice of basis matters.

    2 hands-on tasks

Chapter 8 · Eigenvectors and Eigenvalues

  1. 8-1 · Eigenvectors: Directions That Never Turn

    Most vectors change direction under A, but eigenvectors are only scaled, never rotated: Av = λv. Drag v (the gold dashed line is its extension) to find the directions that stay collinear with Av.

    1 hands-on tasks

  2. 8-2 · Eigenvalues: The Scaling Factor

    When they are collinear, Av = λv, and λ is the eigenvalue: |λ| is the stretch factor, and its sign tells you whether the direction flips. This matrix is a reflection — find its two eigendirections.

    2 hands-on tasks

  3. 8-3 · Eigenvalues of a Diagonal Matrix

    For the diagonal matrix [[2, 0], [0, 3]], the eigenvectors are exactly the two coordinate axes, and the eigenvalues sit right on the diagonal: λ₁ = 2, λ₂ = 3. Their product happens to be det = 6.

    2 hands-on tasks

  4. 8-4 · Repeated Transformations Along an Eigendirection

    Back to the matrix A = [[2, 1], [0, 1]] from 8-1. Put v back onto the eigendirection (1, 0), then apply A over and over — v always stays on the eigendirection, just stretched by λ each time.

    2 hands-on tasks

  5. 8-5 · Eigenbasis: Turning A into a Diagonal Matrix

    Take the two eigendirections (1, 0) and (1, −1) from 8-1 and stack them as the columns of a matrix P, then compute P⁻¹AP: in the eigenbasis, A = [[2, 1], [0, 1]] becomes a diagonal matrix, with the eigenvalues 2 and 1 right on the diagonal. This is diagonalization, A = PDP⁻¹ — the change of basis from Chapter 7 and the eigenvectors of Chapter 8 meet right here.

    3 hands-on tasks

Chapter 9 · Solving Linear Systems

  1. 9-1 · The Column Picture: Building b

    The column picture of Ax = b: find the coefficients x that make a linear combination of A's two columns land exactly on b. Drag x (the gold vector), and the green Ax moves with it — make it hit the target b = (4, 1).

    1 hands-on tasks

  2. 9-2 · The Row Picture: Where Two Lines Meet

    The row picture of the same system: each row is a line (x + 2y = 4 and x − y = 1), and the solution is where the two lines intersect. Drag the gold point to find it.

    1 hands-on tasks

  3. 9-3 · No Solution: Two Parallel Lines

    The system x + y = 2 and x + y = 4 graphs as two parallel lines — no intersection, so the system has no solution. In the column picture: b lies outside the span of the two columns (a single line).

    3 hands-on tasks

  4. 9-4 · Infinitely Many Solutions: Coinciding Lines

    The system x + y = 2 and 2x + 2y = 4 is really the same equation — the two lines coincide completely, and every point on the line is a solution: infinitely many solutions.

    2 hands-on tasks

  5. 9-5 · Null Space: The Directions Crushed to the Origin

    The matrix A = [[1, 1], [1, 1]] from 9-3 squashes the entire plane onto the line y = x. The vectors that get squashed exactly to the origin (solutions of Av = 0) form the null space of A. Drag v and watch Av (green) to find the direction that gets crushed.

    3 hands-on tasks

Chapter 10 · Into Three Dimensions

  1. 10-1 · 3D Space and 3×3 Matrices

    Welcome to three dimensions! The three columns of a 3×3 matrix are the landing spots of î, ĵ, and k̂. Drag the empty space to rotate your view and look at these three column vectors from different angles.

    1 hands-on tasks

  2. 10-2 · The 3D Determinant = Volume Scaling

    The unit cube (blue) is turned by a 3×3 matrix into a parallelepiped (green), and the volume scaling factor = det(A). Drag a column vector tip to make the volume 2 times larger.

    2 hands-on tasks

  3. 10-3 · 3D Rotation: 90° Around the z-Axis

    When rotating around the z-axis, k̂ stays put while î and ĵ turn 90° in the xy plane. So the matrix's 3rd column is (0, 0, 1), and the first two columns match the 2D rotation: [[0, −1, 0], [1, 0, 0], [0, 0, 1]].

    1 hands-on tasks

  4. 10-4 · 3D det = 0: Flattened into a Plane

    When the three column vectors are coplanar, the parallelepiped is squashed flat and its volume becomes 0 — 3D space collapses onto a plane (or even a line), and the matrix is singular. Flatten this cube yourself.

    1 hands-on tasks

Chapter 11 · Dot Products and Duality

  1. 11-1 · Dot Product: Multiply Components, Then Add

    The dot product of two vectors is a number: u·v = uₓvₓ + u_y v_y. Here u = (2, 1), and the top-right corner of the canvas shows u·v live — drag v and watch how it changes.

    2 hands-on tasks

  2. 11-2 · Geometric Meaning: Length of the Projection

    The geometric meaning of u·v: the length of v's projection onto u, times |u|. The green arrow is the projection of v onto u = (3, 0), and the dashed line is the perpendicular.

    2 hands-on tasks

  3. 11-3 · Sign of the Dot Product: Acute, Right, Obtuse

    The sign of the dot product reveals the angle: u·v > 0 means acute, = 0 means perpendicular, < 0 means obtuse. Since u·v = |u||v|cosθ, the sign is decided entirely by cosθ.

    3 hands-on tasks

  4. 11-4 · Duality: The Dot Product Is a 1×2 Matrix

    Fix u = (2, 1). The map v ↦ u·v turns a plane vector into a number — it is a linear transformation from 2D to 1D, whose matrix is the 1×2 matrix [2 1], exactly u laid on its side (the transpose uᵀ). This correspondence between vectors and linear functions is called duality.

    2 hands-on tasks

  5. 11-5 · Transpose: Laying Rows Down as Columns

    The transpose Aᵀ writes row 1 of A as column 1, row 2 as column 2: the transpose of A = [[2, 1], [0, 3]] is Aᵀ = [[2, 0], [1, 3]]. In 11-4, "the vector lay down into a 1×2 matrix" — that was the vector version of the transpose. Now dial in Aᵀ yourself.

    3 hands-on tasks

  6. 11-6 · Dot Product and Angle: Cosine Similarity

    u·v = |u||v|cosθ. When both vectors are unit vectors, the dot product is cosθ itself — the smaller the angle, the larger the dot product. u = (1, 0) is fixed; set v to a unit vector at a 60° angle to it.

    3 hands-on tasks

Chapter 12 · The Cross Product

  1. 12-1 · The 2D Cross Product = Oriented Area

    In 2D, the cross product of two vectors is a number: u×w = uₓw_y − u_y wₓ, which is exactly det([u w]) — the oriented area of the parallelogram. Drag the two columns and revisit the area from Chapter 5, this time watching its sign.

    3 hands-on tasks

  2. 12-2 · The 3D Cross Product: A Vector Perpendicular to Both

    In 3D, a×b is a vector: it is perpendicular to both a and b, and its direction is given by the right-hand rule (curl your fingers from a toward b; your thumb points the way). Here a = (2, 0, 0) and b = (1, 2, 0), and the green arrow shows a×b computed live.

    2 hands-on tasks

  3. 12-3 · The Length of the Cross Product = Parallelogram Area

    |a×b| = |a||b|sinθ — exactly the area of the parallelogram spanned by a and b. Drag the first two columns of the matrix (the pink and purple arrows), and the length of the green cross-product vector updates in real time.

    2 hands-on tasks

  4. 12-4 · Cross Product and Determinant: The Return of Duality

    Dot a×b with a third vector c: (a×b)·c = det([a b c]) — the oriented volume of the parallelepiped. "Dotting with c" is a linear function whose dual vector is exactly a×b: the duality from Chapter 11 is back, now in 3D.

    2 hands-on tasks