The Stefan-Boltzmann law says that the power a surface radiates grows with the fourth power of its absolute temperature: P = e σ A T⁴, where σ = 5.670 374 419 × 10⁻⁸ W·m⁻²·K⁻⁴, A is the area, T is in kelvin and e is the emissivity (1 for an ideal blackbody). Double the temperature and the radiated power rises sixteen times. Josef Stefan found the T⁴ rule from measurements in 1879, and his former student Ludwig Boltzmann derived it from thermodynamics in 1884. The same equation sizes the Sun, sets Earth's temperature, and explains why a thermal camera can read a shiny pipe 40 degrees too cold.
This post goes one level deeper than our tour of famous equations that changed the world. It sits next to the laws of thermodynamics explained, which covers why temperature has an absolute zero and why heat flows from hot to cold, and the electromagnetic spectrum explained, which covers the infrared, visible and ultraviolet bands that blackbody radiation spreads across.
A note on numbers. Constants come from NIST's CODATA 2022 tables and the 2019 SI facts from the BIPM SI Brochure and NIST. Solar and Earth values come from NASA's fact sheets and NASA's Earth energy budget feature. Textbook equations and example inputs come from OpenStax, and the history from MacTutor. Inputs we chose ourselves are labelled illustrative, and every number was rerun with the Python script in the walkthrough.
Key takeaways
- The law: a blackbody radiates σT⁴ watts per square metre. A real surface radiates e σ A T⁴ watts, with emissivity e between 0 and 1.
- The constant: σ = 5.670 374 419... × 10⁻⁸ W·m⁻²·K⁻⁴. NIST lists it as exact. It is built from the Planck constant, the Boltzmann constant and the speed of light, all three fixed exactly by the SI since 20 May 2019.
- Kelvin only: T⁴ means the zero point matters. Put 22 °C into the formula instead of 295 K and the answer is wrong by a factor of more than a thousand.
- Net exchange is what you feel: an object also absorbs radiation from its surroundings. The net rate is e σ A (T_surroundings⁴ − T_object⁴). A person in a 22 °C room loses about 100 W this way.
- Wien's law gives the colour: the peak wavelength of a blackbody is λ_max = b/T, with b = 2.897 771 955 × 10⁻³ m·K. The Sun at 5,772 K peaks near 502 nm. A person at 306 K peaks near 9.5 µm in the infrared.
- The Sun checks out: NASA's luminosity and radius give an effective temperature of 5,772 K, matching NASA's listed value to the kelvin.
- Earth needs the greenhouse effect: with 1,361 W/m² of sunlight and an albedo near 0.29, a bare radiating Earth would sit near 255 K (about −18 °C). The measured average surface temperature is about 288 K (15 °C).
- Emissivity is the thermal camera's weak point: human skin has an infrared emissivity of about 0.97, so cameras read people well. Polished metal has a low emissivity, and a camera set for 0.95 will read it far too cold: tens of degrees low in our illustrative example.
What does the Stefan-Boltzmann law say?
Everything above absolute zero emits electromagnetic radiation. The warmer the object, the more it emits, and the shorter the wavelength where most of that emission sits. The Stefan-Boltzmann law is the quantitative statement of the first part. In its simplest form, for an ideal emitter, it gives the power per unit area, which astronomers call flux and engineers call radiant exitance:
F = σ T⁴ (W/m², ideal blackbody)
P = e σ A T⁴ (W, a real surface of area A and emissivity e)
OpenStax's University Physics writes the second form exactly this way, with T "in kelvins" and e the emissivity, and OpenStax Astronomy writes the first as F = σT⁴ for the energy flux from a blackbody. The fourth power is the striking part. NASA's Earth energy budget feature puts it in one line: if temperature doubles, radiated energy increases by a factor of 16. A 10 percent rise in absolute temperature raises the radiated power by 46 percent, because 1.1⁴ = 1.464.
That steep dependence is why hot things dominate radiative heat transfer so completely. A stove element at 900 K radiates (900/300)⁴ = 81 times as much per square metre as the same element at room temperature.
What is the value of the Stefan-Boltzmann constant?
NIST's CODATA 2022 table lists:
| Quantity | Symbol | Value (CODATA 2022) | Status |
|---|---|---|---|
| Stefan-Boltzmann constant | σ | 5.670 374 419... × 10⁻⁸ W·m⁻²·K⁻⁴ | exact |
| Wien wavelength displacement law constant | b | 2.897 771 955... × 10⁻³ m·K | exact |
| Wien frequency displacement law constant | b′ | 5.878 925 757... × 10¹⁰ Hz·K⁻¹ | exact |
| Planck constant | h | 6.626 070 15 × 10⁻³⁴ J·Hz⁻¹ | exact, defining constant |
| Boltzmann constant | k | 1.380 649 × 10⁻²³ J·K⁻¹ | exact, defining constant |
| Speed of light in vacuum | c | 299 792 458 m·s⁻¹ | exact, defining constant |
The trailing dots in NIST's listing mean the decimal goes on. σ is not a defining constant itself, but it is a fixed combination of three that are:
σ = 2 π⁵ k⁴ / (15 h³ c²)
Because h, k and c are all exact, σ is exact too, with an infinitely long decimal that NIST truncates. You can check this yourself: the walkthrough script computes σ from h, k and c and prints 5.670374419 × 10⁻⁸, matching NIST to every digit shown.
Why did σ become exact in 2019?
The revised SI came into force on 20 May 2019, a date the BIPM SI Brochure attaches to each of the new unit definitions. From that date the kelvin is defined by fixing the Boltzmann constant. NIST's kelvin page quotes the definition: the magnitude of the kelvin is set by fixing k at exactly 1.380649 × 10⁻²³ J/K. The kilogram is fixed through h, and the metre has been fixed through c since 1983.
Before 2019, h and k were measured quantities with uncertainties, so σ inherited an uncertainty too. The IAU's 2015 paper on nominal solar values, for example, used the CODATA 2014 figure σ = (5.670367 ± 0.000013) × 10⁻⁸ W·m⁻²·K⁻⁴. After 2019, the uncertainty moved elsewhere. σ is now exact by definition, and the hard experimental question became how well a given laboratory can realise a temperature in kelvin. That is the job of thermometry, and for hot objects it is radiation thermometry, which we come back to below.
Who discovered the Stefan-Boltzmann law?
| Year | Event | Source |
|---|---|---|
| 1862 | Gustav Kirchhoff coins the term "blackbody" | OpenStax University Physics Vol. 3, 6.1 |
| 1865 | John Tyndall publishes measurements of radiation from an electrically heated platinum wire | MacTutor, Josef Stefan |
| 1879 | Josef Stefan, using Tyndall's data, proposes that total radiation is proportional to T⁴ and uses it to estimate the Sun's surface temperature | MacTutor, Josef Stefan |
| 1884 | Ludwig Boltzmann, Stefan's former doctoral student, derives the T⁴ law from thermodynamics | MacTutor, Ludwig Boltzmann and Josef Stefan |
| 1900 | Max Planck solves the blackbody spectrum problem with energy quanta | OpenStax University Physics Vol. 3, 6.1 |
| 20 May 2019 | Revised SI enters into force; h, k and c fixed exactly, so σ becomes exact | BIPM SI Brochure; NIST |
Stefan's reasoning is worth retelling because it shows how close to the data the law began. Tyndall reported that the radiation from his wire rose from 10.4 to 122 units between weak red heat (about 525 °C) and white heat (about 1,200 °C), a factor of about 11.7. Stefan noticed that the ratio of the absolute temperatures raised to the fourth power gives almost the same number: (1,473 / 798)⁴ = 11.6. MacTutor quotes his 1879 paper on exactly that observation. Boltzmann, who had completed his doctorate under Stefan in 1866 and then worked as his assistant, showed five years later that the T⁴ dependence follows from treating radiation in a cavity as a thermodynamic system with pressure.
One historical caution. Tyndall's platinum wire was not a blackbody, and the agreement with T⁴ was partly fortunate. The law is exact for an ideal blackbody, and real surfaces depart from it in ways that emissivity tries to capture.
What is a blackbody?
A blackbody is an idealised object that absorbs all radiation falling on it, at every wavelength and every angle, and reflects none. Because it is a perfect absorber, thermodynamics requires that it also be a perfect emitter: at a given temperature no surface can emit more at any wavelength than a blackbody does. Its emission depends only on its temperature, not on what it is made of.
The physical model OpenStax uses is a cavity: a closed box with a small hole, whose walls are held at temperature T. Radiation that enters the hole bounces around inside until it is absorbed, so the hole looks perfectly black. Radiation that leaks out of the hole has come into equilibrium with the walls, so its spectrum is the blackbody spectrum. National metrology laboratories still use heated cavities this way. NIST's radiation thermometry programme disseminates its temperature scale through radiation thermometers, tungsten strip lamps and blackbodies, all traceable to the SI.
Nature provides some very good approximations. A star's photosphere is a fair one, as worked example 1 shows. The cosmic microwave background, the leftover radiation from the early universe, is another: NASA's WMAP pages give its temperature as about 2.725 K, varying across the sky only in the fourth decimal place.
How does Planck's law describe the spectrum?
The Stefan-Boltzmann law tells you the total. Planck's law tells you how that total is spread across wavelengths. The spectral radiance of a blackbody at temperature T is:
B_λ(T) = (2 h c² / λ⁵) × 1 / (exp(h c / (λ k T)) − 1)
Before Planck, the classical Rayleigh-Jeans model treated radiation in the cavity as waves that could exchange any amount of energy with the walls. It matched the data at long wavelengths but predicted that intensity would grow without limit at short wavelengths. OpenStax notes this failure came to be called the ultraviolet catastrophe. Planck solved the problem in 1900 by assuming that the oscillators in the walls could only exchange energy in discrete amounts proportional to frequency, E = hν. That assumption, the first appearance of the Planck constant, cuts off the short wavelength end and makes the total finite.
Integrate Planck's law over all wavelengths and over the hemisphere a flat surface radiates into, and the result is exactly σT⁴ with σ = 2π⁵k⁴ / (15h³c²). That is why the Stefan-Boltzmann constant is not an independent measured number any more. It is what Planck's law adds up to.
What does Wien's displacement law say?
Differentiate Planck's law with respect to wavelength, set the result to zero, and you get the wavelength where the curve peaks:
λ_max = b / T, b = 2.897 771 955 × 10⁻³ m·K
This is Wien's displacement law: hotter objects peak at shorter wavelengths. OpenStax Astronomy gives a convenient approximation, λ_max ≈ 3 × 10⁶ / T with λ in nanometres and T in kelvin. That rounding is fine for estimates but gives the Sun's peak as 520 nm, where the exact constant and the Sun's 5,772 K give 502 nm. If you are checking a calculation, use b to four significant figures at least.
The walkthrough script confirms Wien's law numerically: it evaluates Planck's law on a fine wavelength grid at 5,772 K and finds the maximum at 502.0 nm, the same as b/T.
Peak wavelength or peak frequency: why two different "peaks"?
NIST lists two Wien constants, and the difference catches people out. If you plot the spectrum per unit wavelength, it peaks at b/T. If you plot the same spectrum per unit frequency, it peaks at ν_max = b′T, with b′ = 5.878 925 757 × 10¹⁰ Hz/K. For the Sun that is 3.39 × 10¹⁴ Hz, which corresponds to a wavelength of c/ν = 883 nm, in the near infrared and nowhere near 502 nm.
Neither answer is wrong. As NASA's Imagine the Universe primer puts it, the spectrum can be expressed in terms of energy, wavelength or frequency, and the three are related precisely. The "peak" of a distribution depends on which of those variables you spread it over, because equal steps in frequency are not equal steps in wavelength. When you see a quoted peak wavelength, check which form was used. The same issue explains a figure in NASA's energy budget feature: it gives the peak of Earth's surface radiation as around 12.5 µm, while Wien's wavelength law at 288 K gives 10.1 µm. The two are describing the same broad thermal infrared emission in different ways, and the curve is so broad that "peak" is a soft concept for it anyway.
What is emissivity, and why do real surfaces differ from a blackbody?
Emissivity e is the ratio of what a real surface emits to what a blackbody at the same temperature would emit. It runs from 0 (a perfect reflector or perfectly transparent object, which emits nothing) to 1 (a blackbody). OpenStax gives tungsten light bulb filaments an emissivity of about 0.5 and human skin 0.97 in the infrared. For carbon black, the pigment in printer toner, the two OpenStax books differ: University Physics gives about 0.95 and College Physics 2e gives about 0.99.
Three properties make emissivity harder than a single number suggests.
- It depends on wavelength. A surface can be dark in one band and bright in another. Human skin varies hugely in visible colour but, as OpenStax puts it, we are all nearly black in the infrared. Matte white paint has a low absorptivity for sunlight but a high emissivity in the thermal infrared, which is why NASA's small spacecraft guide lists it for radiators.
- It depends on the surface, not just the material. Polished, oxidised, anodised and painted versions of the same metal behave very differently. Polishing lowers emissivity; oxidation and roughness raise it.
- It depends on angle and temperature. Emissivity measured straight on can differ from the value at a grazing angle, and many materials change as they heat.
Kirchhoff's law of thermal radiation ties emission to absorption: in thermal equilibrium, a surface's emissivity at a given wavelength equals its absorptivity at that wavelength. Good absorbers are good emitters. That is why the darker pavement in OpenStax's photograph melts more ice in sunlight, and why a polished thermos liner both reflects incoming heat and emits little of its own.
A body whose emissivity is the same at every wavelength is called a grey body. Its spectrum has the blackbody shape, scaled down by e. The P = e σ A T⁴ form of the law assumes grey behaviour. Real surfaces are not perfectly grey, so the formula with a single e is an approximation, and its accuracy depends on picking the e that applies to the wavelengths that matter.
How do absorptivity and emissivity work together in spacecraft design?
NASA's small spacecraft state of the art report writes a spacecraft's heat balance as incoming solar heating, reflected sunlight from a planet (albedo) and the planet's own infrared emission, plus internal electronics power, balanced against heat radiated away and heat stored. The incoming solar terms depend on a surface's solar absorptivity; the outgoing term depends on its infrared emissivity and on the temperature difference between the radiator and its heat sink, "typically and most effectively to deep space".
That separation is the engineer's lever. Matte black paint has high solar absorptivity and high infrared emissivity, so it absorbs sunlight and radiates heat. Matte white paint has low solar absorptivity and high infrared emissivity, so it stays cool in sunlight while still radiating well. NASA's report lists both, alongside second surface silvered tapes and finishes such as polishing and anodising, as the common choices on small spacecraft.
Worked example 1: the Sun's surface temperature and colour
Question. Using NASA's figures for the Sun's luminosity and radius, what is its effective surface temperature, and where does its spectrum peak?
Inputs. NASA's Sun fact sheet gives a luminosity of 382.8 × 10²⁴ J/s (3.828 × 10²⁶ W) and a volumetric mean radius of 695,700 km. Those match the IAU 2015 Resolution B3 nominal values (3.828 × 10²⁶ W and 6.957 × 10⁸ m), which the resolution paper by Prša and colleagues pairs with a nominal effective temperature of 5,772 K and a total solar irradiance of 1,361 W/m².
Step 1: surface flux. Luminosity spread over the surface of a sphere:
F = L / (4 π R²)
= 3.828 × 10²⁶ W / (4 π × (6.957 × 10⁸ m)²)
= 6.294 × 10⁷ W/m²
NASA's fact sheet lists the Sun's surface emission as 62.94 × 10⁶ J/(m²·s), the same number.
Step 2: temperature. Treat the Sun as a blackbody and invert F = σT⁴:
T = (F / σ)^(1/4)
= (6.294 × 10⁷ / 5.670 374 419 × 10⁻⁸)^(1/4)
= 5,772 K
NASA's fact sheet gives an effective temperature of 5,772 K. The match is not a coincidence: "effective temperature" is defined as the temperature of a blackbody with the same flux, so this is exactly how the number is made.
Step 3: peak wavelength.
λ_max = b / T = 2.897 772 × 10⁻³ m·K / 5,772 K = 5.020 × 10⁻⁷ m = 502 nm
That is blue green light, in the middle of the visible band. The Sun looks white rather than green because it emits strongly across the whole visible range, and our eyes add all of it together.
Step 4: the solar constant. Spread the same luminosity over a sphere one astronomical unit in radius. The SI Brochure lists 1 au = 149 597 870 700 m:
S = L / (4 π d²) = 3.828 × 10²⁶ / (4 π × (1.496 × 10¹¹)²) = 1,361 W/m²
NASA's Earth fact sheet lists solar irradiance as 1,361.0 W/m², and NASA's energy budget feature says about 1,360 W/m², measured by recent satellite missions. The luminosity, the radius, the temperature and the irradiance at Earth all hang together through one equation.
What the model leaves out. The Sun is not a perfect blackbody. Its spectrum has absorption lines, and NASA's fact sheet shows the photosphere itself ranges from about 6,600 K at the bottom to 4,400 K at the top. Effective temperature is a single number that reproduces the total power, not the temperature of any one layer.
Applying the same method to other stars
Astronomers run the method in both directions. With a measured temperature and luminosity, the Stefan-Boltzmann law gives a radius. OpenStax University Physics works an example of a white dwarf about the size of Earth with a surface temperature of about 2.5 × 10⁴ K, and shows it radiates far less than the Sun in total despite being much hotter, because its surface area is so small. OpenStax Astronomy's colour table gives a feel for the range:
| Star | Colour | Approximate temperature | Wien peak |
|---|---|---|---|
| Betelgeuse | Red | 3,000 K | 966 nm (near infrared) |
| Aldebaran | Orange | 4,000 K | 724 nm |
| Sun | Yellow white | 5,772 K (OpenStax rounds to 6,000 K) | 502 nm |
| Vega | White | 10,000 K | 290 nm (ultraviolet) |
| Spica | Blue | 25,000 K | 116 nm (far ultraviolet) |
Temperatures from OpenStax Astronomy 2e Table 17.1 and, for the Sun, NASA. Peaks computed with Wien's law.
Notice that the coolest red star peaks in the infrared and the hot blue ones peak in the ultraviolet. Their visible colour comes from the slope of the curve across the visible band, not from where the peak sits. OpenStax notes the hottest stars exceed 40,000 K and the coolest are about 2,000 K.
Worked example 2: Earth's effective temperature and the greenhouse effect
Question. If Earth simply absorbed sunlight and radiated it back to space as a blackbody, what would its temperature be? Why is the real surface warmer?
Inputs. Solar irradiance S = 1,361 W/m² and Bond albedo A = 0.294, both from NASA's Earth fact sheet. NASA's energy budget feature gives an albedo of about 29 percent, which makes almost no difference.
Step 1: absorbed sunlight per square metre of Earth. Earth intercepts sunlight over a disc of area πR² but radiates from a sphere of area 4πR². Averaged over the whole surface, day and night, the incoming flux is S/4:
S / 4 = 1,361 / 4 = 340 W/m²
absorbed = (1 − A) × S / 4 = 0.706 × 340.25 = 240 W/m²
NASA's feature gives the same 340 W/m² top of atmosphere average and says about 29 percent is reflected by clouds, particles and bright surfaces, 23 percent absorbed by the atmosphere and 48 percent by the surface.
Step 2: balance. In radiative equilibrium, outgoing equals incoming:
σ T⁴ = (1 − A) S / 4
T = ((1 − A) S / (4σ))^(1/4) = (240.2 / 5.670 × 10⁻⁸)^(1/4) = 255 K ≈ −18 °C
NASA's Earth fact sheet lists a "black-body temperature" of 254.0 K. Our calculation from the fact sheet's own albedo and irradiance gives 255.1 K; the one kelvin difference comes from the exact inputs and method NASA used, which the fact sheet does not show. Either way, the answer is well below freezing.
Step 3: compare with reality. NASA's Earth fact sheet gives an average surface temperature of 288 K (15 °C), and the energy budget feature also says about 15 °C. The surface is roughly 33 K warmer than the bare radiative balance predicts.
Step 4: where the extra warmth comes from. Water vapour, carbon dioxide and other gases absorb much of the thermal infrared that the surface emits, and radiate energy back down. NASA's feature tracks the fluxes as percentages of incoming sunlight: the surface radiates heat upward equal to about 117 percent of incoming sunlight, and receives about 100 percent back from the atmosphere. The planet still balances at the top of the atmosphere, where the atmosphere radiates the equivalent of 59 percent of incoming sunlight to space and the surface only 12 percent directly. Earth's effective radiating level is high and cold; the surface underneath is warmer.
A useful check: a 288 K blackbody surface emits σT⁴ = 390 W/m², far more than the 240 W/m² Earth absorbs from the Sun. Without the downward infrared from the atmosphere, the surface could not sustain that emission.
What if albedo were zero? With A = 0, the same formula gives 278 K. With A = 0.294, it gives 255 K. Albedo alone swings the answer by more than 20 K, which is why ice, clouds and aerosols matter so much in climate models.
| Quantity | Value | Source |
|---|---|---|
| Solar irradiance at 1 au | 1,361 W/m² | NASA Earth fact sheet |
| Global average incoming at top of atmosphere | about 340 W/m² | NASA energy budget feature |
| Reflected to space | about 29 percent | NASA energy budget feature (fact sheet Bond albedo 0.294) |
| Absorbed by atmosphere | about 23 percent | NASA energy budget feature |
| Absorbed by surface | about 48 percent | NASA energy budget feature |
| Effective (blackbody) temperature | 254 to 255 K | NASA fact sheet; our calculation |
| Average surface temperature | 288 K (15 °C) | NASA Earth fact sheet |
| Surface emission at 288 K | 390 W/m² | Our calculation, σT⁴ |
Worked example 3: a person, a hot component and a thermal camera
3a. How much heat does a person lose by radiation?
Question. OpenStax's example: an unclothed person with skin at 33.0 °C stands in a dark room at 22.0 °C. Surface area 1.50 m², skin emissivity 0.97. What is the net radiative heat transfer?
Step 1: convert to kelvin. T_skin = 306 K, T_room = 295 K. (OpenStax rounds to whole kelvin; using 306.15 and 295.15 changes the answer by about 1 percent.)
Step 2: net exchange. The person emits e σ A T_skin⁴ and absorbs e σ A T_room⁴ from the walls. The net rate is:
P_net = e σ A (T_room⁴ − T_skin⁴)
= 0.97 × 5.670 × 10⁻⁸ × 1.50 × (295⁴ − 306⁴)
= −98.5 W
The negative sign means a net loss. Close to 100 W is a large continuous loss for a resting person, which is why a cold room feels cold even with no draught: your skin is radiating into walls that send less back. Clothing helps mainly because the outer surface of clothing is cooler than skin.
What if you forgot to convert? Put 22 and 33 in directly and the formula returns −0.08 W, more than a thousand times too small. This is the most common single mistake with the law.
Why gross emission misleads. The skin alone emits e σ A T⁴ = 0.97 × 5.670 × 10⁻⁸ × 1.50 × 306⁴ ≈ 723 W. That number is real but meaningless on its own, because the room returns about 625 W. Only the difference leaves the body.
3b. A hot component on a circuit board
Question (illustrative). A heat sink plate has 0.02 m² of exposed surface at 70 °C inside an enclosure at 25 °C. How much heat leaves it by radiation, and how much does the surface finish matter?
Inputs. The area, temperatures and emissivities here are our illustrative choices: 0.85 for a dark anodised or painted finish, 0.05 for bright polished metal.
T_hs = 343.15 K, T_room = 298.15 K
P_net = e σ A (T_hs⁴ − T_room⁴)
e = 0.85 → 5.8 W
e = 0.05 → 0.34 W
Two lessons follow. First, the finish changes radiative cooling by a factor of 17. Second, at these modest temperatures radiation is a small part of the job. A processor dissipating tens or hundreds of watts relies on convection, usually forced by fans or by liquid loops, to carry the heat away. Radiation becomes the main route only at high temperatures, where T⁴ takes over, or in a vacuum, where there is no air to convect.
That second case is the spacecraft radiator. An illustrative 1 m² radiator at 290 K with an emissivity of 0.85, facing deep space near 3 K, rejects:
P = 0.85 × 5.670 × 10⁻⁸ × 1.0 × (290⁴ − 3⁴) ≈ 341 W
The 3⁴ term is negligible, but in Earth orbit sunlight, albedo and planetary infrared all add heat back in, which is why NASA's heat balance equation includes them and why radiators are pointed away from the Sun and coated for low solar absorptivity.
3c. Why do thermal cameras need an emissivity setting?
A thermal camera does not measure temperature. It measures infrared radiance arriving at its detector, and converts that to temperature using an assumed emissivity. Two things arrive from a real surface: radiation the surface emits, which scales with its emissivity, and radiation from the surroundings that the surface reflects, which scales with (1 − e).
Here is a simplified model using total radiation and the T⁴ law. Real cameras work in a limited infrared band and use the band integral of Planck's law, so their numbers differ, but the direction and size of the error are similar.
signal ∝ e_true T_obj⁴ + (1 − e_true) T_refl⁴
camera solves: e_set T_read⁴ + (1 − e_set) T_refl⁴ = signal
Question (illustrative). A pipe at a true 70.0 °C sits in a 25 °C room. The camera's emissivity is set to 0.95. What does it read for three different surface finishes?
| True surface emissivity | Example surface (illustrative) | Camera reads at e = 0.95 | Error |
|---|---|---|---|
| 0.95 | Painted or taped surface | 70.0 °C | none |
| 0.50 | Oxidised or dull metal | 51.0 °C | 19 °C low |
| 0.10 | Polished metal | 30.8 °C | 39 °C low |
The polished pipe reads barely warmer than the room, because most of what reaches the camera is reflected room radiation. This is also why a shiny surface can show reflections of a warm person standing nearby.
The practical fixes all come from the law:
- Set the emissivity for the material, from the camera maker's table or a measured value.
- Make the surface black where you can. A patch of high emissivity tape or paint brings e near 0.95 so the camera's assumption is right. Wait until the patch reaches the surface temperature.
- Set the reflected temperature. Most cameras ask for it. In a room it is usually close to the air temperature; outdoors, the sky can be far colder.
- Measure square on. Emissivity often falls at grazing angles.
- Compare with a contact reading at one point, then use the camera for the pattern.
Skin is the friendly case. With e ≈ 0.97 in the infrared, OpenStax notes, all of us are nearly black at those wavelengths whatever our visible skin colour. That high emissivity, plus a skin temperature near 306 K that puts the Wien peak near 9.5 µm, is why thermal imaging finds people so easily and why thermographs are used medically and to find heat leaks in buildings, as OpenStax describes.
Table: temperature, peak wavelength and colour of common objects
Peaks are λ_max = b/T. Flux is the blackbody value σT⁴. Temperatures marked "approx" are typical round values we chose for illustration; for flames and filaments they vary with the fuel, the bulb and the operating point.
| Object | Temperature | Wien peak | Blackbody flux σT⁴ | What you see |
|---|---|---|---|---|
| Cosmic microwave background | 2.725 K | 1.06 mm | 3.1 × 10⁻⁶ W/m² | Nothing; microwave band |
| Earth, effective | 255 K | 11.4 µm | 240 W/m² | Thermal infrared only |
| Earth surface, average | 288 K | 10.1 µm | 390 W/m² | Thermal infrared only |
| Human skin | 306 K | 9.5 µm | 497 W/m² | Thermal infrared only |
| Candle flame soot (approx) | 1,850 K | 1.57 µm | 6.6 × 10⁵ W/m² | Yellow orange glow |
| Incandescent filament (approx) | 2,800 K | 1.03 µm | 3.5 × 10⁶ W/m² | Warm white; most output is infrared |
| Betelgeuse | 3,000 K | 966 nm | 4.6 × 10⁶ W/m² | Red |
| Sun | 5,772 K | 502 nm | 6.3 × 10⁷ W/m² | White |
| Vega | 10,000 K | 290 nm | 5.7 × 10⁸ W/m² | Bluish white |
| Spica | 25,000 K | 116 nm | 2.2 × 10¹⁰ W/m² | Blue |
| Hottest stars | 40,000 K | 72 nm | 1.5 × 10¹¹ W/m² | Blue |
Sources for temperatures: NASA Sun and Earth fact sheets, NASA's WMAP pages (CMB), OpenStax Astronomy 2e (stars), OpenStax University Physics (skin).
Two patterns stand out. An incandescent filament peaks in the near infrared, so most of its output is heat rather than light, which is the physics behind its poor efficiency. And going from a 300 K room to the Sun's 5,772 K multiplies flux by about 137,000, which is (5,772/300)⁴.
The colour words follow the visible slope of each curve, not just the peak. Cool objects emit almost nothing visible; Tyndall's "weak red heat" in Stefan's data was about 525 °C, or 798 K. As an object warms further, it glows dull red, then orange, then yellow white. OpenStax's own illustration of this is the incandescent bulb: a hot filament glows red, then covers the whole visible band as heating continues.
Where does the Stefan-Boltzmann law show up in engineering?
Infrared thermometers and thermal cameras
Non-contact thermometers and thermal cameras are calibrated against blackbody sources whose temperature is known. NIST describes its own radiation thermometry scale as disseminated through calibrated radiation thermometers, tungsten strip lamps and blackbodies, compared internationally under the Consultative Committee for Thermometry. Every instrument downstream inherits that chain, plus the emissivity assumption made at the point of measurement.
Data centre and electronics cooling
At the temperatures inside servers, radiation is a secondary path, as worked example 3b shows. Its main roles are in thermal imaging used to find hot spots on racks and power distribution, in the choice of surface finishes for passive heat sinks and enclosures, and in rooftop equipment that radiates to a cold night sky. The fourth power still matters for safety: a failing connection that runs hot radiates and glows long before it fails outright, and thermal surveys rely on that.
Spacecraft radiators
In vacuum, radiation is the only way to reject heat to the environment. NASA's small spacecraft thermal guide frames thermal control as balancing absorbed sunlight, planetary albedo and infrared, and internal electronics against radiated heat and stored heat, with coatings chosen for their solar absorptivity and infrared emissivity. Radiator sizing is the Stefan-Boltzmann law with the emissivity and the sink temperature filled in.
Climate and remote sensing
Satellite instruments measure the outgoing thermal infrared and reflected sunlight that make up Earth's energy budget. NASA's feature on the budget is built from those measurements. The T⁴ law also sets the strongest feedback in the climate system: as NASA puts it, if Earth's temperature rises, the planet rapidly emits an increasing amount of heat to space.
Astronomy
Effective temperatures, stellar radii, the habitable zone around a star and the equilibrium temperature of an exoplanet all come from the same two equations, σT⁴ and λ_max = b/T, used the way worked examples 1 and 2 use them.
Which equation should you use?
| You want | Use | Watch out for |
|---|---|---|
| Total power from a hot surface | P = e σ A T⁴ | Kelvin; emissivity for the relevant band |
| Net heat exchange with surroundings | P = e σ A (T₁⁴ − T₂⁴) | Assumes large surroundings; view factors for close surfaces |
| Where the spectrum peaks | λ_max = b/T | Per wavelength versus per frequency |
| Power in a specific band (a camera's) | Integrate Planck's law over the band | T⁴ is not valid for a partial band |
| Temperature of a star from its power and size | T = (L / (4π R² σ))^(1/4) | It is an effective temperature |
| Temperature of a planet | T = ((1 − A) S / (4σ))^(1/4) | Ignores the greenhouse effect |
Walkthrough: reproduce every number in Python
Every figure in this post comes from a short script that uses only the Python standard library. Running it yourself is the quickest way to catch a typo, ours or yours.
Step 1: create a clean environment
mkdir blackbody-check && cd blackbody-check
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip freeze > requirements.txt
Step 2: write the script
# blackbody.py
import math
# CODATA 2022 (physics.nist.gov/cuu). h, k and c are exact in the SI.
h = 6.62607015e-34 # J s
k = 1.380649e-23 # J/K
c = 299792458.0 # m/s
sigma = 2 * math.pi**5 * k**4 / (15 * h**3 * c**2)
b_wien = 2.897771955e-3 # m K
b_freq = 5.878925757e10 # Hz/K
print(f"sigma from h, k, c = {sigma:.9e} W m^-2 K^-4")
def flux(T, e=1.0):
"""Radiant exitance in W/m^2."""
return e * sigma * T**4
def peak_nm(T):
return b_wien / T * 1e9
def planck(lam, T):
"""Spectral radiance B_lambda in W sr^-1 m^-3."""
return 2 * h * c**2 / lam**5 / math.expm1(h * c / (lam * k * T))
# Check Wien numerically for 5772 K
T = 5772.0
lams = [i * 1e-10 for i in range(1000, 30000)]
lam_peak = max(lams, key=lambda l: planck(l, T))
print(f"numeric Planck peak at {T} K: {lam_peak*1e9:.1f} nm, Wien: {peak_nm(T):.1f} nm")
# Worked example 1: the Sun (NASA Sun fact sheet values)
L = 382.8e24 # W
R = 695.7e6 # m
F_surf = L / (4 * math.pi * R**2)
T_sun = (F_surf / sigma) ** 0.25
print(f"Sun: surface flux {F_surf:.4e} W/m^2, T = {T_sun:.1f} K, peak {peak_nm(T_sun):.0f} nm")
nu_pk = b_freq * T_sun
print(f"Sun frequency peak {nu_pk:.4e} Hz, i.e. c/nu = {c/nu_pk*1e9:.0f} nm")
au = 149597870700.0
S = L / (4 * math.pi * au**2)
print(f"irradiance at 1 au: {S:.1f} W/m^2")
# Worked example 2: Earth's effective temperature
for S0, A in ((1361.0, 0.294), (1361.0, 0.29), (1361.0, 0.0)):
Te = (S0 * (1 - A) / (4 * sigma)) ** 0.25
print(f"S={S0}, albedo={A}: absorbed {S0*(1-A)/4:.1f} W/m^2, "
f"Te = {Te:.1f} K = {Te-273.15:.1f} C")
print(f"surface 288 K emits {flux(288.0):.1f} W/m^2")
# Worked example 3a: person (OpenStax inputs)
P = sigma * 0.97 * 1.50 * (295.0**4 - 306.0**4)
print(f"person net radiative exchange: {P:.1f} W")
print(f"same with Celsius by mistake: {sigma * 0.97 * 1.50 * (22.0**4 - 33.0**4):.4f} W")
# Worked example 3b: illustrative heat sink and radiator
for e in (0.85, 0.05):
print(f"heat sink e={e}: net {e*sigma*0.02*(343.15**4 - 298.15**4):.2f} W")
print(f"radiator: {0.85*sigma*1.0*(290**4 - 3**4):.0f} W")
# Worked example 3c: camera emissivity error (total-radiation approximation)
def apparent(T_true, e_true, e_set, T_refl):
W = e_true * T_true**4 + (1 - e_true) * T_refl**4
return ((W - (1 - e_set) * T_refl**4) / e_set) ** 0.25
for e_true in (0.95, 0.5, 0.1):
Ta = apparent(343.15, e_true, 0.95, 298.15)
print(f"true 70.0 C, e_true={e_true}, camera e=0.95: reads {Ta-273.15:.1f} C")
Step 3: run it and compare
python blackbody.py
Expected output:
sigma from h, k, c = 5.670374419e-08 W m^-2 K^-4
numeric Planck peak at 5772.0 K: 502.0 nm, Wien: 502.0 nm
Sun: surface flux 6.2939e+07 W/m^2, T = 5772.0 K, peak 502 nm
Sun frequency peak 3.3933e+14 Hz, i.e. c/nu = 883 nm
irradiance at 1 au: 1361.2 W/m^2
S=1361.0, albedo=0.294: absorbed 240.2 W/m^2, Te = 255.1 K = -18.0 C
S=1361.0, albedo=0.29: absorbed 241.6 W/m^2, Te = 255.5 K = -17.7 C
S=1361.0, albedo=0.0: absorbed 340.2 W/m^2, Te = 278.3 K = 5.2 C
surface 288 K emits 390.1 W/m^2
person net radiative exchange: -98.5 W
same with Celsius by mistake: -0.0785 W
heat sink e=0.85: net 5.75 W
heat sink e=0.05: net 0.34 W
radiator: 341 W
true 70.0 C, e_true=0.95, camera e=0.95: reads 70.0 C
true 70.0 C, e_true=0.5, camera e=0.95: reads 51.0 C
true 70.0 C, e_true=0.1, camera e=0.95: reads 30.8 C
If σ does not come out as 5.670374419 × 10⁻⁸, check that you used the exact h, k and c values and not rounded ones. If the Sun comes out a few kelvin off, check that the radius is in metres, not kilometres.
Step 4: if you use a library's constants, check its edition
Scientific Python libraries ship tables of physical constants. They are convenient, but each release bundles a particular CODATA edition, and some constants change between editions. σ, b, h, k and c are exact and will not change, but measured constants such as the gravitational constant do. Print the value and its source before mixing a library's constants with numbers from a NIST table:
python -m pip install scipy
python -m pip freeze > requirements.txt
python -c "import scipy, scipy.constants as sc; print(scipy.__version__); print(sc.physical_constants['Stefan-Boltzmann constant'])"
Step 5: keep the script's dependencies healthy
Once a calculation grows a plotting library, a notebook server or an image processing stack for thermal camera files, it carries dozens of open source packages. Scan the folder with the Safeguard CLI and read the JSON results it writes under ./output:
safeguard scan --dir .
ls output/
Commit requirements.txt so a colleague who reruns your numbers installs the same versions.
Common mistakes
- Using Celsius instead of kelvin. T⁴ needs absolute temperature. 22 °C is 295.15 K. Using Celsius makes the person example in 3a a thousand times too small and gives a negative "temperature" for anything below freezing.
- Converting to kelvin after the subtraction. A temperature difference of 11 °C is also 11 K, but T₁⁴ − T₂⁴ is not (T₁ − T₂)⁴. Convert each temperature first, then raise to the fourth power, then subtract.
- Ignoring emissivity. Treating a polished metal surface as a blackbody overestimates its radiative loss by an order of magnitude, as the heat sink example shows. Treating it as e = 0.95 in a thermal camera underestimates its temperature by tens of degrees.
- Forgetting net exchange with the surroundings. σT⁴ is gross emission. For anything in a room, the walls send radiation back. Use e σ A (T₁⁴ − T₂⁴).
- Using the wrong area. A sphere emits from 4πR² but intercepts a beam over πR². Mixing them up is the classic error in the Earth energy balance and gives a temperature off by a factor of √2.
- Applying T⁴ to a band. A thermal camera or a pyrometer sees only part of the spectrum. Power in a band does not scale exactly as T⁴; integrate Planck's law over the band instead.
- Mixing the two Wien peaks. b/T is the peak per unit wavelength. b′T is the peak per unit frequency. They correspond to different wavelengths.
- Rounding σ to 5.7 × 10⁻⁸ and then quoting four figures. That introduces about a 0.5 percent error in power and about 0.1 percent in temperature. Fine for estimates, wrong for a calibration.
- Assuming a single emissivity is constant. Emissivity varies with wavelength, angle, temperature, oxidation and surface finish. Use a value measured for the condition you are in.
- Taking effective temperatures as physical temperatures. The Sun's 5,772 K and Earth's 255 K are the temperatures of blackbodies with the same output. Neither is the temperature of a particular layer you could stand in.
FAQ
What is the Stefan-Boltzmann law in simple terms?
Hot objects glow, and they glow much harder as they get hotter. The power radiated per square metre of a perfect emitter is σT⁴, so doubling the absolute temperature multiplies the radiated power by sixteen. A real surface radiates a fraction e of that, where e is its emissivity.
What is the formula for the Stefan-Boltzmann law?
P = e σ A T⁴, with P in watts, e the emissivity (0 to 1), σ = 5.670 374 419 × 10⁻⁸ W·m⁻²·K⁻⁴, A the area in square metres and T the absolute temperature in kelvin. For net exchange with surroundings at T₂, use P = e σ A (T₁⁴ − T₂⁴).
What is the value of the Stefan-Boltzmann constant?
NIST's CODATA 2022 value is 5.670 374 419... × 10⁻⁸ W·m⁻²·K⁻⁴, listed as exact. It equals 2π⁵k⁴ / (15h³c²), and since the 2019 SI redefinition h, k and c are all exact.
Who discovered the Stefan-Boltzmann law?
Josef Stefan proposed the T⁴ relationship in 1879 from experimental data, including Tyndall's measurements on a heated platinum wire. Ludwig Boltzmann, his former student, derived it from thermodynamics in 1884. Planck's 1900 radiation law later showed where the constant comes from.
Why is temperature to the fourth power?
In a cavity, the number of ways radiation can be arranged grows with the cube of temperature (more short wavelength modes become accessible), and the typical energy per photon grows linearly with temperature. Three powers times one gives four. Boltzmann reached the same result from thermodynamics, treating radiation in a cavity as a gas that exerts pressure; Planck's law later supplied the constant.
What is Wien's displacement law?
The peak wavelength of a blackbody's spectrum is λ_max = b/T, with b = 2.897 771 955 × 10⁻³ m·K. A 5,772 K star peaks near 502 nm; a 300 K object peaks near 9.7 µm.
What is emissivity, and what is the emissivity of human skin?
Emissivity is the fraction of blackbody radiation a real surface emits at the same temperature, from 0 to 1. OpenStax gives human skin 0.97 in the infrared, tungsten filaments about 0.5 and carbon black 0.95 to 0.99.
Why does a thermal camera read shiny metal as cold?
A shiny surface has low emissivity, so it emits little and reflects a lot of the surrounding radiation. If the camera assumes a high emissivity, it interprets the weak signal as a low temperature. Set the right emissivity, or cover a spot with high emissivity tape.
Why is Earth warmer than its blackbody temperature?
A bare radiating Earth with its albedo would sit near 255 K. Greenhouse gases absorb much of the surface's infrared and radiate energy back down; NASA's energy budget tracks the downward flux as about 100 percent of incoming sunlight. The measured average surface temperature is about 288 K.
Is the Sun a perfect blackbody?
No, but it is close enough for the Stefan-Boltzmann law to give its effective temperature of 5,772 K from its luminosity and radius. Its spectrum has absorption lines, and its photosphere spans several thousand kelvin from bottom to top.
The software around the measurement: an honest bridge
Safeguard does not do physics. Our models are single purpose security models, and nothing in this post was calculated by them; the numbers come from published constants and the Python script above. Safeguard also does not analyse hardware, calibrate instruments, scan firmware or test thermal designs. The link is narrower. Thermal cameras, infrared thermometers, building monitoring systems and data centre environmental sensors run firmware and companion software, and the tools engineers use to analyse their output, such as image processing libraries, notebook environments and dashboards, are built from open source components. Those components need the same dependency hygiene as any other application.
Software supply chain hygiene still matters here because a thermal survey tool or a lab's analysis notebook is usually a thin layer of your own code on top of open source libraries, and every rebuilt workstation or container pulls those dependencies again. Camera firmware and vendor apps are outside what you build, but the scripts, dashboards and images you maintain around them are yours to keep patched, and that is the only part of this topic where Safeguard applies.
Fix it without waiting for upstream
Whatever the vulnerability, most of the risk sits in two gaps. The first is the time between a fix being published and that fix actually running in your production builds. The second, and worse, is the time before any fix exists at all, while a maintainer works out a patch and a release schedule. Waiting through both gaps is a habit, not a requirement. Safeguard gives teams three ways to close them.
1. Autonomous remediation: pull requests, not tickets
When a fixed version exists, Safeguard's Griffin models open a tested, policy gated pull request that moves the affected dependency to the safe version. You can run it on one repository or in bulk across every project that carries the vulnerable version. Remediation covers eight categories, including dependencies, licenses, security posture and findings. Reachability analysis ranks the vulnerable code paths your application actually calls first, so the first pull requests you merge are the ones that matter most. Autonomous remediation ships switched off, with every category set to Manual, so your team decides how much runs on its own and what still needs a human approval.
2. Gold Open Source: the safe version in seconds, free
gold.safeguard.sh is free and needs no login. Search any CVE or package to see affected and fixed versions, CVSS, EPSS, CISA KEV status and a recommended safe version, or use the "Am I affected?" checker. The same data is available through a free read API, README status badges and RSS threat feeds. The safeguard-sh/gold-scan-action GitHub Action can fail a build on a known exploited vulnerability, on any known vulnerability, or never, so a version you have just removed cannot quietly come back in next week's merge.
3. Gold Registry: start from components that are already fixed
registry.safeguard.sh provides hardened, drop in replacements for upstream packages and container images. Every Gold artifact is held continuously to zero exploitable critical or high CVEs, zero malware and a completed license check, with SLSA L3 or higher provenance, a Sigstore signature and a public evidence page you can hand to an auditor. An artifact loses its Gold badge if it regresses. Teams can point their own package directory at the registry so hardened equivalents resolve without changing how developers install anything.
When upstream has no fix yet, or will not ship one, Safeguard first works to get the fix accepted upstream. If the issue is severe or upstream will not move, Safeguard builds a fork, fixes the vulnerability there and publishes a hardened Gold build, so you are not stuck on a maintainer's release schedule. You can also request a hardened, compatibility tested build of a specific package. This fork and patch flow is in early access today, so ask which packages it covers before you plan around it.
| Your situation | What to use |
|---|---|
| A fixed version exists | Autonomous remediation opens the upgrade pull request; Gold Open Source confirms the safe version |
| You need to know today whether you are affected | Gold Open Source lookup and "Am I affected?" checker, free and without login |
| You want vulnerable versions to stop shipping | The Gold scan GitHub Action in CI, plus Safeguard policies and gates |
| Upstream has no fix yet, or will not ship one | A custom Gold request; fork and patch (early access) |
| You want to start clean on new projects | Pull hardened components and images from Gold Registry |
One honest limit: when the vulnerable code lives in a vendor appliance, a hosted service or an operating system runtime you do not build yourself, the fix still has to come from that vendor or distribution. The steps above apply to the open source dependencies and container images you build and ship, which is where most teams carry the largest and least tracked share of their exposure.
See how Safeguard would help
None of these demos involve radiation or temperature calculations; they show the software side described in the bridge above.
The first demo is a real Safeguard CLI session: it installs the CLI, opens the interactive terminal and asks it to fix a lodash CVE in a repository. It reads the finding and advisory, asks before each command, edits package.json to lodash 4.17.21, runs npm install and npm test with approval, prints a summary and pushes nothing. The same flow applies to a thermal survey dashboard or a sensor monitoring web app your team maintains: scan the repository, then let the assistant propose the dependency upgrade under your approval.
Click through it at your own pace, or open it full screen.
The second demo sets up the Safeguard runner on your own machine, approves it with its device code and then scans from the terminal. That suits teams who keep analysis scripts and camera image processing tools on lab or test bench machines and want the scan to run where that code lives.
Click through it at your own pace, or open it full screen.
The third demo connects Claude to the Safeguard MCP server with OAuth and lets you choose which tools Claude can use. For an engineer who already works with Claude while writing analysis code, it brings dependency findings into the same conversation, limited to the tools you allow.
Click through it at your own pace, or open it full screen.
To try it on your own repositories, download Safeguard and follow the CLI documentation.
Quick check
An object's absolute temperature rises from 300 K to 600 K. By what factor does its radiated power increase?
By 2⁴ = 16, because radiated power scales with T⁴. Its Wien peak also halves, from about 9.7 µm to about 4.8 µm.
A star has the same radius as the Sun but twice its effective temperature. How does its luminosity compare?
L = 4πR²σT⁴, so with the same radius the luminosity rises by 2⁴ = 16 times. Its spectrum peaks at about 251 nm, in the ultraviolet.
Why does a thermal camera set to emissivity 0.95 read a polished pipe far below its true temperature?
The pipe's real emissivity is low, so it emits only a small fraction of blackbody radiation and mostly reflects the cooler room. The camera assumes 0.95 and so interprets the weak signal as a low temperature.
Sources
- NIST CODATA 2022, Stefan-Boltzmann constant
- NIST CODATA 2022, Wien wavelength displacement law constant
- NIST CODATA 2022, Wien frequency displacement law constant
- NIST CODATA 2022, Planck constant
- NIST CODATA 2022, Boltzmann constant
- NIST CODATA 2022, speed of light in vacuum
- NIST, SI redefinition: the kelvin
- NIST, Radiation Thermometry
- BIPM, The International System of Units (SI Brochure), 9th edition
- BIPM, SI Brochure 9th edition, English PDF
- NASA Science, Climate and Earth's Energy Budget
- NASA NSSDCA, Sun Fact Sheet
- NASA NSSDCA, Earth Fact Sheet
- NASA Small Spacecraft Technology State of the Art, Thermal Control
- NASA WMAP, Tests of Big Bang: The CMB
- NASA Imagine the Universe, The Electromagnetic Spectrum
- Prša et al., Nominal values for selected solar and planetary quantities: IAU 2015 Resolution B3 (arXiv:1605.09788)
- OpenStax University Physics Volume 2, 1.6 Mechanisms of Heat Transfer
- OpenStax University Physics Volume 3, 6.1 Blackbody Radiation
- OpenStax College Physics 2e, 14.7 Radiation
- OpenStax Astronomy 2e, 5.2 The Electromagnetic Spectrum
- OpenStax Astronomy 2e, 17.2 Colors of Stars
- MacTutor History of Mathematics, Josef Stefan
- MacTutor History of Mathematics, Ludwig Boltzmann
Last reviewed: 24 October 2026.