thinking outside the tank

Crop Duster Animation

leave a comment »

In October 2016 I was contacted by Lem Shattuck, a professional agricultural aviator, who asked me if it would be possible to create an animation in Google Earth of the path followed by a crop-duster aeroplane using GPS data recorded in-flight. The animation would be used in evidence in a trial in which he had been recruited as an expert witness. I was confident that the answer was ‘yes’ but it took several months of exchanging information with Lem to get the results he needed.

The flight in question ended tragically when the plane struck the outer guy of a 1000-foot mast and the pilot lost his life. The details of the case will not be discussed here, rather I want to describe how some software I developed a few years ago, for my own leisure, was adapted to try to clarify what happened and to illustrate how, perhaps, the incident could have been avoided.

There were two principal areas to be addressed:

  1. Create the scene in Google Earth.
  2. Use the animation software to ‘fly’ the model through the scene.

Creating the Google Earth Scene

There were two masts at the site which we called the ‘west tower’ and the ‘east tower’. The plane crashed into the west tower. The 3D Warehouse provided the initial tower model; this had to be modified in SketchUp to make it more realistic. The following series of clickable images shows some of the ways we made the model look closer to what the agricultural pilot sees on a daily basis. Also, one version of the tower was to include high-visibility sleeves and marker balls (Tana markers) on its outer guys.

The modifications included:

  • The original model used rectangular strips to represent the guy wires (figure 1.) and only two of these at each anchor point. The flat guys were replaced with cylinders of the correct diameter, textured to look like weathered steel (figure 2). The number of guys was also increased to four at each anchor.
  • High-visibility sleeves were added by drawing and colouring concentric cylinders (figure 3).
  • Tana markers were added at suitable intervals (figure 4).
  • The anchor points had to be rotated and re-positioned so they coincided with their actual positions at the site (figure 5 and 6). The whole model was scaled and geo-located over multiple iterations to make it as accurate and representative as we could.

A couple of large trees bordered the field and suitable models were placed in the scene (figure 7).

8. M18 aircraft

Lem bought a 3D model of an M18 aircraft, a type commonly used by agricultural pilots and was the aircraft flown on this occasion. I made a few modifications to the model, such as adding the semi-transparent cylinder that simulates propeller rotation. For the animation, the model also had to be oriented so that it would be in straight and level flight and would fly on the heading set by the KML.

Animation software

At the time Lem contacted me I already had some software, written in C#, that was able to animate marine vessels and aeroplanes, as demonstrated by these videos:

Aircraft animations were created from KML input files which included all of the settings that define how an animation should look. One key feature in the specification is the Path, which includes a series of Placemarks, representing the points through which the plane should fly. Settings could be attached at various points in the input  to achive certain effects, such as: identify the model to animate; define the speed at which the model should ‘fly’; determine how much the plane should roll for a given change in heading.

I should point out that flight animations move two objects through Google Earth space. One is the model itself, and the other is the camera that follows the model on its journey.

My software, as it existed at the start of the project, would fit spline curves between the Placemarks in a Path for both the model and the camera (see this video for a demonstration, using javascript, of the cubic spline technique).


Cubic Spline Demonstration

The cubic spline curve fitting creates multiple series of intermediate points that define the flight path of the model, and the location and orientation of the following camera.

Having generated these curves, all that remained would be to create the animation, step by step, by moving the model to successive points, modifying its heading, pitch, and roll at each point. Likewise, the following camera would be advanced to its next location and be rotated about its three axes to point at the model.

Software modifications for the crop duster animation

What Lem was asking me to do was to make an animation using about two-and-a-half minutes of GPS data from a system in common use by agricultural aviators which records a position every two seconds. These data-points were much closer together than I had previously used and would need some tweaking of the interpolation routines.

Another change was to provide two types of view, one to give the pilot’s point of view during the flight, and the other to view the flight from a fixed range and orientation.

Finally, the animations needed to be run using historical imagery which would show the position of the Sun at the time of the incident.


The following links take you to the YouTube videos that acted as backups to the animations that Lem would present in court:

In these videos the LineStrings coloured in yellow represent the GPS data-points while the smoother, white lines, shows the results of the cubic spline interpolation. The red line shows an extrapolation of the GPS data from the last data-point recorded to the known location of the crash.


Leave a Reply


You are commenting using your account. Log Out /  Change )

Google photo


Twitter picture


Facebook photo


Connecting to %s

%d bloggers like this: