From e433a99ceddf7168d23377ffc8d585fc80ba8fb2 Mon Sep 17 00:00:00 2001 From: St33v Date: Wed, 10 Jun 2026 19:10:38 +1000 Subject: Add synoptic-morph: 30-day rolling morph timelapse synopticMorph.sh: rolling-cache implementation. On each run: 1. Pick the last WINDOW_DAYS*4 charts from the archive. 2. For each adjacent pair, fill any missing pair-morph (cached at /mnt/enclave/synoptic/pairs/__/p_NNNN.png). 3. Evict pair dirs whose slug isn't in the current window. 4. Symlink frames into a temp seq dir with LINGER on each source chart and DWELL on the latest, fade-in 1s and fade-out 2s. 5. Encode to /srv/www/pestrel/morph.mp4 with ffmpeg/h264. Bootstrap: ~50 min CPU on first run (119 pair morphs at ~25s each). Steady state: ~1 min/cycle (1 new pair + concat + encode). synoptic-morph.service: oneshot, TimeoutStartSec=2h to cover the bootstrap, Nice=10 + IOSchedulingClass=idle so it doesn't fight the system for CPU/disk. synoptic.service gains OnSuccess=synoptic-morph.service so the chain fires automatically after each successful chart fetch. morph.html: points at /morph.mp4 now. index.html: "Three-day history" button renamed to "Monthly history", URL /morph.html. setup.sh: installs the new unit + script, provisions /mnt/enclave/synoptic/{pairs,out} when the enclave mount is present. .gitignore: drop .claude/ (transient harness state). Co-Authored-By: Claude Opus 4.7 --- index.html | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'index.html') diff --git a/index.html b/index.html index 219680a..6a9fc9f 100644 --- a/index.html +++ b/index.html @@ -8,18 +8,21 @@ body { margin: 0; background: #000; display: flex; justify-content: center; align-items: center; height: 100vh; } img { max-width: 100%; max-height: 100vh; } a.nav-button { - position: fixed; left: 0; top: 16.6%; + position: fixed; left: 0; color: #aaa; background: rgba(0,0,0,0.7); padding: 0.45em 0.9em; border: 1px solid #444; border-left: none; border-radius: 0 0.3em 0.3em 0; text-decoration: none; font-family: sans-serif; font-size: 0.95em; } - a.nav-button:hover { color: #fff; border-color: #888; } + a.nav-button.radars { top: 60%; } + a.nav-button.history { top: 75%; } + a.nav-button:hover { color: #fff; border-color: #888; } Latest synoptic - Radars + Radars + Monthly history -- cgit v1.3