Comprehensive blueprint for a headless Raspberry Pi 3B projection mapping appliance: - Unified installer with 2GB swap safety for C++ source builds. - WebSocket-driven real-time vertex/surface manipulation. - 5-tab responsive dashboard (Dashboard, Mapping, Media, Network, System). - Media validation with ffprobe (H.264 check) and resource warnings. - Throttled log streaming and explicit mapping persistence.
1.7 KiB
1.7 KiB
ofxpimapper-full-stack Spec
System Dashboard (Status Tab)
- GIVEN the web UI is loaded
- THEN it SHALL display real-time CPU Load, RAM Usage, and CPU Temperature.
- AND it SHALL show the status of the
ofxPiMapperprocess (Running/Stopped). - AND it SHALL provide "Restart Mapper", "Reboot Pi", and "Shutdown Pi" buttons.
- AND it SHALL display the "Throttled Logs" (max 10 lines per 500ms) from the Mapper process.
Mapping Engine (Mapping Tab)
- GIVEN the Virtual Canvas
- WHEN a vertex is dragged in the UI
- THEN it SHALL send an OSC message to
localhost:9999via WebSockets in < 50ms. - AND it SHALL support adding/deleting surfaces (Quad/Triangle).
- AND it SHALL provide a prominent "Save Mapping" button to persist changes to disk.
- AND clicking a surface in the UI SHALL send a highlight OSC command to the beamer.
Media Management (Media Tab)
- GIVEN the Media Vault
- WHEN a file is uploaded
- THEN it SHALL be stored in
/home/pi/media. - AND the backend SHALL validate that the file is H.264 and show a warning if resolution exceeds 1080p.
- AND the user SHALL be able to assign any file to any named surface, with a "Resource Warning" if total pixel throughput is too high.
Networking (Network Tab)
- GIVEN the Network settings
- THEN the UI SHALL list available WiFi networks for client mode connection.
- AND it SHALL allow changing the AP SSID and Password.
- AND it SHALL display the current IP Address and Hostname (
.local).
Hardware Constraints
- Processor: Raspberry Pi 3B (ARMv8).
- Memory: 1GB LPDDR2.
- Resolution: Support up to 1080p hardware-accelerated H.264 video.