--- name: project-architecture description: "Mirror OS - Flutter app for hacked Lululemon Mirror on Pi 4 with phone remote, voice, and motion" metadata: node_type: memory type: project originSessionId: 826ce615-b163-439f-aaa9-7b3be198b03a --- Mirror OS is a custom app platform for a hacked Lululemon Mirror running on Raspberry Pi 4. **Key decisions:** - Flutter (not web kiosk, not Qt) — single codebase for mirror display + phone remote - Pi 4 (4GB) as compute - Vizio board used as HDMI passthrough only (no rotation capability) - Pi handles rotation via wlr-randr or DRM/KMS config - Display is portrait 1080x1920, not touch-enabled **Why:** Flutter gives one codebase for both the mirror display and the phone companion app. Phone remote is half the project — keeping it unified avoids drift. Performance is adequate for dashboard/media on Pi 4. **Features planned:** - Dashboard (clock, weather, calendar, widgets) - Workout player (integrates with existing workout-player homelab service) - Media player (YouTube, Plex, local video/music via mpv/media_kit) - Voice control (OpenWakeWord + Whisper, local processing) - Motion-activated wake (PIR or mmWave on GPIO) - Phone companion app as primary control interface **How to apply:** All code goes in /Users/csader/mirror-os. Flutter project with shared packages for logic, separate entry points for mirror display vs phone remote.