On the Subject of Cruel Ship Review
😨.
The module shows a pair of characters, 6 LEDs of profile pictures and a page counter.
- For each page: get all the values for the ship from Not Ship Review’s Data Table and put them in one row. Put new rows after existing rows to get 6x6 matrix. Divide this matrix in half both horizontally and vertically to get 4 3x3 matrices. Multiply them in reading order and call the result A.
- Project A to closest rotation matrix R by doing Singular Value Decomposition:
- Set B = ATA.
- Find the eigenvalues of B. Solve the characteristic equation det(B − λI) = 0. This is a cubic equation; it will give three roots λ₁ ≥ λ₂ ≥ λ₃ ≥ 0 (all positive).
- Find the eigenvectors of B. For each λi:
- Set Mi = B − λiI.
- Reduce Mi to row echelon form using Gaussian elimination (one row should vanish, since det(Mi) = 0 by construction).
- Solve for the free variable to get the direction vi.
- Normalize: vi → vi / ‖vi‖.
- Assemble V. Set V = [v₁ | v₂ | v₃].
- Compute the columns of U. For each i where σi = √λi: ui = 1/σi * (Avi).
- Assemble U = [u₁ | u₂ | u₃].
- Set R = UVT.
- For each LED: read the configuration for all pages, divide it in half and count amount of lits in
each half.
Use table below to find the value of R to submit. First number is the row, second is the column.
Submit the numbers in order of LEDs.
1 2 3 1 2 3





































