Simulate procedurally generated alien landscapes under real stars and exoplanets. Physically computed sky, regolith and vegetation colours, with spectrum and pigment absorption charts, exportable as P
翻訳待ち
デザインJavaScript · CSSGitHub @eagnespuertoオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Procedurally generated landscapes under other suns - every colour computed from a spectrum. Star and exoplanet presets, per-spectral-type leaf colours, pigment absorption charts, PNG/JPG/PDF export.
翻訳待ち
Loading the full README.
Read the full README ↗Procedurally generated landscapes under other suns, where every colour on screen is computed from a spectrum rather than chosen by hand.
Pick a star, an exoplanet and an atmosphere, and the page works out what the sky, the ground, the water and — if anything can live there — the vegetation would actually look like. Then it shows you the spectra behind that answer and lets you export the whole thing as a data sheet.
No build step, no dependencies, no network calls. It is a handful of ES modules and a canvas.
Nothing here is art-directed. Each colour is the result of an integral.
The star is treated as a blackbody at its effective temperature. Planck's law gives the emitted spectrum, an atmospheric transmission profile attenuates it, and the result is integrated against the CIE 1931 2° standard observer to get tristimulus XYZ, then converted to sRGB through the D65 primaries and the sRGB transfer function. This path is ported from starlight-filter, which uses the same integral to drive a display's gamma ramp.
Because Beer's law is exponential in path length, a lower star simply means the zenith transmission raised to the air mass. That one relationship is why the same model produces a blue noon and a red sunset without being told about either.
A Rayleigh atmosphere scatters short wavelengths out of the beam, so the sky glows with exactly what the beam lost. Dust and haze absorb rather than scatter, so those skies take the transmitted tint instead of its complement — which is why Mars is butterscotch rather than blue.
Ground colour is the total downwelling light (direct beam plus skylight) times a mineral reflectance curve, integrated the same way. Out-of-gamut results are tone-mapped on luminance with the chromaticity preserved, so a deep Rayleigh sky comes out pale blue instead of clipping to flat white.
Photosynthesis is a quantum process, so the model counts photons, not energy. A reaction-centre pigment is chosen by weighing three things against each other:
1/λ_trap, because
energy above the trap is dumped as heat. This is what stops far-red pigments
winning under every star.Antenna pigments are then layered on, constrained by what can physically attach to what: a chlorophyll photosystem accepts chlorophyll b, carotenoids and phycobiliproteins, while a rhodopsin accepts only a carotenoid and bacteriorhodopsin runs bare. Phycobiliproteins carry a heavy cost penalty because a phycobilisome can run to half a cell's protein — which is why land plants never took that option, and without it the model paints Earth's forests red.
The leaf's reflectance is what survives that absorption, scaled by a structural reflectance term that reproduces the red edge. Its colour is the illuminant times that reflectance. Calibration check: Earth under the Sun comes out green, reflectance peaking near 550 nm with a red edge at ~705 nm, which is what real vegetation does.
This is a worldbuilding and teaching tool, not a radiative-transfer code.
This is the beginning of the README. Read the rest at the original. Read the full README ↗