How heat spreads — from CPU cooling to climate modeling — told through a simple differential equation
Imagine a metal rod. You heat one end — over time, the heat spreads toward the cooler end. The heat equation describes exactly how this happens: temperature flows from hot to cold at a rate proportional to the temperature difference.
In this cipher, the initial temperatures along the rod encode a hidden message. Each reading at a sensor point is an ASCII code. The heat equation simulates diffusion for several steps, and you're given both the initial and diffused temperatures as a check.
A rod with 8 sensors has initial temperatures: [80, 79, 76, 76, 69, 32, 87, 79]
1D Rod: [80] [79] [76] [76] [69] [32] [87] [79] Temperatures as ASCII: 80 = 'P', 79 = 'O', 76 = 'L', 76 = 'L', 69 = 'E' 32 = ' ', 87 = 'W', 79 = 'O' Answer: POLLE WO (a fragment of "POLLEN WORD")
After 5 time steps with α=0.25, the heat has diffused, smoothing out the temperature profile.
initial_temps = [80, 79, 76, 76, 69, 32, 87, 79] # Read first N non-padding temperatures as ASCII answer = ''.join(chr(t) for t in initial_temps if 65 <= t <= 122 or t == 32) # The padding values (20-50 range) can be filtered out
| Level | What Happens | Time Estimate |
|---|---|---|
| 1-3 | Short rod, clear initial temps, obvious ASCII range | <10s |
| 4-6 | Longer rods with padding, need to filter non-ASCII | 20-60s |
| 7 | Multiple diffusion cycles, must reverse the heat equation | 2-5m |