commit 3c728ca7a7ed48003a4a4d97248aa2ee4759dc75 Author: OpenClaw Date: Sat Apr 18 22:55:24 2026 +0000 Initial visionLabs Roku scaffold diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..966060e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +dist/ +out/ +*.pkg +*.zip diff --git a/README.md b/README.md new file mode 100644 index 0000000..aaae813 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# visionLabs Roku + +visionLabs Roku is a private Roku app scaffold for viewing home security cameras on a TV. + +## Product direction + +- Brand family follows the user's existing `Labs` naming pattern. +- V1 uses a static packaged camera configuration. +- V2 adds in-app camera and layout editing. +- V3 moves camera metadata and layout persistence to a backend service. + +## Technical direction + +- Roku SceneGraph app +- Camera feeds delivered as HLS where possible +- Static JSON config for the first prototype +- Future backend for editing, persistence, and auth + +## Project layout + +- `manifest` - Roku channel metadata +- `source/main.brs` - app entry point +- `components/MainScene.xml` - initial SceneGraph UI +- `components/MainScene.brs` - scene behavior +- `config/cameras.json` - static sample camera config +- `docs/ROADMAP.md` - delivery phases and constraints + +## Notes + +Roku is not a great target for raw RTSP feeds. The clean path is to expose camera streams as HLS, either directly from the NVR or through a relay/transcoder layer. + +## Next steps + +1. Replace sample camera URLs in `config/cameras.json` +2. Load config into the UI +3. Render a static multi-camera grid +4. Add edit mode and persistence strategy diff --git a/components/MainScene.brs b/components/MainScene.brs new file mode 100644 index 0000000..be294df --- /dev/null +++ b/components/MainScene.brs @@ -0,0 +1,3 @@ +sub init() + m.top.setFocus(true) +end sub diff --git a/components/MainScene.xml b/components/MainScene.xml new file mode 100644 index 0000000..b09e3a6 --- /dev/null +++ b/components/MainScene.xml @@ -0,0 +1,32 @@ + + +