Sun position
Declination δ = 23.44° sin(360°/365 · (N − 81)), equation of time EoT = 9.87 sin 2B − 7.53 cos B − 1.5 sin B (minutes, B = 360/365 (N−81)), hour angle H = 15° (tsolar − 12), then sin(alt) = sinφ sinδ + cosφ cosδ cos H with φ = 51.5°N. Clock time is converted with UK summer time (BST, 29 Mar to 25 Oct in 2026).
Shadow length
L = h / tan(alt), pointing at azimuth + 180°. A 96 m tower at 20° throws 263.8 m. Below about 5° the shadow is very long and the light is weak and red.
Exposure
EV100 = log2(N²/t) − log2(S/100). A scene needs EV = log2(E/2.5) for illuminance E (lux). Direct sun uses a Meinel-style air-mass law, 133 klx × 0.7AM0.678 × sin(alt), plus sky light; weather multiplies the total (illustrative model values). f/8 1/125 ISO100, f/5.6 1/250 ISO100 and f/8 1/250 ISO200 give the same EV.
Wet road
Fresnel (Schlick): F = F0 + (1 − F0)(1 − cosθ)5, F0 = 0.02 for water. At grazing angles (looking far along the street) F rises towards 1, so a wet road becomes a mirror. The reflection is a planar mirror render of the scene, not a full ray tracer.
Fog
Koschmieder: V = 3.912/β and T = e−βd, the 2 % contrast threshold. The scene fog is exactly this exponential law.
Colour temperature
Typical values: about 2900 K at the horizon, 3000-4500 K in the golden hour, 5500-6500 K at midday, 9000 K+ in the blue hour sky. The sunlight tint follows a table of these values.
Simplifications
The sun model is accurate to about 1° (checks below); no refraction near the horizon, no Rayleigh/Mie sky scattering model; the sky and clouds are procedural; the moon is a fixed light at night; reflections are planar; the London kit is stylised, not survey-accurate; exposure is rendered as a brightness factor on tone mapping. Not an astronomical or weather tool. Never look at the real Sun through a camera.
Independent project, not affiliated with any institution, building owner, transport operator or weather service. The bus, phone box and lion are generic designs.
Live numerical checks