Winterscape
Winter-themed screensaver app for Roku with image slideshow, falling snow effects, ambient music, and customizable settings.
A winter-themed screensaver for Roku that cycles through holiday and winter landscape images with procedurally animated falling snow, remote-hosted ambient music, and a full settings menu. Built in BrightScript for the SceneGraph UI framework.
- BrightScript
- Roku SceneGraph
- XML UI framework
- JPEG/PNG image handling
- MP3 audio streaming
- Remote asset hosting
Winterscape is a Roku channel that turns your TV into an interactive winter wonderland. The core loop runs a timed slideshow that fades between images, each rendered at full screen (1920×1080). Falling snow particles are rendered as scaled billboards, continuously created and animated frame-by-frame, layered over the background. The app detects available screen resolutions at startup and scales appropriately.
The settings menu uses a glassmorphic UI design built from rectangles and labels in the SceneGraph XML, with a highlighted selection bar that moves as you navigate up/down through six options: slide interval (10s to 1h), slideshow lock, music track selector, snow amount (10–500 particles), and snow size (5 tiers). An image gallery view—added later—lets you browse all images in a 3×2 grid, toggle each on/off for slideshow rotation, or instantly set any as the background.
Audio is handled by a remote-hosted Audio node that plays ambient winter music from external URLs with fallback retry logic. Remote image loading is also handled gracefully with loadStatus observation. All input is routed through a single onKeyEvent handler that branches on whether the gallery, settings menu, or slideshow view is active, giving the remote full control over every aspect.
- Procedural falling snow animation with 10–500 configurable particles, each with independent velocity and size variance
- Full image gallery with enable/disable toggles and one-button instant background switching
- Slideshow with cross-fade transitions, locked/unlocked mode, and manual left/right arrow navigation
- Adaptive UI that detects device display resolution (FHD/HD/SD) and scales channel assets accordingly
- Settings menu with animated toggle switches and live value updates for slide interval, snow count, and music track selection