loading...
Kick-off.
running...
The science
Puck on ice. A sliding puck feels kinetic friction F = mu m g, so it decelerates at a constant a = mu g (mu = 0.03: 0.29 m/s2) v(t) = v0 - mu g t d = v0^2 / (2 mu g) At shot speed the air matters too: dv/dt = -mu g - k v^2, k = rho Cd A / (2 m) with rho = 1.2 kg/m3, Cd about 0.45, A = 0.0254 m x 0.0762 m (the puck seen on its edge) and m = 0.170 kg, so k = 0.0034 1/m. At 40 m/s the drag deceleration (5.4 m/s2) is far larger than friction. The closed form v(t) = sqrt(mu g / k) tan(atan(v0 sqrt(k / mu g)) - sqrt(k mu g) t) is drawn as the theory line in the last graph.
Boards. A bounce changes the velocity component normal to the board by the restitution e, v_n' = -e v_n; tangential loss: dv_t = min(|v_t|, mu_t (1 + e) |v_n|) The boards are a rounded rectangle (60 m x 26 m, corner radius 8.5 m), so in the corners the normal rotates continuously. Nets have posts of 3 cm radius and soft netting; the goal is scored when the puck centre crosses the goal line inside the 1.83 m mouth.
Shots and recoil. The stick and the skater push the puck with an internal impulse, so the total momentum of skater plus puck is unchanged: m v_puck + M V_skater = 0 A 0.17 kg puck at 30 m/s has 5.1 kg m/s, so a 90 kg skater recoils at 0.057 m/s. Passes use the same mechanics with a lead on the receiver, T = distance / pass speed.
Goalie. The goalie body is a circle of radius 0.62 m that cuts the angle by standing on an arc in front of the net towards the (delayed) puck. A contact is a collision with restitution e_pad; a slow rebound is frozen and passed out. Rebound speed after a head-on hit is e times the approach speed.
Honest simplifications. The puck stays on the ice (no lift, no flipped shots, no crossbar), has no spin, and the ice friction is a single constant. Players are discs with an acceleration limit and rule-of-thumb decisions, not a hockey AI: no offside, icing, penalties or line changes. The match clock is real time. Wall friction is a Coulomb impulse model. Numbers are illustrative, not league data.
Checks run in the page. (1) slide distance against v0^2/(2 mu g); (2) kinetic-energy ratio after a board bounce against (v_t^2 + e^2 v_n^2)/v^2; (3) tangential speed kept on a frictionless board; (4) exact momentum balance of a shot; (5) air-drag-only decay against v0/(1 + k v0 t); (6) head-on pad rebound against e v.