Another look at Jiggle Analysis

“Jiggle” analysis

A number of studies have been conducted to evaluate blur/shake in the Zapruder film as an indicator of involuntary camera shake resulting from possible brief startle jiggles at the sound of gunshots. This type of analysis has been called “jiggle analysis”. Perhaps the best known study was that of Professor Luis Alvarez who published an analysis in the American Journal of Physics in 1976. Later, related analysis was conducted by two members of the Photographic Evidence Panel for the HSCA review (William Hartman and Frank Scott).  A subsequent analysis by Michael Stroscio repeated the technique of Alvarez but extended the data set to include some earlier frames (152-170) that Alvarez did not have available.




















1) The first of the graphs above represents Figure II-5 from the House Select Committee’s summary of the analysis of blurs in the Zapruder film as possible camera reflex reaction to the sound of gunshots.  This figure summarizes three related analysis of camera motion. Those three studies were:

2) The middle graph is data from Michael Stroscio's publication which extends the Alvarez data back to z152.                      

3) The lower graph is by this author and plots camera angular velocity in early parts of the film from z140 thru z272.

Since there were variations in the techniques used to measure camera motion for these graphs, the plots don’t appear identical. There are however commonalities in their results for the largest motions detected. In the early part of the Zapruder film from z140 thru ~z272, relative maximum peak swings in camera motion that line up best across all sets of graphs appear around the frames z157/158, z165/166, z184/185, z190/191, z198/199, z207/208, and z227/228. These locations are indicated by the vertical lines that spans across all sets of graphs above with a representative frame number for those locations at the bottom. 

A major question remains, “Are any of these jiggles associated with a gunshot?”.

A note about the authors bottom graph included above regarding camera angular velocity
This analysis took advantage of digital technology and looked at more recent digitized Zapruder frames (from John Costella).  Since most of the overall camera motion was included in the horizontal direction, the technique focused on camera angular velocity changes along the horizontal axis and uses pixel counts as a way to measure angles. Horizontal pixel counts from the right edge of the camera field of view to a given stationary vertical landmark (edge of Stemmons sign for example) from frame to frame was used as a measure of a camera positioning angle in each frame.  Differences in the pixel count to the fixed landmark from frame to frame are used as a measure of the change in angle for the camera over a one frame time period.  This frame to frame change in angle is the camera angular velocity in pixels per frame. (For more common units, conversion factors may be used for Zapruders camera and are estimated at 18.3 frames per second and about 62 pixels per degree from a Costella survey).
The plot above used this approach to look at early parts of the motorcade filming on the Zapruder film, and displays the raw data of camera angular velocity plotted as pixels/frame.


“Non-Jiggle” analysis

Sometimes when evaluating a problem useful insight is gained by “turning the table 180 degrees” and look at the problem from a completely different perspective.  That approach was used in this instance, and a “non-jiggle” analysis was conducted to augment the jiggle analysis. Not all camera movements, especially when panning is involved, are necessarily involuntary movements. The purpose of conducting this sort of “opposite” analysis was to look for voluntary camera movements to help sort out some of the camera motions.
In order to reduce noise in the final data series, i.e. filter out small rapid motions due to natural camera holding jitter or a potential gunshot jiggle, a smoothing algorithm was used.  A simple but effective noise reduction technique engineers sometime call a low pass filter was used which consisted of a 7 point centered moving average of the raw angular velocity data.
Natural handheld camera jiggle is estimated from studies to range from just about 3 to 10 Hz. This corresponds to a cycle Period in the range of 2-6 Zapruder frames.  Alvarez claimed from his experience a natural peak in frequency of about 3 Hz which would be about 6 frames for one shake cycle. In order to help filter out possible involuntary effects like these, a moving average of greater or equal to these periods is used.  A rolling average of 7 points (7 frames of data; averaging 3 before, the center evaluation point, and 3 after) was chosen as the averaging window since it’s the nearest odd number  >  these noise periods, but isn’t so large to over-process the data and remove voluntary trends. Recall again that we are interested in looking for conscious/voluntary movements which typically have a longer duration or period than the quick involuntary jiggle movements.
The 7 point moving average of angular velocities was plotted vs frame number to visualize the change in camera angular velocity over time once jiggle is filtered out. (see graph below with units of deg/sec)

What now appears is a smoother graph with apparent zones of low-to-no angular velocity and zones of higher angular velocity and transitions between the two. Zapruder appeared to be alternating between non-panning and panning of the camera in the early part of the film as a way to keep the limo centered in the viewfinder while it was further up the street. The graph below highlights these different zones by shading. Magenta is low to no panning and green would be active panning. The circled areas are points of approximate constant angular velocity in those zones. At the far right the circled area has a gradual increase over time as Zapruders angular velocity (panning rate) increased as the limo started to get closer and had greater tangential motion relative to him.

What’s significant in this non-jiggle graph are the areas between the circled panning and non-panning segments. These are areas of noticeable change in angular velocity vs. time and these are camera accelerations that are necessarily voluntary as Zapruder changed the camera from non-panning to panning and vise-versa. Between the circled areas, peak acceleration from changes in panning action can be seen around the transitions near where the zone colors change and correspond to frames around z157, z166, z185, z199, and z207 (note these are peak points also highlighted in the jiggle analysis except the jiggle peak around z227 has been effectively filtered out here).  A smaller adjustment in rate while panning may have occurred at z191, z215, and z231, but these are not pronounced like the panning/non-panning transitions.

The primary camera voluntary action from the non-jiggle analysis is summarized in the table below.

Frame Range

Indicated camera action




Transition to panning




Transition to non-panning




Transition to panning




Transition to non-panning




Transition to Panning



(with slight rate adjustment)

See the video Here where the transitions are indicated on the film. A good way to see the panning motion differences is to look at a stationary landmark (like the Stemmons sign).



Adding the non-jiggle analysis to the jiggle analysis indicates that the peak early Zapruder film camera accelerations are associated with voluntary camera centering motions as Zapruder transitioned from panning to non-panning and back.  Since these camera accelerations seen early in the jiggle analysis appear to be associated with voluntary camera panning actions, it follows that the jiggle analysis are not showing involuntary reactions to gun shots. Based on this extended Zapruder film analysis, no first shot is indicated in the evaluated time range from frame z140 through the time of the second shots reaction appearing in the z227 range.