All animations · In the chapter · Open full MP4
Animation 3
$D_3$ in 3-dimensional representation
symmetry-d3-rotations-vs-flips.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.
1200 × 700 · 24 fps · 6.5 s · 156 frames · 12 samples
MP4 SHA-256 7aeb470b58e5a3bbc7801863594e883b9f1beb28283a29554a6a170abc513dcb
Frame manifest · Context markdown · Download complete review packet
Chapter context
Section: Representations. Excerpts are verbatim; line numbers refer to the included chapter markdown.
Caption
$D_3$ in 3-dimensional representation
Image description
D3 rotations and flips with labeled component axes and a fixed equal-components axis
Before the animation
Chapter lines 118–118
The matrices that provide a set of transformations from which all other operations can be constructed are the symmetry's generators. For example, in the 3-dimensional representation of $D_3$, all operations can be constructed from one rotation matrix and 3 flip matrices, one for each axis.
Chapter lines 120–120
Visually, permutations that correspond to rotations of the triangle are 120-degree rotations about a diagonal axis in this vector space, while those that correspond to flips are flips about planes that contain the diagonal axis.
After the animation
Chapter lines 128–128
Now, we can notice something about these visualizations. The transformation of any vector lies in a plane, and all such planes are parallel to one another. Thus, if we subtract the average of a vector's components from each component, that is, if we move the point where the plane intersects the axis of rotation to the origin, we preserve the permutation structure of the transformations. We thus see that the $D_3$ symmetry is just as well represented as 120-degree rotations in the subspace of a 2-dimensional plane.
Chapter lines 130–130
For our earlier vector, the average of the components is 3. We can separate it into a common part and a zero-sum part.
Generation source
Run the main script without arguments. It uses symmetry_d3_rendering for shared geometry, transformations, and drawing, then encodes its frames with FFmpeg. The imported module is a code dependency, not an input movie.
Mapping evidence and limits
The generator explicitly writes symmetry-d3-rotations-vs-flips.mp4; constants specify 1200 x 700 at 24 fps. 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_d3_rotations_vs_flips_animation.py · GitHub at 974f9de35254
SHA-256 c2214d1c0f6c2cfbac1a752ac8d4a377f57275b53cae14c15c3fbd20a3829e01 - scripts/symmetry_d3_rendering.py · GitHub at 974f9de35254
SHA-256 4be9f7169cfe3654b9a1457de70a65e29dd20cc4863c7445a5ca6155f4453d6c
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











