A method comprising: receiving , at one or more first computers, image frames from a camera via a first communications channel coupling the camera with the one or more first computers, the first communications channel having a first data bandwidth; identifying , by the one or more first computers, locations of interest in the image frames; finding sequences of the locations identified in the image frames, wherein each of the sequences satisfies a motion criterion for locations identified in at least three image frames from the camera; sending output data for the sequences of the locations, wherein the output data comprises, for each location in each sequence, a two-dimensional position of the location in a specific image frame having a timestamp; receiving , at one or more second computers, the output data, wherein the one or more second computers are coupled with the one or more first computers via a second communications channel having a second data bandwidth that is less than the first data bandwidth; processing , by the one or more second computers, at least one of the sequences in the output data by interpolating between specified two-dimensional positions in specific image frames for the at least one of the sequences, using the timestamps of the specific image frames, to produce a virtual two-dimensional position at a predetermined point in time; and constructing a three-dimensional track of a ball in motion in three-dimensional space using the virtual two-dimensional position and position information obtained from at least one other sensor for the predetermined point in time. receiving , at one or more first computers, image frames from a camera via a first communications channel coupling the camera with the one or more first computers, the first communications channel having a first data bandwidth; identifying , by the one or more first computers, locations of interest in the image frames; finding sequences of the locations identified in the image frames, wherein each of the sequences satisfies a motion criterion for locations identified in at least three image frames from the camera; sending output data for the sequences of the locations, wherein the output data comprises, for each location in each sequence, a two-dimensional position of the location in a specific image frame having a timestamp; receiving , at one or more second computers, the output data, wherein the one or more second computers are coupled with the one or more first computers via a second communications channel having a second data bandwidth that is less than the first data bandwidth; processing , by the one or more second computers, at least one of the sequences in the output data by interpolating between specified two-dimensional positions in specific image frames for the at least one of the sequences, using the timestamps of the specific image frames, to produce a virtual two-dimensional position at a predetermined point in time; and constructing a three-dimensional track of a ball in motion in three-dimensional space using the virtual two-dimensional position and position information obtained from at least one other sensor for the predetermined point in time. <EOS>