All animations · In the chapter · Open full MP4
Animation 7
Metric structure
symmetry-rotation-vector-invariants.mp4
These are sparse samples decoded from the current MP4, not newly rendered illustrations. They can support checks of the sampled states and labels, but cannot establish continuous motion, timing, transitions, or the absence of problems between samples. Use the full MP4 when judging those properties.
1280 × 720 · 24 fps · 6 s · 144 frames · 12 samples
MP4 SHA-256 f82c316a58b99f9882752b4074fbb5fca732796d667707c321812c9e0fcff340
Frame manifest · Context markdown · Download complete review packet
Chapter context
Section: Invariants and Metrics. Excerpts are verbatim; line numbers refer to the included chapter markdown.
Caption
Metric structure
Image description
Rotation preserves vector lengths and angles
Before the animation
Chapter lines 341–341
What is the invariant of rotation in this representation? It is just the length of vectors and the angles between them.
After the animation
Chapter lines 349–349
These relationships are expressed by a single invariant, the dot product.
Chapter lines 351–355
Generation source
Run the main script without arguments. It draws the rotation-and-invariants frames with Pillow and encodes them with FFmpeg. It has no local Python imports or input movie.
Mapping evidence and limits
main() explicitly writes symmetry-rotation-vector-invariants.mp4; constants specify 1280 x 720, 24 fps, 144 frames. No matching validation JSON is present. Attribution is by source/output name and pipeline, not a recorded movie hash.
Source SHA-256 values identify the exact downloadable bytes in this packet. The source mapping and recorded checks explain the likely generation pipeline; they do not prove that these exact source bytes produced the movie. A GitHub link pinned to a commit is provided only when the delivered source bytes exactly match that path at the build's Git HEAD.
- scripts/generate_symmetry_rotation_vector_invariants_animation.py · GitHub at 974f9de35254
SHA-256 c8067f8068fa97e6ec940af9a1b55b37c5beefb2c9f8083eba06d97155ec5b60
Decoded contact sheet
Extraction method: Twelve evenly spaced decoded frame indices, including first and last. Native-resolution JPEGs from the encoded MP4; timestamps read from FFmpeg showinfo. No source rerendering. Frame indices are zero-based. Sparse samples do not establish continuous motion or capture every transition.. Frame indices are zero-based.

Full-size sampled frames











