Your equations, in the browser.
Land uses the supplied SpeedyWeather C45 symbolic equations: all eleven physical inputs, their original normalisation, and the 16-point Gauss–Hermite conditional mean. The six BRDF parameters feed the Lucht black-sky and white-sky polynomials, blended with each tile’s direct and diffuse irradiance. Broadband weights are preserved exactly: 0.5395 visible + 0.4689 near infrared. Final albedo is clamped to [0, 1].
Compare against the supplied vegetation + snow schemes. Open water has albedo 0.06; sea ice blends towards 0.6. Snow cover is S/(S + 0.05 m), or the linear ramp in the comparison scheme.
A deliberately simple day.
The sun travels east to west through a 0–180° arc. Its zenith angle is 90° at sunrise, 0° at noon, and 90° at sunset. This is an idealised overhead solar path, not a latitude/date calculation. Direct horizontal irradiance is 900(1 − c) sin(p) W/m²; diffuse irradiance is (80 + 250c) sin(p) W/m², where c is the sky slider and p is the solar arc.
Terrain shadows block the direct beam; diffuse light remains available. Cells are flat 100 × 100 m patches at their given elevations, with an east–west heightfield horizon. The trees are visual markers, not canopy shadow geometry. No atmospheric feedback, multiple scattering, terrain-slope correction, or out-of-domain terrain is included.
What the numbers mean.
Energy is integrated in 1,440 equal model-time intervals using midpoint quadrature. Playback speed never changes the answer. All selected tiles enter the calculation, including the 256 × 256 grid; visual detail is grouped when tiles are smaller than the available screen pixels. The kWh/m² totals are averages over the whole map; MWh totals include its area. Reflected energy is α × incoming energy, with local direct/diffuse fractions recalculated in shadow. Editing the world resets the light budget.
Procedural landscapes are illustrative inputs, not observations or validated predictions. A constant 35% challenge invites experimentation; it is not an environmental target. Everything runs locally in your browser, without uploads or external libraries.