Commit Graph
441 Commits
Author SHA1 Message Date
Richard Zink e80d255d58 Fly mostly above the clouds with brief dips
Camera altitude is now driven by pow(sin,5) so the view stays at
y=2.6 most of the time and only briefly dips to y=0.9 to skim the
top of the cloud deck. Marching also skips the empty gap between
camera and cloud ceiling when looking down from above.
2026-10-07 18:57:55 +02:00
Richard Zink 433d743446 Tune clouds3d for low-end GPUs: 18 steps, 3 octaves
Reduce raymarch iterations from 28 to 18 and fBm octaves from
4 to 3 (with step size 0.55->0.85 to preserve cloud coverage).
Per-pixel cost drops by ~55% while visual density stays similar.
2026-10-07 18:56:40 +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 3812f80f40 Make clouds2d.js theme-agnostic
- Remove all hardcoded fallback hex/rgb values
- Skip draw until __currentPalette is published by parent
- applyWeatherTheme now also mixes cloudShadow (was dropped)
2026-10-07 18:53:15 +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 a82d6cce3d Inline noise.png as base64 data URI to allow file:// access 2026-10-07 16:20:14 +02:00
Richard Zink fcf431470a Disable Vanta default texturePath so only our inline data:image is loaded 2026-10-07 16:15:49 +02:00
Richard Zink 8e05444cfb Add build.py: bundles all assets into a single standalone HTML 2026-10-07 16:12:16 +02:00
Richard Zink 3ccc3e4be7 Set webpage title to 'Background Vanta Clouds2' 2026-10-07 15:01:22 +02:00
Richard Zink 746a7cb615 Add README and MIT LICENSE 2026-10-07 15:00:38 +02:00
Richard Zink 965b813f5e Rename index.html to background.html; configure nginx to serve it as index 2026-10-07 14:59:09 +02:00
Richard Zink 3241721f2b Skip reverse-geocoding if CONFIG.location.label already set 2026-10-07 14:37:08 +02:00
Richard Zink 5c3a29a12e Display location label/coordinates right-aligned in weather widget 2026-10-07 14:35:10 +02:00
Richard Zink fd73c3ec1c Try browser geolocation for location with London fallback 2026-10-07 14:30:42 +02:00
Richard Zink 223d1a3d74 Use CONFIG.location.lat/lon for weather API requests 2026-10-07 14:27:53 +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 518988251c Convert forecast temperatures based on CONFIG.units (slot + minmax) 2026-10-07 14:17:55 +02:00
Richard Zink 5e9ddd8590 Refresh weather display when debug units dropdown changes 2026-10-07 14:14:39 +02:00
Richard Zink 661542117c Support ss/SS case-insensitive; convert units based on CONFIG.units 2026-10-07 14:12:10 +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 90b5cd2a78 Add vanta.clouds2.min.js for fallback 2026-10-07 14:02:06 +02:00
Richard Zink 7109e1b5a0 Vendor Vanta.js, three.js, suncalc locally for offline operation 2026-10-07 14:01:32 +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 1c6b2ffbbe Add white-space: pre to digital clock for line breaks 2026-10-07 13:54:42 +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 39154a0311 Add 3-letter month short forms to i18n dictionary 2026-10-07 13:49:56 +02:00
Richard Zink b120779597 Add IT, ES, FR, RU to debug language dropdown 2026-10-07 13:41:06 +02:00
Richard Zink 1f3fbb3283 Add Italian, Spanish, French, Russian translations 2026-10-07 13:40:46 +02:00
Richard Zink 463fa773c8 Fix i18n: add 3-letter weekday/month short forms for DDD/MMM tokens 2026-10-07 13:39:17 +02:00
Richard Zink 8b5420c274 Fix: remove dot from MMM key lookup in formatDateTime 2026-10-07 13:34:53 +02:00
Richard Zink 66cc6d1939 Add debug log to formatDateTime start 2026-10-07 13:33:39 +02:00
Richard Zink bf109e8225 Add debug log to MMMM token 2026-10-07 13:31:53 +02:00
Richard Zink baafbcf760 Force debug update on language change to refresh digital clock 2026-10-07 13:29:43 +02:00
Richard Zink bbff9b9874 Implement exact moon position based on phase (synodic month ~29.53d) 2026-10-07 13:27:04 +02:00
Richard Zink 933ad5e19b Add RPG clock angles (sun/moon rise/set/now) to debug panel 2026-10-07 13:22:24 +02:00
Richard Zink 86b2714b21 Add full weekday/month names; evaluate \n and \t escapes in format 2026-10-07 13:19:59 +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 dc41cabe4d Add 12-hour format (hh) and AM/PM (a) tokens to time formatter 2026-10-07 13:07:34 +02:00
Richard Zink c2996e4762 Make digital clock format configurable via CONFIG.timeFormat 2026-10-07 13:06:03 +02:00
Richard Zink 66ca03ade4 Restructure i18n.js: English is base, keys are English text 2026-10-07 13:02:29 +02:00
Richard Zink ecc3156652 Set English as base language with DE fallback 2026-10-07 13:00:06 +02:00
Richard Zink 0d5b45d663 Adjust English time-of-day labels (No, Ev) 2026-10-07 12:58:01 +02:00
Richard Zink 557145a5e9 Add Feuchte/Wind and 2-letter time labels with i18n 2026-10-07 12:56:34 +02:00
Richard Zink 1dc9b8a0ad Use t() for all dynamic UI text (heute, morgen, weekdays) 2026-10-07 12:54:04 +02:00