Feedbacks and climate sensitivity
If CO₂ acted alone, doubling it would warm the planet only about 1 °C. The reason real estimates are 2–4 °C is feedbacks — the warming triggers other changes that amplify it:
Water vapour: warmer air holds more water vapour, itself a greenhouse gas → more warming.
Ice–albedo: warming melts bright ice, exposing dark ocean that absorbs more sun → more warming.
Each feedback returns a fraction f of the warming as extra warming, which triggers a bit more, and so on. The geometric sum gives an amplification factor 1/(1−f). As f climbs toward 1, sensitivity explodes — and small uncertainties in f become huge uncertainties in how hot it gets. Dial f below and watch.
begin
using PlutoUI, WasmMakie
endtotal feedback strength f =
let
# the no-feedback warming for a CO2 doubling, then sweep the feedback strength and
# plot the AMPLIFIED warming dT = dT_base / (1 - f)
dT_base = 1.1
npts = 91
fx = Vector{Float64}(undef, npts)
ty = Vector{Float64}(undef, npts)
for k in 1:npts
f = 0.01 * Float64(k - 1) # 0.00 .. 0.90
ty[k] = dT_base / (1.0 - f)
fx[k] = f
end
fnow = Float64(fi) / 100.0
tnow = dT_base / (1.0 - fnow)
fig = Figure(size = (600, 350))
ax = Axis(fig[1, 1])
lines!(ax, [0.0, 0.9], [dT_base, dT_base]) # the bare, no-feedback warming
lines!(ax, fx, ty) # amplified climate sensitivity
lines!(ax, [fnow, fnow], [0.0, tnow]) # marker at the slider
fig
endfb_stats = let
# amplified sensitivity in a SEPARATE bond-dependent cell so the markdown below
# interpolates it live (values inside a markdown cell's own `let` bake to the
# slider defaults).
dT_base = 1.1
fnow = Float64(fi) / 100.0
tnow = dT_base / (1.0 - fnow)
amp = 1.0 / (1.0 - fnow)
(floor(fnow * 100.0) / 100.0, floor(dT_base * 100.0) / 100.0, floor(amp * 100.0) / 100.0, floor(tnow * 10.0) / 10.0)
end;At feedback f = 0.6: the bare 1.1 C of CO2 warming is amplified 2.5x to about 2.7 C per CO2 doubling. Slide f past 0.8 and the curve rockets upward – near runaway, a tiny change in the feedbacks means an enormous change in the outcome. That is exactly why climate sensitivity is so hard to pin down.
Why the uncertainty is structural
Look at the shape of the curve: it is flat on the left and vertical on the right. Where the real Earth sits — physics puts f somewhere around 0.6–0.7 — is on the steepening part, where the same uncertainty in f produces a far wider range of temperatures. This is why decades of research still quote climate sensitivity as a range (roughly 1.5–4.5 °C) rather than a single number: the math itself amplifies our ignorance.
It is also a general lesson about feedback systems, from microphones screeching to financial crashes: as a loop approaches f = 1, behaviour becomes both extreme and unpredictable.
Appendix
A direct evaluation of the feedback amplification 1/(1−f) swept over feedback strength, drawn with WasmMakie — entirely in-browser WebAssembly. The numbers (≈1 °C bare response, ≈3 °C with feedbacks) match the standard estimates from the MIT lecture.