No description
- Kotlin 99.7%
- Shell 0.2%
- SkyViewportMapper: use aspect-ratio-based scaleFactor so stars expand uniformly in all directions when scene is wider than 16:9 reference - ParallaxSensorManager: track actual canvas orientation and override system display rotation when canvas doesn't match (wallpaper canvas stays portrait even when device reports landscape rotation) - ParallaxScene: call sensor.setCanvasOrientation on resize - Tests: add viewport expansion and sensor orientation override tests - Bump versionCode=251, versionName=1.31.15 |
||
|---|---|---|
| .woodpecker | ||
| app | ||
| docs/screenshots | ||
| gradle/wrapper | ||
| scripts | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle.kts | ||
| Dockerfile.build | ||
| gradle.properties | ||
| gradlew | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
WeatherWall
📥 https://git.olli.info/Oliver/WeatherWall/releases/latest
Android live wallpaper with a low-poly procedural landscape, weather effects, seasonal details, and gyroscope-driven parallax.
No analytics. No internet permission.
Screenshots
Features
- Procedural low-poly terrain with layered hills and mountains
- Dynamic sky with sun, moon, stars, and time-of-day lighting
- Weather effects: rain, snow, hail, lightning, clouds
- Seasonal visuals: flowers, mushrooms, autumn leaves, snow, frost
- Seasonal events: Christmas, New Year, St. Patrick's Day
- Trees, bushes, rivers/lakes, animals, and random wildlife events
- Gyroscope-based parallax
- Deterministic world generation from a stable seed
- Configurable density, clustering, parallax, weather, and terrain settings
- Optimized rendering with bitmap caches and zero per-frame allocation design
Build
Requirements:
- Android 8.0+ / API 26+
- JDK 17
- Gradle 8.13+
OR
- Docker
git clone https://git.olli.info/Oliver/WeatherWall.git
cd WeatherWall
./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk
Development
Run unit tests:
./gradlew test
Run lint:
./gradlew lintDebug
Run mutation tests:
./gradlew :app:pitest
Docker
Build the CI image:
docker build -t weatherwall-builder -f Dockerfile.build .
Run tests in Docker:
docker run --rm -v "$PWD":/workspace -w /workspace weatherwall-builder ./gradlew test --no-daemon
Run mutation tests in Docker:
docker run --rm -v "$PWD":/workspace -w /workspace weatherwall-builder ./gradlew :app:pitest --no-daemon