Commit Graph
134 Commits
Author SHA1 Message Date
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
Richard Zink 3241721f2b Skip reverse-geocoding if CONFIG.location.label already set 2026-10-07 14:37:08 +02:00
Richard Zink 80d15a6edd Document location field in config.js 2026-10-07 14:25:54 +02:00
Richard Zink 9dd76ebd9e Use lat/lon from CONFIG.location; hide debug panel when debug=0; remove street address 2026-10-07 14:22:02 +02:00
Richard Zink d3ccd6f70d Set debug=0, language=de, timeFormat=DD. MMMM, YYYY T HH:mm:SS 2026-10-07 14:06:24 +02:00
Richard Zink eae8bf19a3 Add am/AM (a/A) token to formatDateTime; document in config.js 2026-10-07 13:58:17 +02:00
Richard Zink 305770154f Expand config.js docs with full examples and escape sequences 2026-10-07 13:51:33 +02:00
Richard Zink 90730af49d Use the test time format with fixed minute (mm) in config.js 2026-10-07 13:17:29 +02:00
Richard Zink d1257bdd2c Add non-standard extension tokens DDD and MMM (localized) 2026-10-07 13:16:29 +02:00
Richard Zink 0bcb9878b1 Strict ISO 8601 tokens: MM=month (always), mm=minute 2026-10-07 13:14:45 +02:00
Richard Zink 2c0e84d267 Expand English documentation in config.js 2026-10-07 13:08:53 +02:00
Richard Zink c2996e4762 Make digital clock format configurable via CONFIG.timeFormat 2026-10-07 13:06:03 +02:00
Richard Zink ecc3156652 Set English as base language with DE fallback 2026-10-07 13:00:06 +02:00
Richard Zink f726b76b7d Auto-populate debug select dropdowns from config.js THEMES 2026-10-07 12:38:03 +02:00
Richard Zink 591f5b2f24 Add nord theme with license header, update all theme files with license 2026-10-07 12:35:06 +02:00
Richard Zink f0f0fa18f6 Add config.js, gruvbox.css, debug panel dropdowns 2026-10-07 12:22:25 +02:00