How to use this
Drag the canvas to orbit the camera around the origin. Pick a preset to load a named transformation, or use Build to construct one yourself — the five build modes (angle, compose, stack, matrix, quaternion) are different ways to specify the same 3×3 orthogonal matrix, all feeding the same compiler.
The step slider below the canvas scrubs through the reflection sequence one mirror at a time. Watch the bright triad walk from the identity (faint, in the background) to the target. At every odd step the chirality flips and the triad becomes left-handed; at every even step it lands back in the rotation-only world. The det pill in the canvas header confirms the parity at a glance: green for proper rotations (det = +1), red for improper transformations (det = −1).
Things to notice: every transformation factors into at most three reflections, the same rotation can be built five different ways and the resulting tree is the same, and the inversion through the origin is the only preset that hits the upper bound of three.
Build
angle
+90°
Pick an axis, drag the angle. The compiler runs live as you drag.
Use Rx, Ry, Rz, R(x,y,z,deg), Mirror(xy|yz|xz), Mirror(x,y,z), I. Compose with *.
Rz(90) * Rx(45)
R(1, 1, 1, 120)
Mirror(xy) * Rz(60)
Mirror(1, 1, 0)
+ Rx
+ Ry
+ Rz
+ Mxy
+ Myz
+ Mxz
Top of the list is applied last. Each row composes onto the row below it.
Type any 3×3, then snap to the nearest orthogonal via Gram–Schmidt before compiling.
Is this actually new?
No. Élie Cartan and Jean Dieudonné proved in 1937–48 that every orthogonal transformation in n dimensions is a product of at most n reflections. Alston Householder published the matrix form in 1958. David Hestenes revived geometric algebra in the 1960s and made "rotations are products of reflections" the framework's organizing principle, which Doran and Lasenby's textbook cemented in 2003. Marc ten Bosch shipped the famous interactive "Let's remove Quaternions from every 3D Engine" article around 2018. Rodríguez-Andrade et al. published an explicit Clifford-algebra decomposition algorithm in 2010.
What this page is: the Cartan–Dieudonné theorem made tactile. The compiler runs in your browser, takes any orthogonal 3×3 matrix, and emits the reflection sequence. The branch-cut wobble is the parity rule: even reflection count gives a proper rotation (det = +1), odd gives an improper one (det = −1). It cannot be smoothed away.