feat: add real-time weather to Dynamic Pixel City - #96
Open
dskvr wants to merge 1 commit into
Open
Conversation
Dynamic Pixel City now combines bounded Open-Meteo current and hourly data with the existing astronomy model. Deterministic generated overlays preserve the original six city layers while adding depth-aware clouds, fog, precipitation, wind, heat distortion, offline presets, cache fallback, and a one-minute visual demo. The live 14-layer scene also exposed the old 4 KiB IPC response ceiling, so list responses now use a separate bounded response capacity and complete stream reads and writes. Constraint: Keep the original pixel-city example unchanged and add no dependencies. Rejected: Generate assets on every controller tick | causes needless file and texture churn Rejected: Reuse the 4 KiB command limit for responses | valid 14-layer JSON exceeds it Confidence: high Scope-risk: moderate Reversibility: clean Directive: Preserve quantized signatures, A/B asset swaps, and strict cache location identity when changing weather generation. Tested: make; make test; make test-scripts (56 legacy plus 40 weather tests and native GIF probes); make lint; make memcheck (27/27); live DP-3 60-second demo and eight-condition screenshots; 14-layer IPC JSON; steady weather paths across more than 60 seconds. Not-tested: Physical multi-monitor hardware beyond live DP-3.
|
🤖 Build Artifact Available A build artifact for 📦 Download from Actions Run #151 This artifact will be available for 14 days. The build includes:
Installation instructions# Download and extract the artifact
tar -xzf hyprlax-*.tar.gz
# Make executable and run
chmod +x hyprlax
./hyprlax --helpBuilt from PR #96 • Run #151 • View Workflow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
hyprlax ctl list --jsonfor valid large layer sets with a separate 64 KiB response limit and complete stream I/ONo dependencies were added.
examples/pixel-cityremains byte-for-byte unchanged.Provider boundary
The README documents the exact Open-Meteo fields, attribution and CC BY requirements, hosted API usage boundary, privacy retention, cache controls, offline mode, failure fallback, and troubleshooting path. Provider failure never stops astronomy updates.
Verification
makemake testmake test-scripts— 56 existing Dynamic Pixel City tests, 40 weather tests, native gifdec probes, renderer churn testmake lintmake memcheck— 27/27 memory-clean test binariesgit diff --checkexamples/pixel-cityboundary check againstorigin/master--demo-weathercycle, all presets visited, zero stderrRemaining risk
The live compositor proof used one physical output (
DP-3); multi-monitor behavior remains covered by existing non-hardware tests rather than a second physical output.