Click a battery (its disc, gun or label) to see its range, accuracy and current target.
| Zero hour | 05:30, Easter Monday, 9 April 1917 |
| Front | 7,000 yd (about 6 km), centred opposite Vimy |
| Ridge | About 7 km long; Hill 145 is the highest point, 60 m above the Douai Plain |
| Attackers (S→N) | 1st, 2nd (with British 13th Bde), 3rd, 4th Canadian Divisions |
| Defenders (S→N) | 1st Bavarian Reserve, 79th Reserve, 16th Bavarian Divisions |
| Field artillery | 480 × 18-pdr, 138 × 4.5-in howitzers, plus 245 siege guns and heavy mortars |
| Shells allotted | 1.6 million |
| Barrage | Lifted 100 yd every 3 minutes |
| Counter-battery | 125,900 rounds in the final week; 83% of German gun positions hit (sources say "harassed" or "silenced") |
| Subways | 13, 265 m to 1.7 km long, about 10 m deep |
| Canadian losses, 9–12 Apr | 10,602 (3,598 killed, 7,004 wounded) |
How this map was built (read this)
Real: village positions (GeoNames and Wikipedia coordinates), Hill 145's position and height, the objective line names and what each one covered, the division order, the barrage rate, the artillery totals, the gun ranges, and the event times shown.
Traced: the Canadian and German front lines come from the map "The Canadian and German Front Line Positions as at April 9th 1917". The objective lines, the Pimple operation, the corps boundaries, and the brigade assembly positions (division sectors are split midway between neighbouring brigades) come from "Map Illustrating Plan of Attack on Vimy Ridge, 9th April 1917". Both maps are reproduced on the RCR's Vimy pilgrimage pages. Each map was matched to modern coordinates using 8–9 villages; the leftover error is about 60–210 m, rising to about 340 m at the north edge. The brigade battalion lists come from the Canadian Corps dispositions table for zero hour. As a check, the traced Black Line runs 710–960 m beyond the German front (the sources say about 700 yd), and the Red Line passes 240 m from Hill 145.
Terrain: the contour lines (10 m interval, 50–145 m) were extracted from the front-line map. 31 contour lines take their height straight from 48 printed height labels. 71 more take theirs from the lines either side, rounded to the 10 m interval. Heights between contours are filled in smoothly from the lines alone. Height at Farbus comes out at 92 m; today's town hall stands at 90 m. Beyond the map's edges there is no contour data, so the edge heights are extended and the ground is shown faded. Map placement uses the 145 m summit (the Vimy Memorial) and five small villages; the big villages of Vimy and Neuville were left out because they don't pin to a single point. On the 1917 plan the Black Line runs 800–1,190 m beyond the German front, deeper than the \"about 700 yards\" in written summaries.
Schematic: the German support trenches and communication trenches, the battery positions, the German battery count, the 4th Division's delay curve and the infantry spacing. The barrage timing is worked out from 100 yd per 3 minutes, not taken from the barrage table.
Phase 2: the advance times on the Red Line (06:45, 06:45, 07:30) come from the Corps dispositions table; the reported times come from the sources listed. The barrage rate after the Black Line is assumed to be 100 yd per 3 minutes, as in Phase 1. The shape of the 4th Division's line (12th Brigade slow, 87th Battalion held near its start line, 102nd Battalion forward), the machine-gun positions and the number of tracers are illustrative. The unshelled trench is placed about 70 m inside the German front line in front of the 87th, from "barely a hundred metres in front of them".
Phase 3: advance times (Blue 09:35 and 09:55, Brown 13:05 and 12:26) are from the 1917 dispositions tables; arrival times are from the 3rd and 27th Battalion war diaries and Nicholson. The Red, Blue and Brown Lines are matched point for point along their length, and the infantry and barrage move between them at 100 yd per 3 minutes (assumed). The 90-minute stand on the Blue Line is sourced. The three German batteries on the Farbus slope are illustrative positions; a battery counts as captured when the blue area reaches it.
Phase 4: the 85th Battalion's time (18:00) is from its battalion history; another account says early afternoon. The shape of its advance to the summit, the 10 April advance and the Pimple advance (100 yd per 3 minutes, assumed) are illustrative; the times, units, prisoners and losses are sourced. The short-round figures use this map's dispersion model.
Casualties: the totals in the right-hand pane are the published figures for 9–12 April (Canadian Corps 10,602, of whom 3,598 killed; German about 20,000, an estimate, with about 4,000 prisoners), spread over time by an illustrative curve. On the map, a share of the men drawn is hit (45% of the 4th Division's men shown, 25–33% of the others), and each becomes an × where he fell. Overrun Germans become × or disappear (captured or fled). Which men are hit, and when, is illustrative.
Companies and platoons: zoom in below about 1.6 km to see each assault battalion split into 4 companies (A–D) of 4 platoons, about 30 men each going forward (dots). The layout is a standard one, not taken from each battalion's orders: A and B companies side by side in front with two platoons in the 1st wave and two in the 2nd, C and D behind as the 3rd and 4th waves, at 0, 45, 110 and 150 m. Battalions are known to have varied this (the 54th Battalion's war diary records four waves on a 500-yard frontage).
Before and after the battle: "The preparation" (20 March – 8 April), "The night of 8–9 April" and "13–14 April" use dates and figures from the sources listed. Which Allied batteries stayed hidden until 2 April, the day each German battery falls silent, the subway walking times between 22:00 and 04:00, the Canadian line of 14 April and the German third position (Oppy–Méricourt line and Avion Switch) are illustrative or approximate. Use ◀ Prev / Next ▶, the dots under the timeline, the ← → keys or a click on any event to slide between the parts of a phase.
Ground, craters and subways: close-ups use the 1917 contour heights at true scale (the overhead map exaggerates height three times). Ground east of the German front line before the advance is cratered rim to rim; the 19 mine crater groups along no man's land are placed illustratively along its middle. The 13 subways (265 m to 1.7 km) are drawn from the Canadian front line back; the Grange, Goodman, Douai, Zivy, Bentata and Barricade subways are placed by sector from the sources, the rest are unnamed and positions are approximate. German trenches in close-ups are shown damaged by the bombardment; Canadian forward companies wait in shallow jumping-off trenches in no man's land.
Close-up scenes: "Follow a man" plays as cinematic scenes in a second 3D view with its own lighting, soft contact shadows (screen-space ambient occlusion), depth of field, haze and a film grade. Distant shell bursts and smoke there are atmosphere, not modelled fire.
Soldiers: the bodies are the MakeHuman base mesh with its skeleton and skin weights (CC0, makehumancommunity.org). Uniforms, helmets, webbing, rifles and poses are modelled for this map from the 1914–18 patterns.
Textures: all surfaces (mud, chalk, burlap, wool serge, webbing, leather, timber, painted steel, concrete, water) are generated in the browser from noise patterns; no photographs are used.
Follow a man: the men, their units, ranks, home towns and actions are from the sources listed with each. Times and places are approximate where the sources give none; each card says so. The figures, ground and props around them are reconstructions.
Close-ups (guided camera): the trench section, its 6 sentries, its 40 men in the dugout, the 8 m dugout depth, the gun-pit layout and the gun crews are illustrative. The damage rules are a model: a sentry is hit by a burst within half the shell's lethal radius; a 4.5-inch shell or heavier landing within 3 m of a dugout entrance blocks it; a gun is knocked out only by a shell inside its pit (within 5 m); near misses mostly hit the sandbags. The featured barrage rate uses the sourced density of one field gun per 10 m of front at the 18-pounder's sustained 4 rounds per minute.
Accuracy model: range error σ = obs × (15 + r × (0.004 + 0.009 × (r/Rmax)²)); hit % = chance a round lands within 50 m of the aim point. This is a teaching model, not firing-table data. Terrain height is exaggerated 3×; guns are drawn larger when the camera is far away and at true size up close.