Tested tool guide
Tested browser tools
Checked August 16, 2026
What Gram-Schmidt Process Visualizer does, with a checked example
Feed in a set of vectors in 2D or 3D and the tool replays the Gram-Schmidt orthogonalization process as an animation: each vector is projected onto the span of the vectors processed before it, the projection is subtracted, and the perpendicular leftover is normalized to unit length. Every step shows the original vectors, the projection arrow, and the growing orthonormal basis. The most common surprise is that the output depends on the order you enter the vectors: the same set in a different order yields a different orthonormal basis, and a nearly dependent vector produces a tiny leftover that gets stretched into a full-size unit vector.
Worked example
A concrete input and expected output from the current implementation.
Input
v1 = (3, 4), v2 = (1, 2) [2D]
->
Expected output
u1 = (0.6, 0.8), u2 = (-0.8, 0.6); the step-2 projection of v2 onto u1 is shown as the vector (1.32, 1.76), which has length 2.2, and the QR factorization is R = [[5, 2.2], [0, 0.4]]
The first vector is normalized to unit length: (3, 4) / 5 = (0.6, 0.8). The projection of (1, 2) onto u1 has length 2.2; subtracting it leaves (-0.32, 0.24), whose norm is 0.4, and normalizing gives (-0.8, 0.6). The two results are unit vectors and perpendicular, since 0.6 * -0.8 + 0.8 * 0.6 = 0.