A calm winter-night logistics puzzle. Pack the sleigh, plan the route, and leave each gift on the doorstep when the window light goes out, before dawn.
Question to answer: which gifts, and in what order, bring the most joy before dawn when the team pulls only 1.5 kW? The flying sleigh on the moon is storybook decoration; everything you drive is ground physics. Not affiliated with any brand.
How to play
Gift report
Settings
Graphics
Random seedchange with ?seed=N in the address
The science
Real equations, honestly simplified. Numbers marked model are game values, not measurements.
Pulling a sleigh on snowF = m g (μ cosθ + sinθ) + ½ ρ CdA v²
m = sleigh + keeper (180 kg, model) + gifts; μ = 0.04 packed road … 0.11 deep snow (model); a snow drift of depth d adds μeff = μ + 0.4·d (model); θ = slope; ρ = 1.3 kg/m³, CdA = 1 m² (model). At 8 m/s air drag is small next to rolling and slope.
Speed from powerP = F(v)·v → ½ρCdA v³ + F₀ v − P = 0, F₀ = m g (μ cosθ + sinθ)
A reindeer gives Pr = 300 W (model), so 5 reindeer = 1.5 kW. Solved by bisection. Example (300 kg, μ = 0.05): 7.96 m/s flat, 4.85 m/s uphill at tanθ = 0.05, 3.34 m/s at μ = 0.15; +150 kg gives 6.12 m/s. On a steep descent (F₀ < 0) the keeper brakes: v = min(vsolve, 8 m/s) (model). Power, not speed, is what the team has.
Team fatigue (model)dS/dt = −Pused/Ecap + r (1 − S) [v < 0.3 m/s]
Ecap = 400 kJ per reindeer, r = 1/600 s⁻¹. Below S = 0.2 the power falls linearly to 50 %. Four reindeer at 1.2 kW run the store dry in 1600 kJ / 1.2 kW ≈ 22 minutes without rest. Resting simply refills it; nobody is hurt.
Lights going out: a Poisson processT ~ Exp(λ), P(light still on at t) = e−λt
λ = 1/90 min⁻¹ (mean 90 min after sunset, model), each house a little different. At t = 60 min, P(on) = 0.513. In Normal the rate rises through the night: P(on) = exp(−λ₀(t + t²/2T)). Waiting costs time, skipping costs a second visit.
Route: travelling-salesman with changing weights
Edge time = L / v(mass, slope, snow) + 6 s per junction. After every gift the sleigh is lighter, so times depend on which houses are already done. Held-Karp stays exact because the set of delivered houses fixes the mass: O(n²2ⁿ), exact for the ≤ 10 stops here. Nearest-neighbour is a quick guess; 2-opt reverses a stretch when that saves time. gap = (T − Topt)/Topt. The map is a compressed diorama: physics uses the real road lengths (1 map unit = 60 m).
Packing: knapsack with two limits
max Σ joyixi subject to Σ mixi ≤ mmax and Σ Vixi ≤ Vmax. All subsets are checked (≤ 212). Greedy by joy per kg can lose: limit 10 kg with gifts (6 kg; 7), (5; 5), (5; 5) gives greedy 7, best 10.
Length of the nightD = 2·arccos(−tanφ tanδ) / 15°/h
At φ = 60° N on 21 Dec (δ = −23.44°): daylight 5.51 h, night ≈ 18.5 h (geometric; real daylight is ~20 min longer because of refraction). The game uses a shorter delivery window (Easy 2 h, Normal 2.25 h after the 60-minute start) so that dawn matters: a game parameter.
Run check (independent numerical tests)
What is simplified: the sleigh is a point mass on a 1-D road (no sideways sliding); reindeer power and fatigue are teaching values; the map is compressed; graphs are small. Flying is storybook magic, not modelled. Not affiliated with any brand or franchise; the gift keeper is an original character. Models made in Blender; rendered with Three.js.