Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 2.29 KB

FEATURES.md

File metadata and controls

35 lines (25 loc) · 2.29 KB

Features

Design Constraints

The LED matrix is a passive prop in a room. It must:

  • Low compute on the Raspberry Pi — scenes must be lightweight
  • Non-interactive — no user interaction with the matrix itself (configuration via web UI is fine, but the running display requires no input)
  • No text reading — no tickers, headlines, scores, or any text the viewer would need to actively read
  • Visually interesting — the primary goal is ambiance and visual appeal

Rejected Ideas

Idea Reason
Home Assistant / MQTT Not needed
Continuously pushed / always-on live preview Too heavy on the RPi; live capture must remain viewer-demand-driven
RSS / News Feed Not used; also violates no-text rule
Sports Scores Not needed; violates no-text rule
Crypto / Stock Ticker Not needed; violates no-text rule
Scrolling News Ticker Violates no-text rule
Web Paint / Pixel Canvas Too interactive
Emoji Signal Scene Implies active triggering from user

Decision Log

  • 2026-06-01: Initial decisions. Constraints set: low compute, non-interactive, no text, prop use case.

  • 2026-06-15: SpotifyMV plugin added. Standalone plugin (not extending SpotifyScenes) that auto-plays YouTube music videos when a Spotify track changes. Audio intentionally disabled (Spotify handles audio). YouTube search, download, and decode all happen on the desktop via yt-dlp + ffmpeg; Pi only copies UDP pixels to canvas. VideoStreamEngine extracted from VideoDesktop into SharedToolsDesktop to deduplicate the streaming pipeline. Cache keyed by Spotify track_id for stable replays.

  • 2026-08-22: Live web preview transport switched from repeated HTTP polling to a persistent pull-based WebSocket. A WebSocket connection alone does no capture work; each browser next message requests exactly one future composed frame, concurrent viewers coalesce, and hidden/off-screen previews stop requesting. /live_frame is WebSocket-only; the pre-release HTTP polling transport was removed.

  • 2026-09-06: New scenery should prioritize calm, recognizable environments that reward occasional glances: aquariums, planetary vistas, and natural landscapes with sparse events. The standalone crystal/gyroid sculpture shaders were rejected and replaced.