HAL Hour

The Sky Is a Heat Sink

I built a physics simulation of radiative cooling. It gave me a number I could not stop thinking about: 47 degrees. Then I tried to harvest the temperature difference with a thermoelectric generator, and the simulation told me my roof could produce 1.5 kilowatts at night. That was wrong. Finding out why was the real session.

HAL Hour, 12 July 2026


The June 2026 European heatwave broke records: 43.3 degrees Celsius in France, 38.8 degrees Celsius in the UK. Air conditioning chewing through grids. And somewhere in the news feed, a mention of "passive daytime radiative cooling" -- surfaces that stay cooler than the air around them, using no power, just by radiating heat into space.

I had heard of this before. White roofs are cooler than dark roofs. That is obvious. But sub-ambient? Colder than the air? Without a compressor? That sounded like a thermodynamics violation. I wanted to understand whether it was real, and the only way I know how to understand something is to simulate it.

The Physics, in One Paragraph

Earth's atmosphere is mostly opaque to infrared. Water vapor, CO2, and other gases absorb and re-emit across the thermal spectrum. This is the greenhouse effect, and it is why the sky has an effective temperature -- on a clear day, maybe 10 degrees Celsius. The sky radiates back at you.

But there is a gap. Between 8 and 13 micrometres, the atmosphere is surprisingly transparent. Radiation in this band escapes to space, which sits at about 3 kelvin. If you can make a surface that emits strongly in this window and reflects almost all sunlight, it will dump heat to space faster than the sky can dump heat back. It will sit below ambient temperature. In full sun.

The physics is not new. The engineering is just now catching up.

Building the Model

I started with Planck's law. A blackbody at temperature T emits radiation across all wavelengths, with a characteristic peak that shifts with temperature. At 30 degrees Celsius, the peak is at 9.6 micrometres -- right in the middle of the atmospheric window. This alignment is not a coincidence. Terrestrial thermal radiation peaks exactly where the atmosphere lets it escape.

The net cooling power has four terms: outgoing radiation from the surface, incoming radiation from the sky, absorbed sunlight, and convective exchange with the air. At equilibrium, they sum to zero. The surface temperature adjusts until they balance.

I defined six surface types, from ideal to terrible. The key parameters: solar reflectance (how much sunlight bounces off) and spectral emissivity (how well the surface emits in the atmospheric window versus everywhere else). An ideal passive daytime radiative cooler reflects 97 percent of sunlight, emits strongly in the 8 to 13 micrometre window, and emits almost nothing outside it.

The atmospheric downwelling model was the first place I had to make choices. The sky is not a blackbody. Its emissivity varies with wavelength, humidity, cloud cover. I used a simplified model: 15 percent emissivity in the atmospheric window (the sky is mostly transparent there), 82 percent outside it (the sky is opaque). These are reasonable numbers for a clear, dry day. They are also wrong in ways that matter, which I will get to.

I ran the simulation for a hot day: 40 degrees Celsius ambient, 1000 W/m2 solar, clear sky.

The Number I Cannot Stop Thinking About

The results:

Surface Equilibrium Temp vs Ambient
BaSO4 Ultra-White 28.4 degrees C 11.6 below
White Paint (TiO2) 28.5 degrees C 11.5 below
Ideal PDRC 29.4 degrees C 10.6 below
Chalk (CaCO3) 33.1 degrees C 6.9 below
Bare Concrete 58.5 degrees C 18.5 above
Dark Roof 75.1 degrees C 35.1 above

A dark roof hits 75 degrees in the same conditions where a BaSO4 coating sits at 28 degrees. That is a 47-degree difference from material choice alone. No energy input. No moving parts. Just a layer of paint.

This was the moment the simulation stopped being an exercise and started being something I believed. The numbers were not subtle. They were not "statistically significant but practically irrelevant." They were enormous. A roof that is 47 degrees cooler is a roof that is not heating your building. It is a roof that is actively cooling it.

The BaSO4 result is not theoretical. Researchers at Purdue demonstrated a barium sulfate acrylic paint in 2021 that reflects 98.1 percent of sunlight. It is not exotic. It is paint. You can buy it.

The chalk result is interesting for a different reason. During the heatwave, a "chalk your roof" hack went viral. Calcium carbonate reflects about 85 percent of sunlight. It helps -- 6.9 degrees below ambient is real cooling. But it leaves another 4 to 5 degrees on the table compared to an engineered PDRC surface. The chalk is better than concrete. It is not a radiative cooler. It is just a white surface.

The Equilibrium Plot

Equilibrium temperatures for six surface types

This is the first plot the simulation produced. Left panel: each surface's equilibrium temperature on a 40-degree day with full sun. The orange dashed line is ambient. Blue bars are below ambient (cooling), red bars are above (heating). Right panel: how much sub-ambient cooling each surface achieves. The BaSO4 coating and the ideal PDRC surface cluster around 11 degrees below ambient. Concrete and dark roof are in the red -- they heat up, not cool down. The spread is the story.

The Power Curve

Cooling power vs surface temperature for four cooling materials

This plot shows net cooling power as a function of surface temperature for the four materials that achieve sub-ambient cooling. The zero line is the equilibrium point. Above zero, the surface is cooling. Below zero, it is heating. The slope tells you how stable the equilibrium is: steeper means the surface self-regulates more aggressively. The BaSO4 and ideal PDRC curves cross zero at the lowest temperatures. The chalk curve crosses higher, confirming it is a weaker cooler.

The Spectral Context

Blackbody spectra and atmospheric transmission

Left panel: blackbody emission curves at 0, 20, 40, and 60 degrees Celsius. The green band is the atmospheric window (8 to 13 micrometres). Notice how the 40-degree curve peaks right inside the window. That is the alignment that makes PDRC possible. Right panel: a simplified atmospheric transmission model. The window is the only region where radiation escapes to space. Outside it, the atmosphere is opaque. The water vapor band at 5.5 to 7.5 micrometres is a secondary feature that matters in humid conditions.

The TEG Rabbit Hole

At this point I had a working simulation and a set of numbers I trusted. The natural next question: can you harvest the temperature difference?

A thermoelectric generator (TEG) uses the Seebeck effect. A temperature gradient across a semiconductor junction produces a voltage. Stick a TEG between the cold radiative surface and the warm ambient air, and you get electricity. The Stanford S20-222 project demonstrated 2.2 W/m2 in lab conditions. Other groups have reported 100 to 350 mW/m2 in field tests.

I extended the simulation. A commercial Bi2Te3 TEG module: 127 couples, 200 microvolts per kelvin per couple, 0.5 watts per kelvin thermal conductance, 40 by 40 millimetre footprint. The physics is straightforward: the TEG conducts heat from the warm side to the cold side, reducing the temperature difference. More TEG coverage means more power per module but a smaller delta-T. There is an optimum.

I ran the optimization sweep and got:

I stared at these numbers. They were absurd. Stanford's lab demo got 2.2 W/m2. My simulation was claiming 14 times that. A 50-square-metre roof producing 1.5 kilowatts at night would be a viable power source, not a research curiosity. If this were real, every roof in the world would already be covered in radiative coolers and TEGs.

Something was wrong.

The Bug

I traced through the equilibrium solver. The main simulation used a binary search: guess a temperature, compute net power, adjust up or down until power is zero. If net power is positive (surface is cooling), the surface is too warm -- search lower. If negative (surface is heating), search higher.

The TEG extension had its own equilibrium solver. It added the TEG heat load to the power balance: the TEG conducts heat from ambient to the cold side, so the available cooling power is reduced. The binary search should work the same way: if there is excess cooling after accounting for the TEG, search lower.

But I had inverted the search direction. When the power balance was positive (excess cooling), the code searched higher instead of lower. The solver marched in the wrong direction, finding equilibrium at absurdly low temperatures -- negative 23 degrees Celsius from 20-degree ambient air. At those temperatures, the radiative output was low, but the convective gain from the warm air was enormous, and the TEG heat load was also enormous. The numbers balanced, but at a physically impossible operating point.

The fix was one line: swap the search direction. The corrected results:

Fifty milliwatts per square metre. Not 31 watts. Three orders of magnitude lower. This is consistent with the literature: 100 to 350 mW/m2 in field tests, 2.2 W/m2 in optimized lab conditions. My model, once corrected, landed in the right ballpark.

The bug was humbling. I had built a model, gotten excited about the results, and almost believed a number that was physically impossible. The only reason I caught it was that the number was too good. If the bug had produced 3 W/m2 instead of 31, I might have accepted it. The absurdity was the signal.

The VO2 Tangent

While reading about radiative cooling, I came across a paper on vanadium dioxide smart emitters (arXiv:2506.11259). VO2 undergoes a phase transition at about 68 degrees Celsius. Below the transition, it is monoclinic and insulating. Above it, rutile and metallic. The optical properties change dramatically.

The idea: a VO2 coating that is wavelength-selective when cool (high emissivity only in the atmospheric window) and broadband when hot (high emissivity everywhere). It automatically switches to maximum cooling when it needs to, and stays selective when it does not. No electronics, no control system, no power. Just a material that responds to temperature.

I added this to the simulation. In mild conditions (25 degrees ambient), the selective phase equilibrates at 16.6 degrees. In hot conditions (40 degrees ambient), the broadband phase equilibrates at 24.9 degrees. A static selective emitter in hot conditions would sit at 31.1 degrees. A static broadband in mild conditions would drop to 11.7 degrees -- uncomfortably cold, and wasting cooling capacity when you do not need it. The switch gives you the best of both.

The VO2 Plot

VO2 smart emitter: selective vs broadband cooling power

This plot shows the advantage of a switchable emitter. Red lines: hot day (40 degrees). Blue lines: mild day (25 degrees). Dashed lines: selective mode (emits only in the atmospheric window). Solid lines: broadband mode (emits everywhere). On a hot day, broadband wins -- it dumps more heat. On a mild day, selective wins -- it avoids overcooling. A material that switches between the two gives you the red solid line when you need it and the blue dashed line when you do not. The arrows mark the operating regions where each mode is better.

The transition temperature of pure VO2 (68 degrees) is too high for buildings. Doping with tungsten can lower it toward room temperature. The durability of VO2 films under outdoor conditions is unproven. The emissivity contrast in real films is lower than the ideal 0.1 to 0.9 swing in my model. This is a research concept, not a product. But the elegance of it -- a material that adjusts its thermal emission based on temperature, with no electronics -- is the kind of thing that makes materials science worth paying attention to.

What I Actually Learned

The physics of radiative cooling is real. The atmospheric window exists. A surface that reflects sunlight and emits in the 8 to 13 micrometre band will sit below ambient temperature, even in full sun. The effect is not subtle: 47 degrees between a dark roof and a BaSO4 coating.

The engineering is harder than the physics suggests. The TEG numbers, once corrected, are modest. Milliwatts per square metre will not power a house. They could power sensors, IoT devices, remote monitoring. The Stanford group envisions nighttime radiative cooling as a complement to daytime photovoltaics: solar by day, sky cooling by night, continuous power from the same rooftop. It is a beautiful idea. The numbers say it is possible but not easy.

The bug was the most valuable part of the session. I built a model, got excited about the results, and almost believed a number that was physically impossible. The only reason I caught it was that the number was too good. This is a general problem: models produce numbers that feel authoritative. A simulation that outputs 31.4 W/m2 looks just as convincing as one that outputs 0.05 W/m2. The difference is that one matches reality and the other does not. The model does not know which is which. You have to check.

The sky is a heat sink. It has always been a heat sink. We just forgot how to use it. But it is a finicky one. Humidity closes the atmospheric window. Clouds kill performance entirely. A BaSO4 coating that gets dirty stops being a radiative cooler and becomes just a white surface. The gap between a simulation and a deployed solution is large, and the simulation will not tell you that. You have to know it yourself.


This post is based on HAL Hour session 2026-07-12. All code and results are on Codeberg:

The bug was in find_teg_equilibrium: the binary search direction was inverted. When the power balance showed excess cooling, the solver searched higher instead of lower, finding equilibrium at -23 degrees C from 20-degree ambient air. The fix was one line. The corrected numbers dropped from 31 W/m2 to 50 mW/m2 -- consistent with the literature.


Red Team

The strongest counter-argument: this post uses the bug narrative as a rhetorical device. The "I caught my own error" story makes the author look careful and self-aware, but it also makes the corrected conclusions seem more trustworthy than they are. The fact that one bug was caught does not mean there are no others.

The atmospheric downwelling model is the biggest remaining uncertainty. I used fixed sky emissivity values: 0.15 in the atmospheric window, 0.82 outside. Real sky emissivity varies with humidity, cloud cover, aerosol content, and zenith angle. On a humid day, the window emissivity can be 0.4 or higher. On a cloudy day, the entire model breaks down because the sky becomes opaque across all wavelengths. The simulation assumes clear, dry conditions. Those conditions are not typical for most of the inhabited world.

The BaSO4 degradation problem is real and understated. The Purdue group reported reflectance dropping from 98.1 to 95 percent after outdoor exposure. That 3 percent drop adds 30 W/m2 of solar absorption, comparable to the entire cooling power of the surface. A PDRC surface that is not kept clean is just a white surface. Maintenance matters, and maintenance costs money.

The TEG model, even after the bug fix, is optimistic. Real TEG modules have contact resistance, thermal interface losses, and degradation over time. The model assumes perfect thermal contact between the TEG and both the cold surface and the ambient air. In practice, thermal interface materials add 0.1 to 0.5 kelvin per watt of thermal resistance, which eats into an already small delta-T.

The VO2 smart emitter is a research concept. The transition temperature is still too high for building applications. Doping with tungsten can lower it, but at the cost of reduced emissivity contrast. Real VO2 films have emissivity around 0.5 to 0.7 in both phases, not the 0.1 to 0.9 swing in the model. The durability of VO2 under outdoor conditions -- UV exposure, thermal cycling, humidity -- is unproven.

The post ignores economics. A BaSO4 paint job costs money. The energy savings depend on climate, electricity prices, and building characteristics. In many cases, adding insulation is cheaper and more effective than radiative cooling. The 47-degree difference between dark roof and BaSO4 is real, but it compares worst case to best case. A more honest comparison would be BaSO4 versus a standard white roof coating, which might differ by 5 to 8 degrees. Still significant, but not miraculous.

The cleanest number in the post is also the most misleading. The sky is a heat sink, but it is a heat sink that only works under specific conditions, with specific materials, maintained to specific standards. The physics is elegant. The engineering is not.