Richard Zink
19a2759685
config: set renderScale to native resolution
2026-10-12 21:46:12 +02:00
Richard Zink
e8ff7ee714
camera: bank the view when the flight path curves
2026-10-12 21:23:54 +02:00
Richard Zink
1fe214f403
clouds: retune weather coverage and make night follow weather
2026-10-12 21:19:57 +02:00
Richard Zink
d5fb1f12c4
docs: add render diagrams and complete config examples
2026-10-12 21:15:24 +02:00
Richard Zink
b9a77fbaa4
atmosphere: enable cloud shadows on terrain
2026-10-12 21:02:57 +02:00
Richard Zink
45e35982da
clouds: advect cloud field with Open-Meteo wind
2026-10-12 21:00:23 +02:00
Richard Zink
50c96ceae4
contrails: add jagged edges and restore 5 minute lifetime
2026-10-12 19:52:23 +02:00
Richard Zink
01203b361a
contrails: force high visibility for debugging
2026-10-12 19:41:54 +02:00
Richard Zink
60758b1168
clouds: raise weather coverage floor so clouds stay visible
2026-10-12 18:57:12 +02:00
Richard Zink
b65936d44d
clouds: tune cloud coverage by weather density
2026-10-12 18:55:47 +02:00
Richard Zink
d167f4baf1
clouds: restore cloud top to 12.9 km while keeping terrain occlusion disabled
2026-10-12 18:18:37 +02:00
Richard Zink
de7850d6db
clouds: raise cloud top to 20 km and disable terrain occlusion for test
2026-10-12 18:17:16 +02:00
Richard Zink
52ececa917
clouds: add new spherical cloud pass using terrain distance occlusion
2026-10-12 17:50:42 +02:00
Richard Zink
8af10a4f4a
atmosphere: stable front haze using terrain distance texture
2026-10-12 17:29:56 +02:00
Richard Zink
a33e6ddcfc
atmosphere: add stable air haze behind terrain
2026-10-12 17:20:52 +02:00
Richard Zink
989310ab3b
atmosphere: replace flickering full-screen haze with stable terrain haze
2026-10-12 17:15:33 +02:00
Richard Zink
d8ff29bde5
atmosphere: increase haze height to 100 km
2026-10-12 16:40:49 +02:00
Richard Zink
fb3a7c600d
terrain: set height exaggeration to 8
2026-10-12 16:38:53 +02:00
Richard Zink
98e69da3b2
atmosphere: cap haze alpha to avoid hard horizon cut
2026-10-12 16:35:57 +02:00
Richard Zink
69a00b479b
atmosphere: add altitude-thinning distance haze
2026-10-12 16:24:11 +02:00
Richard Zink
7329957658
atmosphere: add physical Rayleigh sky scattering
2026-10-12 15:08:59 +02:00
Richard Zink
185d9d2ff4
clouds: disable cloud shadows with old cloud shader removed
2026-10-12 15:00:34 +02:00
Richard Zink
cb847df3f5
clouds: intensify coverage, scale and detail
2026-10-12 14:55:32 +02:00
Richard Zink
f25c7369cd
clouds: remove terrain-height march breaks causing holes
2026-10-12 14:51:49 +02:00
Richard Zink
661b59a295
clouds: raise deck and reduce terrain exaggeration
2026-10-12 14:49:52 +02:00
Richard Zink
c8fa1b3260
terrain: extend map with reduced-resolution outer height skirt
2026-10-12 14:16:06 +02:00
Richard Zink
4441619b8f
curvature: increase Earth exaggeration to 4.0
2026-10-12 14:07:43 +02:00
Richard Zink
d173f926e4
atmosphere: remove volumetric fog pass
2026-10-12 14:06:38 +02:00
Richard Zink
32132f33d1
curvature: enable spherical Earth config
2026-10-12 14:05:06 +02:00
Richard Zink
b9094ebd8b
atmosphere: add initial volumetric atmosphere shell
2026-10-12 13:59:59 +02:00
Richard Zink
e005789ba8
config+docs: sun/moon/camera/day blocks, moon map attribution and cache manifest
2026-10-11 22:46:35 +02:00
Richard Zink
2d78c7081c
clouds: coverage sunny 0.30 / cloudy 0.80 / stormy 0.92, dead 'night' override dropped (live weather never reports it)
2026-10-11 21:34:52 +02:00
Richard Zink
ede3d78717
flights: contrailChance back to 0.85 (1.00 was a test value)
2026-10-11 18:44:28 +02:00
Richard Zink
6d21b37e8f
progress logs behind CONFIG.debug, CONFIG.antialias + high-performance context, cheaper cloud sampling (skip far detail octave and redundant self-shading probe), brighter night contrails via CONFIG.flights.contrailNight, window.__flightDbg counters, real sun/moon by default
2026-10-11 18:42:48 +02:00
Richard Zink
4369afd3ef
lighting: remove the palette terrain model - physics is the only lighting, themes tint it through THEMES[theme].lighting; debug panel shows the active palette and its tint/gain; credits no longer claim VIIRS
2026-10-11 15:39:42 +02:00
Richard Zink
6eb25bdd03
physical lighting, volumetric clouds, terrain shadows, pixel-art render scale
...
- atmosphere: physical terrain lighting (air mass, Rayleigh beam colour,
skylight, moon, starlight floor), aerial perspective for terrain and
cloud deck, configurable haze/albedo/ambient gains
- clouds: march the deck in height instead of ray distance, IGN dither
(no per-frame flicker), per-step height jitter, 4-octave fbm renormalised,
softer density threshold, distance softening as a procedural mip,
grazing path clamp, cloud shadows on the ground (cloudShadowDensity/
Floor/Ambient) and cloud haze factor
- terrain: self-shadows from the elevation field (penumbra + shadow floor),
soft mosaic rim (edgeFadeTiles), east/west axis corrected (+X = west)
- lights: per-object twilight switching for cars, city dots and ground blocks
- flights: contrail width 620 m, fade to zero by contrailFadeKm, aircraft
size decoupled from trail width, count halved
- render: CONFIG.renderScale with integer upscale + image-rendering: pixelated
- data: nginx overpass proxy + cache, per-mirror cooldown ladder, ring-based
cell ordering (disc fills evenly), settlements fetched before roads,
interim chain persistence, two worker lanes (car/city) with progress logs
- removed: NASA VIIRS night-lights layer (fetch, canvas, texture, uniforms)
2026-10-11 15:04:21 +02:00
Richard Zink
99b29f216a
config: freeze sim clock at 20:30 (evening rush plateau)
2026-10-10 11:50:07 +02:00
Richard Zink
a23cf85223
config: translate all source comments to English (i18n data strings unchanged)
2026-10-10 11:16:11 +02:00
Richard Zink
4ecef21729
config.maxFps: scene frame-rate cap (default 30, 0 = free; motion stays time-based)
2026-10-10 11:04:44 +02:00
Richard Zink
d0aa86ce9b
flights: full CONFIG.flights parameterization (altitude, count, speed, holds, destination weights, contrail chance/alt/life/width) + curved random-destination routing
2026-10-10 11:02:58 +02:00
Richard Zink
fbac24773a
clouds3d-only cleanup: drop Vanta/three.js/clouds2d, real-sky fixes, settlement lights, dynamic location anchor
2026-10-09 14:13:03 +02:00
Richard Zink
9a933b3dc4
More clouds + finer structure, switch default back to clouds3d
...
- WEATHER_DENSITY bumped: sunny 0.20->0.55, cloudy 0.70->0.85,
night 0.45->0.65. Stormy stays at 1.0 (already maxed).
Even 'sunny' now has visible cloud structure, not just clear sky.
- clouds3d: add a second fBm layer at 4x frequency for fine detail,
blended at 18% into the base. Combined with the tighter smoothstep
(0.24 -> 0.18) the cloud silhouettes have more interesting edges
instead of soft blob shapes.
- Same density bump applied to clouds2d so swapping renderers
doesn't change the visual weather.
- config.renderer: clouds2d -> clouds3d (user request)
2026-10-07 20:01:52 +02:00
Richard Zink
0b8cf464b8
Enable debug panel so weather buttons are visible
2026-10-07 19:48:18 +02:00
Richard Zink
ba7b90d7d9
Fix config.js: weatherSim was inserted into window.THEMES by mistake
...
My previous patch used rfind('};') which landed on the THEMES
block's closer instead of CONFIG's. Moved weatherSim + weatherSimInterval
into CONFIG and cleaned the duplicated block. Rebuild docker so
the corrected file replaces the broken one.
2026-10-07 19:47:13 +02:00
Richard Zink
1bf1b708e8
Add weather simulation + debug-panel weather controls
...
- weatherSim config flag (default false): cycles through
['sunny','cloudy','stormy','night'] every weatherSimInterval ms
instead of pulling open-meteo
- Debug-panel buttons: Sunny / Cloudy / Stormy / Night for
instant manual switch; Auto-Cycle toggle, Stop, 5s/15s cycle
- Cleanup: removed duplicate unwrapped tick() in the init block
(the wrapped one already starts the rAF chain)
The sim keeps the existing 5-minute palette transition between
states, so you still see the colour shift rather than a hard cut.
2026-10-07 19:45:57 +02:00
Richard Zink
1f90276fed
Default to clouds2d (texture-based) renderer
2026-10-07 19:42:19 +02:00
Richard Zink
0648676974
Add volumetric clouds3d renderer
...
Raymarches a horizontal cloud layer (28 steps, 4-octave 3D fBm).
Camera path is sinusoidal in altitude so the view dips into the
cloud deck at intervals for a 'fly through the edges' feel.
Density threshold from weather: sunny -> sparse, stormy -> overcast.
Renderer is selected via CONFIG.renderer ('clouds2d' or 'clouds3d').
2026-10-07 18:54:58 +02:00
Richard Zink
c6764fd534
Fix clouds2d: create own canvas element
...
The 2D WebGL renderer now creates its own <canvas> overlay inside
the target element, instead of expecting the target to already be a
canvas. This fixes 'canvas.getContext is not a function' when the
target is a <div>.
2026-10-07 18:49:42 +02:00
Richard Zink
e8df75eebc
Enable debug temporarily for diagnosis
2026-10-07 16:56:50 +02:00
Richard Zink
d8e619e0c3
Add lightweight 2D WebGL cloud renderer as alternative to Vanta
2026-10-07 16:47:53 +02:00