All animations · In the chapter · Open full MP4
Animation 1
Symmetry transforms don't change how pool balls behave
symmetry-pool-table.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.
1600 × 960 · 30 fps · 14 s · 420 frames · 12 samples
MP4 SHA-256 60ac9f04ccefa11525471e6dc5bcced6497776b8f51b767f1c00ffbddfbbb4a6
Frame manifest · Context markdown · Download complete review packet
Chapter context
Section: Symmetry. Excerpts are verbatim; line numbers refer to the included chapter markdown.
Caption
Symmetry transforms don't change how pool balls behave
Image description
The same pool-ball collision under position and time translations, rotation, and a velocity boost
Before the animation
Chapter lines 2–2
Strike a pool ball with a cue, and the balls move in an expected way. Move the table over a few feet, and the balls move in recognizably the same way. Wait a few minutes, and the balls move in the same way. Turn the pool table a few degrees, and the balls still move the same way. Put the pool table on a train at constant velocity, and, again, the balls move in the same way. These are the manifest "symmetries" of the world we live in -- position and time translation, rotation, and velocity "boosts."
After the animation
Chapter lines 10–10
Our pool game illustrates what we mean by symmetries of physical behavior, but why should we start our story here? We will argue that symmetry constrains both the laws that govern physical evolution and the classification of the objects that undergo that evolution. The term "symmetry" in this context may not at first glance seem like the same concept as, say, a triangle's symmetry, but it precisely is, as we will see.
Chapter lines 12–12
We will start with the familiar world of these discrete symmetries and build up the definitions we need from there. Then we will turn to “continuous symmetries,” specifically rotations and translations, where we will encounter a new branch of math, Lie algebra, that joins symmetry ideas with calculus. We will discover that waves arise naturally when we represent translational symmetry, and this will lead us to a discussion of Fourier analysis. Finally, we will situate these ideas in the context of quantum mechanics.
Generation source
Main script --render draws the equal-mass elastic-disk trials and encodes frames directly with FFmpeg. --check and --encoded-check produce the companion numerical and decoded-video reports. It has no local Python imports or input movie.
Mapping evidence and limits
The script's NAME and output match the linked movie. Matching validation and encoded-validation JSON record 1600 x 960, 30 fps, 420 frames, 14 s. The reports contain no movie hash, so this is source/output-name attribution rather than a hash-attested build.
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_pool_table.py · GitHub at 974f9de35254
SHA-256 b16887b92be1a8b23c5932ce457c6c1f7db0ca90519d0b963b0a377448a37c7f
Existing generator checks (2 reports)
These are existing author-produced generator reports, copied without changes. Their checks were not rerun for this packet and are not independent certification. A report may describe an earlier generation run; inspect its contents before applying its claims to the current movie.
- symmetry-pool-table-validation.json
SHA-256 0563fa0c6d81a153869ef1d1fec1518d4fcdf84e15cafa840428443ffaccde0c - symmetry-pool-table-encoded-validation.json
SHA-256 dc55bdc42a1d12e38e8008a0a667e2a668175b2a06e7e871cb026166f1712a6e
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











