Rangekeeper
A sixteen-inch shell is in the air for most of a minute, so the gun cannot be aimed at the target. It has to be aimed where the target will have got to, and how far ahead that is depends on how long the shell flies, which depends on how far it has to go. The answer is on both sides of the equation. What solved it was not a calculator but an assembly of six kinds of mechanism, geared together so that the only position they can all rest in is the answer.
New to computing without a computer? Start here
A shell fired from a moving ship at a moving target is in the air for most of a minute, so you cannot aim at where the target is. You must aim at where it will be, and that depends on your speed, its speed, the wind, the roll of the deck, and the time of flight, which itself depends on the answer.
The answer appears on both sides of the equation. Machines that could iterate existed — Bush’s differential analyser had been running at MIT since 1931 — but none of them was going to sea in a turret, so the answer was not calculated at all. It was built: gears, cams and shafts arranged so that turning the inputs leaves the whole assembly with exactly one position it can rest in, and that resting position is the answer. The machine does not solve the equation. The machine is the equation.
The parts
Six kinds of mechanism, each doing one piece of arithmetic by moving. Operate them here before seeing them wired together. Everything below is described in Ford's patent, and where it has words for a part they are quoted with it.
- Integrator of the ball and disk typeturns a rate into a quantity. The disk spins at a constant speed from a spring motor, the ball sits at a radius set by the range rate, and the roller it drives accumulates the range.
a driving element rotatable at a constant speed and a driven element whose speed is varied in accordance with the range rate
- Component solver a pin in two slotted armssplits a ship's course and speed into the part that closes the range and the part that swings the bearing, by driving two slides at right angles.
a slide 74, which is parallel to the line of sight
- Differential two shafts in, one outadds two rotations. Feed it both ships' along-the-line components and its output shaft is the range rate.
the sum of the components of the vectors DA and EB along the line of sight give the rate of change of range
- Multiplier an integrator used sidewaysturns in proportion to the product of its inputs.
- Cam the range table, cut in metalreads a published table by shape, so interpolating between its rows is geometry.
- Servo follow-up a shaft chasing a demandcatches up to what it is told at a limited rate. This is what makes the assembly settle rather than iterate, and why the machine solves continuously.
Integrator of the ball and disk type
The disk turns at a constant speed from a spring motor: it is the machine's clock. The ball sits at a radius you set, and the roller it drives accumulates. Set a rate, run it, and the roller reads the total.
The disk is stopped, the roller is adding 0.0 per second, and the total is 0.0 after 0.0 s.
Component solver a pin in two slotted arms
A ship's course and speed go in; two slides come out, one parallel to the line of sight and one at right angles to it. The first closes or opens the range, the second swings the bearing.
- along the sight
- -7.96 yd/s closing
- across it
- -7.96 yd/s to the left
- recomposed
- 11.252 yd/s, which is the speed it went in as
Differential and multiplier two shafts in, one out
The differential turns by the sum of its inputs, and subtracts by turning one of them the other way. The multiplier turns in proportion to their product. Between them they are most of the arithmetic in the machine.
- differential
- 12 + (-7) = 5
- multiplier
- 12 × (-7) = -84
Cam the range table, cut in metal
The follower rides a profile whose shape is the published range table, so reading between its printed rows is geometry. The rows this cam is cut from are marked along it.
- elevation
- 11.77°
- time of flight
- 29.59 s
- on a printed row?
- yes: this is a row the table prints
Servo follow-up a shaft chasing a demand
This is the part that makes the assembly continuous rather than iterative. It does not jump to what it is told; it catches up at a limited rate, and while the demand keeps moving it runs permanently a little behind, which is why the reading is always a little out of date. It does not overshoot here because there is no inertia in this model: the step is clamped to whatever error is left. A real follow-up has mass, and what stops it hunting around the demand is damping, not the rate limit.
The shaft is at 80.0, caught up with the demand.
The computer
Now the parts wired together the way the patent wires them. Two component solvers, one per ship. Two differentials, summing their outputs into the range rate and the deflection rate. The integrator generating the range from the range rate. The cam reading the time of flight. And the follow-ups chasing a demand that depends on the flight time the cam is reading off the range they are being driven to.
Nothing here is stepped. Press run and every shaft moves a little at a time, and the assembly arrives at the answer because it is built so that only the answer is stable.
- own ship resolves to
- 10.74 along, -10.74 across
- target resolves to
- -7.96 along, -7.96 across
- range rate
- -18.70 yd/s closing
- deflection rate
- 2.78 yd/s across
- generated range
- 19,999 yd
- time of flight
- 29.51 s
- gun range
- 19,955 yd
- gun elevation
- 11.74°
- gun bearing
- 045°
- follow-ups
- still catching up, 554 yd behind
- inside the range table
- yes, 5,000 to 42,345 yd
What it cannot know
Everything above assumes the target holds its course for the whole time of flight. Nothing in the machine can check that. Turn the target part-way through the shell's flight and the solution is still confident and now wrong.
- the shell misses by
- 178 yd
- The machine solved for a target holding 270° for the whole 29.5 seconds. It turned after 10. Nothing in the mechanism can see that, so it is still confident.
The correction that arrives late
The rangekeeper computes and the guns fire, and then the only feedback the whole system gets is somebody watching where the shells land. “It is the job of the spotter to note where shots fall so that necessary corrections can be made.”
The part that is easy to miss is when that observation arrives. A shell fired at 20,000 yards is in the air for 29.59 seconds, which is a number off the range table further down this page. The splash you are looking at belongs to a solution half a minute old, and a target making twenty knots has moved about three hundred yards in the meantime.
| salvo | aimed at | flight | target moved | fell | spotter says |
|---|---|---|---|---|---|
| 1 | 20,000 yd | 29.59 s | 333 yd | 20,000 yd | short by 333 yd |
| 2 | 20,333 yd | 30.24 s | 340 yd | 20,333 yd | short by 340 yd |
| 3 | 20,673 yd | 30.90 s | 348 yd | 20,673 yd | short by 348 yd |
| 4 | 21,021 yd | 31.57 s | 355 yd | 21,021 yd | short by 355 yd |
| 5 | 21,376 yd | 32.26 s | 363 yd | 21,376 yd | short by 363 yd |
| 6 | 21,739 yd | 32.97 s | 371 yd | 21,739 yd | short by 371 yd |
Six salvos, no straddle, and the last one is no closer than the first. Every correction is exactly right about where the target WAS when the shells landed, and by the time the next salvo arrives it has moved again by the same amount. Correcting by what you saw chases the target forever.
And how small the target really is
A salvo is not one splash. “The spacing between the shots is dispersion”, and nine guns laid identically put nine shells across a couple of hundred yards. The surprise is the other half. A battleship is nearly three hundred yards long and almost none of that is a target, because the shell is coming down at an angle and one that clears the deck keeps going.
The appendix has the name for what is left: “The hitting space for a material target is the distance behind the target that a shot striking the top of the target will strike the horizontal plane through the base of the target.” And it says where to get it: “Hitting space must be computed from column 19 of the range tables or directly from the angle of fall of the shot.” The angle of fall is in the table further down this page, so that is where this reads it.
- angle of fall, off the table
- 14.92° at 20,000 yd
- hitting space, a 30 ft target
- 37.5 yd
- pattern, first splash to last
- 206 yd
- hits
- 1 of 9
- the spotter sees
- a straddle: shells short and shells over
| gun | fell | result |
|---|---|---|
| 1 | −103 yd | short |
| 2 | +43 yd | over |
| 3 | −51 yd | short |
| 4 | +94 yd | over |
| 5 | −15 yd | short |
| 6 | +77 yd | over |
| 7 | −112 yd | short |
| 8 | +13 yd | hit |
| 9 | +55 yd | over |
Perfectly aimed. The mean point of impact is on the target, the salvo straddles, and 1 shell of nine hits, because the pattern is 206 yd across and the target is 37.5 yards deep. A straddle is not a hit and never was.
Why this had to be a machine
Write the problem down and it will not sit still. The future range is the distance to wherever the target gets to in T seconds. T is the time of flight for that range, which the gun's range table gives you. Neither can be worked out first, because each one needs the other.
A rangekeeper did not solve that by trying values. It was built so that the two statements were the positions of two shafts, geared so that they could only agree, and the mechanism ran continuously into the position where they did. Ford's patent puts the whole ambition in one clause: it is an instrument for furnishing continuous indications of the range rate and the deflection rate, and also for generating the range
.
What it sat inside
This page draws mechanisms, not an installation, but the mechanisms were not loose in a room. Naval Ordnance and Gunnery, the Navy’s own training text, lists the main battery fire-control system unit by unit, and the list is short. It runs, numbered: “Main directors—two Mark 38”, “Range keepers—two Mark 8 (Mods. 9 or 11)”, “Stable elements—two Mark 41 or 43 stable verticals”, and “Range finders—one in each Mark 38 director and one in each turret.” Two of everything, because a battleship that has lost a director is still expected to shoot.
The same chapter says which ships: the system it describes is the one “used to control the 16-inch battery on newly constructed battleships”, whose main battery “consists of nine guns (45 cal. on some, 50 cal. on others) mounted in three triple-gun, centerline turrets, two forward and one aft.” That parenthesis is the whole reason the range table on this page changed. Forty-five calibres is the North Carolina and South Dakota classes; fifty is the Iowa class, and fifty is the gun whose table the cam here is now cut from.
The two mechanisms this page lets you turn are defined in the same book, in the service’s own words rather than this page’s. Of the component solver: “The most common application in range keepers is the resolution of own ship, target and wind motions into line and cross components with respect to the line of sight to the target.” Of the integrators: “Basically, they are all multiplying devices”, and the ones “employed to keep range are of the disk type, which is commonly used to multiply a rate by time.”
How the sum is arranged
The two ships' vectors are resolved against the line of sight, and then simply added. The patent says it plainly: the sum of the components of the vectors DA and EB along the line of sight give the rate of change of range
, while the components along the line normal to the line of sight will give the deflection rate
. That is two component solvers and two differentials, and it is the entire geometry of the problem.
Then the range itself. The machine has no memory in the sense a computer does, no cell you can write a range into and read back; what it has instead is a shaft whose angle IS the range, held there because it turned at the right speed for the right length of time. That angle is state, and it is stored the way a physical thing stores anything, by being in a position. The patent's own description of the part that does it: a driving element rotatable at a constant speed and a driven element whose speed is varied in accordance with the range rate
, and the mechanism is of the ball and disk type
. The constant speed comes from a spring motor. Time enters this computer as a rotation.
The range table was a physical object
The ballistics here are not computed from a formula. They are read from a published range table for the 16-inch 50-calibre Mark 7 gun, the gun the Iowa class carried, which is how the machine did it too: the table was cut as a cam, a shaped piece of metal whose profile was the curve, and a follower riding that profile interpolated between the printed rows as a matter of geometry rather than arithmetic.
That is also where this page's honesty starts, because the table it uses has an error in it.
What is real here, and what is not
The dispersion is a control, not a measurement of any ship
The pattern size on the salvo panel is a number you set, and no figure here is claimed as the real dispersion of the Iowa class or any other. Published dispersion figures exist, they vary by gun, powder lot, turret and year, and the argument the panel makes does not need one: it needs you to see what happens to the hits when the pattern changes and the aim does not. The deviations within a salvo come off a fixed table so the same salvo lands in the same places every time, which a model built on random numbers could not be tested against.
Range only, and no wild shots
A shell forty yards to the left of a battleship misses it, and this model does not know about left. Everything on the salvo panel is measured along the line of fire, which is the half the rangekeeper solves and the half the range table is about. The manual's definitions of the mean point of impact and of a straddle both say “excluding wild shots”, and that exclusion is doing real work in gunnery analysis; there are no wild shots here at all, so the patterns are tidier than a real salvo.
Thirty feet of target, and where that number is not from
The hitting space depends on how tall the target is, and thirty feet is a round figure standing in for the part of a ship a shell can strike on the way down. It is not a measurement of a named vessel. The number that matters is not that one: it is the angle of fall, which is read off the range table on this page, and which is what makes the target twelve yards deep at 36,000 yards and a hundred and fourteen at 10,000.
The range table is sampled from a secondary source
The nine rows come from navweaps.com, which names its own source as BuOrd Ordnance Pamphlet No. 770, the 16-inch range table for 2,500 feet per second initial velocity, October 1941. That primary has been read. It is a scan of thirty-three pages with no text layer, the table itself running from page 16 to page 32 in hundred-yard steps, and it was read as an image rather than through character recognition, because recognised digits in a range table are the one thing that must not be trusted. At 10,000 yards the pamphlet prints five degrees and 02.9 minutes, with 302.9 in the minutes column beside it. That is 5.048 degrees. navweaps publishes 5.05, so the two agree, and the test derives that conversion rather than restating it. Two more rows were read the same way and are recorded in the data file with the page they sit on.
What the primary has not been used for is the rows themselves: these nine are still navweaps' sampling every five thousand yards, not a transcription of a table printed every hundred. The data file says so in as many words, so that this page's claim to have read the primary cannot be taken for more than it is. This table also clears checks the 16-inch 45-calibre table that used to be here failed: all twenty-seven printed metric conversions are right, and elevation, angle of fall, time of flight and maximum ordinate all rise with range. The old one printed a maximum ordinate as 7,670 feet and 234 metres, when 7,670 feet is 2,338 metres.
The parts are exact, and real mechanisms were not
Every mechanism on this page does its arithmetic perfectly. A real one had backlash in its gears, friction in its bearings and a manufacturing tolerance on every dimension, and the accumulated slop was part of why gunnery needed spotting corrections after each salvo rather than trusting the solution. What is modelled here is what each part is for, not how well an actual one did it.
The slew rates are chosen, not measured
The follow-ups move at a few hundred yards a second and a dozen degrees a second, and those numbers were picked so the settling is visible on a screen rather than taken from any mechanism. What is not a choice is that the rates are finite, which is the entire reason the assembly settles rather than jumping. The test suite winds them up to the point where the shafts catch up instantly and requires the machine to reach the same answer as an ordinary fixed-point solver, which is how the composition is checked.
The interpolation is straight, and a cam's was not
Between two printed rows this page moves in a straight line. A machined cam followed a smooth curve fitted to the whole table, so it disagreed with a straight line everywhere except at the rows themselves. The difference is small next to everything else here and it is real, so it is written down rather than implied away.
This is the geometry, not the whole machine
A real rangekeeper solved a considerably larger problem than this page does: own ship's roll and pitch, the parallax between turrets that are a hundred feet apart, wind, drift from the shell's own spin, powder temperature, barrel wear, and the corrections a spotter called back after each salvo. None of that is here. What is here is the part that makes it a computer rather than a calculator, which is the loop, and that part is complete and checked.
It is a weapons system, and this page is about the computing
What is modelled here is mechanical analogue computation: an implicit equation solved by a mechanism built so that its own geometry is the answer. The machine existed to lay guns on ships, and saying otherwise would be a lie of omission. It is a decision on the record that the subject is worth explaining as computing history, and the context is not softened here or elsewhere on the page.
Two methods, because a fixed point is easy to get wrong
The assembly is one way to find where the two statements agree: run the mechanism and let it settle. The test suite finds it a second way, by bisection on the difference between the two sides, sharing no code with the first, and requires the two answers to agree. A single method checked against itself proves nothing, and this is the sort of arithmetic where a plausible wrong answer looks exactly like a right one.
How this machine was built, what it is measured against, and the day it was cut to the wrong ship’s gun: the engineering notebook.
Sources
- Thomas Wildenberg, The Revolutionary Rangekeeper, Naval History 29:5, October 2015 — for when this machine went to sea: “Ford’s latest rangekeeper, the Mark 8, which first saw service in the Portland-class cruisers”. Those two ships were completed in November 1932 and commissioned in February 1933, which is where the date at the top of this page comes from. It was 1935 until 2026-08-31, and 1935 was not the date of anything here.
- Hannibal C. Ford, Range-keeper, US Patent 1,370,204, assigned to the Ford Instrument Company, filed 4 December 1917 and granted 1 March 1921. The primary document for the machine itself: the continuous solution, the ball-and-disk integrating device that generates range from range rate, the component solver as a pin driving two slides at right angles, and the differentials that sum them. Every mechanism on this page is described in it, and the quotations are checked against an archived copy.
- Naval Ordnance and Gunnery, NAVPERS 16116, Bureau of Naval Personnel, 1944. The Navy’s own training text, and the source for what this machine sat inside. Chapter 18 lists the main battery fire-control system unit by unit; chapter 14 defines the component solver and the disk-type integrator in the service’s own words. Fetched 2026-08-16.
- navweaps.com, 16"/50 Mark 7, for the range table the cam is cut from: elevation, range, angle of fall, time of flight and striking velocity for the AP Mark 8 shell at 2,500 feet per second. A secondary source, which names BuOrd OP 770 as its own. Fetched 2026-08-16.
- BuOrd Ordnance Pamphlet No. 770, 16-Inch Range Table, 2,500 F.S. Initial Velocity to 42,345 Yards, October 1941. The primary, and it has been read. Thirty-three pages, scanned, with no text layer, so it was read as images rather than through character recognition: recognised digits in a range table are the one thing that must not be trusted. The rows checked by eye against it are listed in the data file with the page each one sits on. The pamphlet is also on Gene Slover's US Navy Pages, which serves a Cloudflare challenge to anything automated, so this mirror is what was actually fetched.
- Logical Art, the studio this belongs to.